Hallo
das ist leider etwas tricky....
Klar, die Nachrichtenfindung läuft auf Kopfebene.
Eine Möglichkeit wäre der von dir beschriebene assign in der Bedingung... das hat aber zur Konsequenz, dass niemand mehr nachvollziehen kann, warum wie welche Bestellung gefaxt, per eMail oder wie auch immer übermittelt wurde.
Da du eh schon am programmieren bist, würde ich eher ein ZFELD in den Kopf der Bestellung hängen das im BADi ME_PROCESS_PO_CUST gefüllt und in der Nachrichtenfindung abgefragt wird.
So kann man ein Kriterienkatalog in der Bestellung programmieren, der zB einen Versand per EDI verbietet.
(keine Lieferantenmaterialnummer gepflegt, Blackliste usw)
Beispiel für die Bedingung in der Nachrichtenfindung:
FORM kobed_920.
FIELD-SYMBOLS: TYPE ekko. ASSIGN ('(SAPLMEPO)EKKO') TO . IF IS ASSIGNED. IF -zz_ein_feld IS NOT INITIAL. sy-subrc = 4.
ELSE.
sy-subrc = 0.
ENDIF.
UNASSIGN . ENDIF.
ENDFORM.