Hi Ricardo,
CI_EKKODB and CI_EKKODBX contains only these two custom fields
Below is the code used in the BADI
DATA: x_bapi_te_mepoheader TYPE bapi_te_mepoheader,
x_bapi_te_mepoheaderx TYPE bapi_te_mepoheaderx,
x_customer_field TYPE bbps_if_customer_fields,
x_customer_field1 TYPE bbps_if_customer_fields,
x_extensionin TYPE bapiparex.
DATA: l_txt_960(960) TYPE c.
CONSTANTS: c_poheader(8) VALUE 'POHEADER',
c_field1(6) VALUE 'FIELD1',
c_field2(6) VALUE 'FIELD2',
c_bapi_te_mepoheader(18) VALUE 'BAPI_TE_MEPOHEADER',
c_bapi_te_mepoheaderx(19) VALUE 'BAPI_TE_MEPOHEADERX',
c_x VALUE 'X'.
MOVE bbp_poheader-po_number TO x_bapi_te_mepoheader-po_number.
MOVE bbp_poheader-po_number TO x_bapi_te_mepoheaderx-po_number.
CLEAR x_customer_field1.
READ TABLE bbp_customer_fields INTO x_customer_field1
WITH KEY refobject = 'POHEADER'
fieldname = 'FIELD2'.
READ TABLE bbp_customer_fields INTO x_customer_field
WITH KEY refobject = 'POHEADER'
fieldname = 'FIELD1'.
IF sy-subrc EQ 0.
MOVE x_customer_field-container TO
x_bapi_te_mepoheader-field1.
x_bapi_te_mepoheaderx-field1 = 'X'.
IF x_customer_field1 IS NOT INITIAL.
MOVE x_customer_field1-container TO
x_bapi_te_mepoheader-field2.
x_bapi_te_mepoheaderx-field2 = 'X'.
ENDIF.
ENDIF.
CLEAR: x_extensionin,l_txt_960.
WRITE x_bapi_te_mepoheader TO l_txt_960 LEFT-JUSTIFIED.
x_extensionin-structure = 'BAPI_TE_MEPOHEADER'.
x_extensionin-valuepart1 = l_txt_960(240).
x_extensionin-valuepart2 = l_txt_960+240(240).
APPEND x_extensionin TO bapi_extensionin.
CLEAR: x_extensionin,l_txt_960.
WRITE x_bapi_te_mepoheaderx TO l_txt_960 LEFT-JUSTIFIED.
x_extensionin-structure = 'BAPI_TE_MEPOHEADERX'.
x_extensionin-valuepart1 = l_txt_960(240).
x_extensionin-valuepart2 = l_txt_960+240(240).
APPEND x_extensionin TO bapi_extensionin.
When we added one more dummy field to EKKO table(similar to FIELD1) and populated the value of FIELD1 to it,we are able to see the value in EKKO . But same thing doesn't work with our original field1.