on 09-12-2022 5:48 PM
Hi Experts.
I'm trying to update Ekko custom feilds using bapi BAPI_PO_CHANGE. but dats was not updated and shown a message "NO DATA CHANGED" .please help me to fix this issue.
thanks
Rajesh salapu
*&---------------------------------------------------------------------*
*& Report ZPGM_EKKOUPDATE_TEST
*&---------------------------------------------------------------------*
*&
*&---------------------------------------------------------------------*
REPORT zpgm_ekkoupdate_test.
DATA: lt_ekko TYPE TABLE OF ekko,
lv_ekko TYPE ekko.
DATA:bapi_te_po TYPE bapi_te_mepoheader , "Extension tables
bapi_te_pox TYPE bapi_te_mepoheaderx , "Extension tables
ext_container TYPE TABLE OF bapiparex WITH HEADER LINE, "Extension container
lt_return TYPE TABLE OF bapiret2,
lt_extensionout TYPE TABLE OF bapiparex.
CONSTANTS:lv_s(1) VALUE 'S',
lv_w(1) VALUE 'W',
lv_e(1) VALUE 'E',
lv_a(1) VALUE 'A'.
lv_ekko-ebeln = '0043113660'.
lv_ekko-zcon_mng = 'Manager'.
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
EXPORTING
input = lv_ekko-ebeln
IMPORTING
output = lv_ekko-ebeln.
lv_bapimepoheader-po_number = lv_ekko-ebeln.
CLEAR bapi_te_po.
CLEAR bapi_te_pox.
bapi_te_po-po_number = lv_ekko-ebeln . " Key Field
bapi_te_po-zcon_mng = lv_ekko-zcon_mng ." Customer Added name field
* Prepare the Extension container
ext_container-structure = 'BAPI_TE_MEPOHEADER'.
ext_container-valuepart1+0(10) = bapi_te_po-po_number.
ext_container-valuepart1+10(30) = bapi_te_po-zcon_mng.
APPEND ext_container .
CLEAR ext_container.
*** Mark Fields for updation
bapi_te_pox-po_number = lv_ekko-ebeln .
bapi_te_pox-zcon_mng = 'X'.
ext_container-structure = 'BAPI_TE_MEPOREADERX'.
ext_container-valuepart1 = bapi_te_pox.
APPEND ext_container .
CLEAR ext_container.
CALL FUNCTION 'BAPI_PO_CHANGE'
EXPORTING
purchaseorder = lv_ekko-ebeln
TABLES
return = lt_return
extensionin = ext_container
extensionout = lt_extensionout.
IF sy-subrc = 0 .
LOOP AT lt_return INTO DATA(lv_return).
WRITE: / lv_return-message ,'message type :', lv_return-type .
ENDLOOP.
IF lv_return-type NE lv_e OR lv_return-type NE lv_a .
CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
EXPORTING
wait = 'X'.
ENDIF.
ENDIF.
output:
message type :s
message : no data changed.
First of all:
Please stop using tables with header lines!
DATA:
ls_te_po_header TYPE bapi_te_mepoheader,
ls_te_po_headerx TYPE bapi_te_mepoheaderx,
lt_extensionin TYPE bapiparex_tp.
ls_te_po_header-po_number = '1234567890'.
ls_te_po_header-zztest = 'Test'.
APPEND INITIAL LINE TO lt_extensionin ASSIGNING FIELD-SYMBOL(<fs_extensionin>).
<fs_extensionin>-structure = 'BAPI_TE_MEPOHEADER'.
<fs_extensionin>-valuepart1 = ls_te_po_header.
* Fill X structure
ls_te_po_headerx-po_number = '1234567890'.
ls_te_po_headerx-zztest = abap_true.
APPEND INITIAL LINE TO lt_extensionin ASSIGNING <fs_extensionin>.
<fs_extensionin>-structure = 'BAPI_TE_MEPOHEADERX'.
<fs_extensionin>-valuepart1 = ls_te_po_headerx.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
User | Count |
---|---|
77 | |
9 | |
8 | |
7 | |
6 | |
6 | |
6 | |
5 | |
5 | |
4 |
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.