cancel
Showing results for 
Search instead for 
Did you mean: 

"No data changed " message raised while updating custom feilds of Ekko table

rajesh_salapu
Participant
0 Kudos

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.

View Entire Topic
thkolz
Contributor

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.
rajesh_salapu
Participant
0 Kudos

Hi c12b61ded10b4e18beae75c3b6218d2c,

Thank you so much.it solves my issue.