Здравствуйте...
При проводке документа в MIGO мне необходимо создать ещё один ММ-документ. Для этого в методе "IF_EX_MB_MIGO_BADI~POST_DOCUMENT" я вызываю "BAPI_GOODSMVT_CREATE". После того как отработала БАПИ-шка sy-subrc = 0 и табличка с сообщениями тоже пустая, но в дальнейшем возникает ошибка: "Требуемая функция MB_CREATE_GOODS_MOVEMENT не выполняется № сообщения M7260". ( судя по описанию ругается на то что ФМ "MB_CREATE_GOODS_MOVEMENT" не отработал корректно и поэтому не может быть запущен ФМ "MB_POST_GOODS_MOVEMENT", что вполне логично ). Подскажите, пожалуйста, что я делаю не так и в чём тут проблема.
DATA: mm_header TYPE bapi2017_gm_head_01,
mm_code TYPE bapi2017_gm_code,
mm_item TYPE STANDARD TABLE OF bapi2017_gm_item_create WITH HEADER LINE,
mm_ret TYPE STANDARD TABLE OF bapiret2.
mm_code = '05'.
mm_header-pstng_date = is_mkpf-budat.
и т.д.
LOOP AT it_mseg ASSIGNING <fs_mseg>.
SELECT SINGLE * FROM zblnswrk
WHERE werks EQ <fs_mseg>-werks AND
bwart EQ <fs_mseg>-bwart.
mm_item-material = <fs_mseg>-matnr.
mm_item-move_type = zblnswrk-zbwart.
и т.д.
WRITE <fs_mseg>-ps_psp_pnr TO mm_item-wbs_elem.
APPEND mm_item.
ENDLOOP.
CALL FUNCTION 'BAPI_GOODSMVT_CREATE'
EXPORTING
GOODSMVT_HEADER = mm_header
GOODSMVT_CODE = mm_code
IMPORTING
GOODSMVT_HEADRET = mm_headret
TABLES
GOODSMVT_ITEM = mm_item
RETURN = mm_ret.
READ TABLE mm_ret WITH KEY type = 'E' TRANSPORTING NO FIELDS.
IF sy-subrc IS NOT INITIAL.
CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
EXPORTING
wait = 'X'.
ELSE.
CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'.
ENDIF.