Я уже писал, что для заполнения собственных полей(их вы добавили через Include-структуру CI_EKKODB) используйте параметр EXTENSIONIN (справка к параметру весьма подробная).
Рассмотрим на примере заголовка. Допустим таблицу EKKO расширили полем ZZCUSTOM (через CI_EKKODB!):
1) Добавляем в структуру CI_EKKODBX поле ZZCUSTOM тип BAPIUPDATE
2) В структуре BAPI_TE_MEOUTHEADER увидим наше поле ZZCUSTOM, а в структуре BAPI_TE_MEOUTHEADERX увидим поле ZZCUSTOM типа BAPIUPDATE
3) заполняем Extension и затем передаем в BAPI:
Code:
DATA : wa_bapih TYPE BAPI_TE_MEOUTHEADER,
wa_bapihx TYPE BAPI_TE_MEOUTHEADERX,
wa_ext TYPE BAPIPAREX.
DATA : lt_extension TYPE TABLE OF BAPIPAREX.
CLEAR : wa_bapih,
wa_bapihx.
wa_bapih-zzcustom = <значение поля>.
wa_bapihx-zzcustom = 'X'.
CLEAR wa_ext.
wa_ext-structure = 'BAPI_TE_MEOUTHEADER'.
cl_abap_container_utilities=>fill_container_c(
EXPORTING im_value = wa_bapih
IMPORTING ex_container = wa_ext+30
EXCEPTIONS illegal_parameter_type = 1
OTHERS = 2 ).
APPEND wa_ext TO lt_extension.
CLEAR wa_ext.
wa_ext-structure = 'BAPI_TE_MEOUTHEADERX'.
cl_abap_container_utilities=>fill_container_c(
EXPORTING im_value = wa_bapihx
IMPORTING ex_container = wa_ext+30
EXCEPTIONS illegal_parameter_type = 1
OTHERS = 2 ).
APPEND wa_ext TO lt_extension.
* передаем lt_extension в BAPI
В общем как то так

Добавлено:
4) выяснил, что еще потребуется внедрить BADI "MEOUT_BAPI_CUST_01" метод "MAP_HEADER_IN"
В методе проделать обратную 3-му шагу операцию:
Code:
FIELD-SYMBOL : <fs_ext> type BAPIPAREX.
DATA : ls_head type BAPI_TE_MEOUTHEADER,
ls_headx type BAPI_TE_MEOUTHEADERX.
* для контракта
IF IM_BSTYP EQ 'K'.
READ TABLE IM_EXTENSIONIN ASSIGNING <fs_ext> WITH KEY STRUCTURE = 'BAPI_TE_MEOUTHEADER'.
IF sy-subrc EQ 0.
CALL METHOD cl_abap_container_utilities=>read_container_c
EXPORTING
im_container = <fs_ext>+30
IMPORTING
ex_value = ls_head
EXCEPTIONS
illegal_parameter_type = 1.
IF sy-subrc EQ 0.
MOVE-CORRESPONDING ls_head TO CH_CUST_HEADER.
ENDIF.
ENDIF.
READ TABLE IM_EXTENSIONIN ASSIGNING <fs_ext> WITH KEY STRUCTURE = 'BAPI_TE_MEOUTHEADERX'.
IF sy-subrc EQ 0.
CALL METHOD cl_abap_container_utilities=>read_container_c
EXPORTING
im_container = <fs_ext>+30
IMPORTING
ex_value = ls_headx
EXCEPTIONS
illegal_parameter_type = 1.
IF sy-subrc EQ 0.
MOVE-CORRESPONDING ls_headx TO CH_CUST_HEADERX.
ENDIF.
ENDIF.
ENDIF.