Application Development and Automation Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
cancel
Showing results for 
Search instead for 
Did you mean: 
Read only

BAPI_PO_CHANGE

Former Member
0 Likes
406

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

2 REPLIES 2
Read only

Former Member
0 Likes
335

Kindly close this duplicate thread.

Regards

Eswar

Read only

Former Member
0 Likes
335

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.