Просто оставлю, чтобы это было здесь.
Проверка реализуется в
BADI ME_PROCESS_PO_CUST, в двух методах.
~PROCESS_ITEMCode:
DATA: zmepoitem TYPE mepoitem.
zmepoitem = im_item->get_data( ).
IF zmepoitem-banfn IS INITIAL AND zmepoitem-loekz = ''.
mmpur_metafield mmmfd_preq_no_po.
mmpur_message_forced 'E' 'класс сообщений' 'номер сообщений'
'Номер заявки обязателен' 'в заказе' '' ''.
CALL METHOD im_item->invalidate( ).
ENDIF.
~PROCESS_SCHEDULECode:
DATA: zmeposchedule TYPE meposchedule,
zitem TYPE REF TO if_purchase_order_item_mm,
zmepoitem TYPE mepoitem.
zmeposchedule = im_schedule->get_data( ).
z_item = im_schedule->get_item( ).
zmepoitem = z_item->get_data( ).
IF zmeposchedule-banfn IS INITIAL AND zmepoitem-loekz = ''.
mmpur_metafield mmmfd_preq_no.
mmpur_message_forced 'E' 'класс сообщения' 'номер сообщения'
'Номер заявки обязателен''в заказе' '' ''.
CALL METHOD im_schedule->invalidate( ).
ENDIF.