10-02-2016 2:45 PM
Hi experts,
I have developed program to update field EBAKZ in purchase requisition by using BAPI but uable to update.The code which i have written is as below.Kindly do the needful .
DATA : LT_EBAN TYPE STANDARD TABLE OF EBAN.
FIELD-SYMBOLS <FS_EBAN> TYPE EBAN.
DATA : LW_ORDER TYPE TY_EBAN,
LT_ORDER TYPE STANDARD TABLE OF TY_EBAN,
LW_ITEM TYPE BAPIMEREQITEM,
LW_ITEMX TYPE BAPIMEREQITEMX,
LT_ITEM TYPE STANDARD TABLE OF BAPIMEREQITEM,
LT_ITEMX TYPE STANDARD TABLE OF BAPIMEREQITEMX,
LW_HEADERX TYPE BAPIMEREQHEADERX ,
LW_HEADER TYPE BAPIMEREQHEADER,
LW_RET TYPE BAPIRET2,
* ty_try type bapiebanv,
LT_RET TYPE STANDARD TABLE OF BAPIRET2.
LT_ORDER[] = IT_EBAN[].
SORT LT_ORDER BY BANFN ASCENDING.
DELETE ADJACENT DUPLICATES FROM LT_ORDER
COMPARING BANFN.
LW_HEADERX-PARK_COMPLETE = 'X'.
LOOP AT LT_ORDER INTO LW_ORDER.
CLEAR WA_FINAL.
MOVE-CORRESPONDING LW_ORDER TO WA_FINAL.
REFRESH : LT_ITEM,LT_ITEMX."LT_TEXT.
LOOP AT IT_EBAN INTO WA_EBAN
WHERE BANFN = LW_ORDER-BANFN.
READ TABLE IT_FILE INTO WA_FILE
WITH KEY BANFN = WA_EBAN-BANFN
BNFPO = WA_EBAN-BNFPO.
CLEAR LW_ITEM.
LW_ITEM-PREQ_ITEM = WA_EBAN-BNFPO.
LW_ITEM-CLOSED = WA_FILE-EBAKZ.
APPEND LW_ITEM TO LT_ITEM.
CLEAR LW_ITEM.
LW_ITEMX-PREQ_ITEM = WA_EBAN-BNFPO.
* LW_ITEMX-PARK_COMPLETE = 'X'.
LW_ITEMX-CLOSED = 'X'.
APPEND LW_ITEMX TO LT_ITEMX.
ENDLOOP.
CALL FUNCTION 'BAPI_PR_CHANGE' "Change Enjoy Purchase Requisition
EXPORTING
number = lw_order-banfn
prheader = lw_header
prheaderx = lw_headerx
* testrun =
* IMPORTING
* prheaderexp =
TABLES
return = lt_ret "
pritem = lt_item
pritemx = lt_itemx.
READ TABLE LT_RET INTO LW_RET WITH KEY TYPE = 'S'
NUMBER = '311'.
IF SY-SUBRC = 0.
CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
EXPORTING
WAIT = 'X'.
* IMPORTING
* RETURN =
WA_FINAL-STATUS = LW_RET-MESSAGE.
ELSE.
READ TABLE LT_RET INTO LW_RET WITH KEY TYPE = 'E'.
IF SY-SUBRC = 0.
WA_FINAL-STATUS = LW_RET-MESSAGE.
ENDIF.
ENDIF.
LOOP AT IT_EBAN INTO WA_EBAN
WHERE BANFN = WA_FINAL-BANFN.
MOVE-CORRESPONDING WA_EBAN TO WA_FINAL.
READ TABLE IT_FILE INTO WA_FILE
WITH KEY BANFN = WA_EBAN-BANFN
BNFPO = WA_EBAN-BNFPO.
IF SY-SUBRC = 0.
WA_FINAL-EBAKZ = WA_FILE-EBAKZ.
ENDIF.
APPEND WA_FINAL TO IT_FINAL.
ENDLOOP.
ENDLOOP.
10-04-2016 8:46 AM
Aditya,
Below code is working for me.
l_wa_pritem-preq_item ='00010'.""Item Number
l_wa_pritem-closed = 'X'.
l_wa_pritemx-preq_item ='00010'.""Item Number
l_wa_pritemx-preq_itemx = 'X'.
l_wa_pritemx-closed = 'X'.
APPEND l_wa_pritem TO l_tab_pritem.
APPEND l_wa_pritemx TO l_tab_pritemx.
CALL FUNCTION 'BAPI_PR_CHANGE'
EXPORTING
number = lv_banfn ""PR Number
TABLES
return = ex_return_msg
pritem = l_tab_pritem
pritemx = l_tab_pritemx.
WAIT UP TO 5 SECONDS.
CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'.
10-03-2016 1:45 PM
Hi,
Please use like below.
l_wa_pritem-preq_item = l_wa_eban-bnfpo.
l_wa_pritem-closed = c_x.
l_wa_pritemx-preq_item = l_wa_eban-bnfpo.
l_wa_pritemx-preq_itemx = c_x.
l_wa_pritemx-closed = c_x.
10-04-2016 5:53 AM
10-04-2016 8:46 AM
Aditya,
Below code is working for me.
l_wa_pritem-preq_item ='00010'.""Item Number
l_wa_pritem-closed = 'X'.
l_wa_pritemx-preq_item ='00010'.""Item Number
l_wa_pritemx-preq_itemx = 'X'.
l_wa_pritemx-closed = 'X'.
APPEND l_wa_pritem TO l_tab_pritem.
APPEND l_wa_pritemx TO l_tab_pritemx.
CALL FUNCTION 'BAPI_PR_CHANGE'
EXPORTING
number = lv_banfn ""PR Number
TABLES
return = ex_return_msg
pritem = l_tab_pritem
pritemx = l_tab_pritemx.
WAIT UP TO 5 SECONDS.
CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'.
10-04-2016 9:33 AM