‎2007 Dec 20 11:55 AM
How to add PO Items via PO BAPI?
If possible please give example code.
I am trying to do the same via BAPI_PO_CHANGE.
Is it possible to ass item via same BAPI or some other BAPI should be used?
‎2007 Dec 20 1:17 PM
The same BAPI_PO_CHANGE can be used to update the item details,
we can make the following using this BAPI:
1. Change in header data
2. Change in item
3. Change in delivery schedule
4. Change in account assignment
5. Change in conditions
6. Change in partners
But please pass the appropriate values.
Reward points if useful.
Regards,
Arul
‎2007 Dec 20 1:06 PM
Hi,
Use the following code :
&----
*& Report ZDS_BAPI_PO
*&
&----
*&
*&
&----
REPORT ZDS_BAPI_PO.
DATA: PO_NUM TYPE BAPIMEPOHEADER-PO_NUMBER.
DATA :WA_HEADER TYPE BAPIMEPOHEADER,
WA_HEADERX TYPE BAPIMEPOHEADERX.
DATA: IT_ITEM TYPE TABLE OF BAPIMEPOITEM,
IT_ITEMX TYPE TABLE OF BAPIMEPOITEMX,
WA_ITEM TYPE BAPIMEPOITEM,
WA_ITEMX TYPE BAPIMEPOITEMX,
IT_RETURN TYPE TABLE OF BAPIRET2,
WA_RETURN TYPE BAPIRET2.
WA_HEADER-COMP_CODE = '1000 '.
WA_HEADER-DOC_TYPE = 'NB'.
WA_HEADER-ITEM_INTVL = '00001'.
WA_HEADER-VENDOR = '0000001000' .
WA_HEADER-PMNTTRMS = '0001' .
WA_HEADER-PURCH_ORG = '1000' .
WA_HEADER-PUR_GROUP = '001' .
WA_HEADER-CURRENCY = 'EUR '.
WA_HEADERX-COMP_CODE = 'X'.
WA_HEADERX-DOC_TYPE = 'X'.
WA_HEADERX-ITEM_INTVL = 'X'.
WA_HEADERX-VENDOR = 'X' .
WA_HEADERX-PMNTTRMS = 'X' .
WA_HEADERX-PURCH_ORG = 'X' .
WA_HEADERX-PUR_GROUP = 'X' .
WA_ITEM-PO_ITEM = '00001' .
WA_ITEM-MATERIAL = '100-100'.
WA_ITEM-PLANT = '1000'.
WA_ITEM-STGE_LOC = '0001'.
WA_ITEM-QUANTITY = '15.000'.
WA_ITEM-TAX_CODE = 'V0'.
WA_ITEM-ITEM_CAT = '0'.
*WA_ITEM-ACCTASSCAT = 'K'.
APPEND WA_ITEM TO IT_ITEM.
WA_ITEMX-PO_ITEM = '00001' .
WA_ITEMX-MATERIAL = 'X'.
WA_ITEMX-PLANT = 'X'.
WA_ITEMX-STGE_LOC = 'X'.
WA_ITEMX-QUANTITY = 'X'.
WA_ITEMX-TAX_CODE = 'X'.
WA_ITEMX-ITEM_CAT = 'X'.
WA_ITEMX-ACCTASSCAT = 'X'.
APPEND WA_ITEMX TO IT_ITEMX.
CALL FUNCTION 'BAPI_PO_CREATE1'
EXPORTING
POHEADER = WA_HEADER
POHEADERX = WA_HEADERX
POADDRVENDOR =
TESTRUN =
MEMORY_UNCOMPLETE =
MEMORY_COMPLETE =
POEXPIMPHEADER =
POEXPIMPHEADERX =
VERSIONS =
NO_MESSAGING =
NO_MESSAGE_REQ =
NO_AUTHORITY =
NO_PRICE_FROM_PO =
IMPORTING
EXPPURCHASEORDER = PO_NUM
EXPHEADER =
EXPPOEXPIMPHEADER =
TABLES
RETURN = IT_RETURN
POITEM = IT_ITEM
POITEMX = IT_ITEMX
POADDRDELIVERY =
POSCHEDULE =
POSCHEDULEX =
POACCOUNT =
POACCOUNTPROFITSEGMENT =
POACCOUNTX =
POCONDHEADER =
POCONDHEADERX =
POCOND =
POCONDX =
POLIMITS =
POCONTRACTLIMITS =
POSERVICES =
POSRVACCESSVALUES =
POSERVICESTEXT =
EXTENSIONIN =
EXTENSIONOUT =
POEXPIMPITEM =
POEXPIMPITEMX =
POTEXTHEADER =
POTEXTITEM =
ALLVERSIONS =
POPARTNER =
POCOMPONENTS =
POCOMPONENTSX =
POSHIPPING =
POSHIPPINGX =
POSHIPPINGEXP =
.
IF PO_NUM IS NOT INITIAL.
WRITE:/ 'Po is generated :::::::-',PO_NUM.
ELSE.
LOOP AT IT_RETURN INTO WA_RETURN.
write: / WA_RETURN-MESSAGE.
ENDLOOP.
endif.
CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
EXPORTING
WAIT = 'X'
IMPORTING
RETURN =
.
regards,
DS
‎2007 Dec 20 1:17 PM
The same BAPI_PO_CHANGE can be used to update the item details,
we can make the following using this BAPI:
1. Change in header data
2. Change in item
3. Change in delivery schedule
4. Change in account assignment
5. Change in conditions
6. Change in partners
But please pass the appropriate values.
Reward points if useful.
Regards,
Arul
‎2007 Dec 20 1:28 PM
hi
good
i dont think y ou can add a PO using the BAPI_PO_CHANGE bapi.
thanks
mrutyun^