Расширение структур MSEG, BAPI_TE_XMSEG, IMSEG и пример использования BAPI BAPI_GOODSMVT_CREATE.
Расширение MSEG
Добавляем append-структуру в таблицу MSEG.
Расширение MSEG
Добавляем append-структуру в таблицу MSEG.
Передача пользовательских полей в BAPI_GOODSMVT_CREATE
Добавляем append-структуру с теми же пользовательскими полями, что и в MSEG, в структуру BAPI_TE_XMSEG.
Добавляем append-структуру с теми же пользовательскими полями, что и в MSEG, в структуру IMSEG.
Создаем реализацию BAdI MB_BAPI_GOODSMVT_CREATE, в котором реализуем один метод IF_EX_MB_BAPI_GOODSMVT_CREATE~EXTENSIONIN_TO_MATDOC. В методе описываем передачу данных из таблицы EXTENSION_IN структурой BAPIPAREX в таблицу CT_IMSEG структурой IMSEG.
DATA: ls_extension_in LIKE LINE OF extension_in, ls_xmseg TYPE bapi_te_xmseg. FIELD-SYMBOLS: <lfs_imseg> LIKE LINE OF ct_imseg. LOOP AT extension_in INTO ls_extension_in. CASE extension_in-structure. WHEN 'BAPI_TE_XMSEG'. ls_xmseg = ls_extension_in+30. READ TABLE ct_imseg ASSIGNING <lfs_imseg> WITH KEY line_id = ls_xmseg-matdoc_itm. IF sy-subrc EQ 0. <lfs_imseg>-zzfield01 = ls_xmseg-zzfield01. <lfs_imseg>-zzfield02 = ls_xmseg-zzfield02. ENDIF. ENDCASE. ENDLOOP.
Передаем в BAPI_GOODSMVT_CREATE таблицу EXTENSIONIN структурой BAPIPAREX.
DATA: ls_header TYPE bapi2017_gm_head_01, ls_code TYPE bapi2017_gm_code, ls_headret TYPE bapi2017_gm_head_ret, lt_item TYPE TABLE OF bapi2017_gm_item_create, ls_item LIKE LINE OF lt_item, ls_xmseg TYPE bapi_te_xmseg, lt_extensionin TYPE TABLE OF bapiparex, ls_extensionin LIKE LINE OF lt_extensionin, lt_return TYPE TABLE OF bapiret2, ls_return LIKE LINE OF lt_return. ls_header-header_txt = 'Test BAPI'. ls_header-pstng_date = sy-datum. ls_header-doc_date = sy-datum. ls_header-pr_uname = sy-uname. ls_code-gm_code = '03'. ls_item-material = '999000000100000001'. ls_item-entry_qnt = 1. ls_item-move_type = '241'. ls_item-plant = '0100'. ls_item-stge_loc = '0001'. ls_item-gr_rcpt = '20000001'. ls_item-batch = '0000000001'. ls_item-asset_no = '100000000001'. ls_item-sub_number = '0000'. INSERT ls_item INTO TABLE lt_item. ls_xmseg-matdoc_itm = 1. ls_xmseg-zzfield01 = 'A'. ls_xmseg-zzfield02 = '0123456789'. ls_extensionin-structure = 'BAPI_TE_XMSEG'. ls_extensionin+30 = ls_xmseg. INSERT ls_extensionin INTO TABLE lt_extensionin. CALL FUNCTION 'BAPI_GOODSMVT_CREATE' EXPORTING goodsmvt_header = ls_header goodsmvt_code = ls_code * testrun = ' ' * goodsmvt_ref_ewm = IMPORTING goodsmvt_headret = ls_headret * materialdocument = * matdocumentyear = TABLES goodsmvt_item = lt_item * goodsmvt_serialnumber = return = lt_return * goodsmvt_serv_part_data = extensionin = lt_extensionin.
Комментариев нет:
Отправить комментарий