‎2006 Dec 29 3:50 AM
Hi All,
I have been used the fun module 'BAPI_PO_CHANGE' for PO item Change.
But it is not updating the PO item.
Thanks
Ravi
‎2006 Dec 29 3:57 AM
‎2006 Dec 29 4:27 AM
Pass the required data:
CALL FUNCTION 'BAPI_PO_CHANGE'
EXPORTING
purchaseorder = purchaseorder
poheader = poheader
poheaderx = poheaderx
poaddrvendor = poaddrvendor
testrun = testrun
memory_uncomplete = memory_uncomplete
memory_complete = memory_complete
poexpimpheader = poexpimpheader
poexpimpheaderx = poexpimpheaderx
versions = versions
no_messaging = no_messaging
no_message_req = no_message_req
no_authority = no_authority
no_price_from_po = no_price_from_po
IMPORTING
expheader = expheader
exppoexpimpheader = exppoexpimpheader
TABLES
return = return
poitem = poitem
poitemx = poitemx
poaddrdelivery = poaddrdelivery
poschedule = poschedule
poschedulex = poschedulex
poaccount = poaccount
poaccountprofitsegment = poaccountprofitsegment
poaccountx = poaccountx
pocondheader = pocondheader
pocondheaderx = pocondheaderx
pocond = pocond
pocondx = pocondx
polimits = polimits
pocontractlimits = pocontractlimits
poservices = poservices
posrvaccessvalues = posrvaccessvalues
poservicestext = poservicestext
extensionin = extensionin
extensionout = extensionout
poexpimpitem = poexpimpitem
poexpimpitemx = poexpimpitemx
potextheader = potextheader
potextitem = potextitem .
allversions = allversions
popartner = popartner.
Code inserted to commit work
SORT return BY type.
IF testrun IS INITIAL.
READ TABLE return
WITH KEY type = c_msgtype_e "E.
BINARY SEARCH.
IF sy-subrc NE 0.
CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'.
ELSE.
CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'.
**To generate inbound IDOC for failed PO
perform idoc_create tables poitem
g_t_itemx_tmp
poaddrdelivery
poschedule
g_t_schdx_tmp
poaccount
poaccountprofitsegment
g_t_accntx_tmp
pocond
g_t_condx_tmp
polimits
pocontractlimits
poservices
posrvaccessvalues
poservicestext
extensionin
return
using c_flg_pochange "CHNG
purchaseorder
poheader
g_w_hdrx_tmp
poaddrvendor
testrun
memory_uncomplete
memory_complete .
*
loop at return.
l_wa_zerrors-OBJECT = 'PURCHASE_ORDER'.
l_wa_zerrors-serialno = sy-tabix.
l_wa_zerrors-COMP_CODE = poheader-comp_code.
l_wa_zerrors-zid = return-id.
l_wa_zerrors-znumber = return-number.
l_wa_zerrors-BEACON_DOC_NO = poheader-po_number.
l_wa_zerrors-SRC_DOC_NO = poheader-po_number.
l_wa_zerrors-ZDATE = sy-datum.
l_wa_zerrors-ERR_MSG = return-message.
append l_wa_zerrors to t_errors.
insert into zerrors values l_wa_zerrors.
clear: l_wa_zerrors.
endloop.
SELECT max( SERIALNO )
INTO L_SERIAL
FROM ZP2P_ERRORS.
LOOP AT T_ERRORS.
L_SERIAL = L_SERIAL + 1.
T_ERRORS-SERIALNO = L_SERIAL.
MODIFY T_ERRORS TRANSPORTING SERIALNO.
ENDLOOP.
INSERT ZERRORS FROM TABLE T_ERRORS.
INSERT ZP2P_ERRORS FROM TABLE T_ERRORS.
ENDIF.
ELSE.
CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'.
ENDIF.