Расширение структур 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.


Комментариев нет:
Отправить комментарий