08-13-2007 12:28 PM
Hi,
I am using this Fm to update the quantity of various po items and it works fine for single line item but when i try to update the multiple line item it doesnlt work...
what may be the reason?
Regards
Gunjan
08-13-2007 12:38 PM
Make sure you are populating the POITEM and POITEMX table with multiple lines, and explicitly stating the PO_ITEM field, in both POITEM and POITEMX tables.
So if you were changing line 30, 50 and 70 or your purchase order, you need three lines in table POITEM, for PO_ITEM = 30, 50, 70 each and you need three lines in the POITEMX table, with PO_ITEM = 30, 50, 70 and an 'X' in all corresponding fields of POITEM that you would want to change.
08-13-2007 12:41 PM
08-13-2007 12:43 PM
l_purchaseorder = '3100000017'.
i_bapimepoheader-po_number = '3100000017'.
i_bapimepoheader-comp_code = '8525'.
i_bapimepoheader-doc_type = 'HD'.
i_bapimepoheader-vendor = '7250001702'.
i_bapimepoheader-purch_org = 'EA00'.
i_bapimepoheader-pur_group = '999'.
i_bapimepoheader-currency = 'SEK'.
i_bapimepoheader-incoterms1 = 'FCA'.
APPEND i_bapimepoheader.
i_bapimepoheaderx-po_number = 'X'.
i_bapimepoheaderx-comp_code = 'X'.
i_bapimepoheaderx-doc_type = 'X'.
i_bapimepoheaderx-vendor = 'X'.
i_bapimepoheaderx-purch_org = 'X'.
i_bapimepoheaderx-pur_group = 'X'.
i_bapimepoheaderx-currency = 'X'.
i_bapimepoheaderx-incoterms1 = 'X'.
APPEND i_bapimepoheaderx.
i_bapimepoitem-po_item = '00010'.
i_bapimepoitem-material = '000000000001847802'.
i_bapimepoitem-plant = 'SE31'.
*i_bapimepoitem-quantity = '000900000.000'.
i_bapimepoitem-po_unit = 'ST'.
i_bapimepoitem-orderpr_un = 'ST'.
i_bapimepoitem-net_price = '00000000000.40'.
i_bapimepoitem-price_unit = '1'.
APPEND i_bapimepoitem.
i_bapimepoitemx-po_item = '00010'.
i_bapimepoitemx-material = 'X'.
i_bapimepoitemx-plant = 'X'..
*i_bapimepoitemx-quantity = 'X'..
i_bapimepoitemx-po_unit = 'X'..
i_bapimepoitemx-orderpr_un = 'X'..
i_bapimepoitemx-net_price = 'X'..
i_bapimepoitemx-price_unit = 'X'..
APPEND i_bapimepoitemx.
* start gunjan 13.08.07
i_bapimepoitem-po_item = '00020'.
i_bapimepoitem-material = '000000000001847802'.
i_bapimepoitem-plant = 'SE31'.
*i_bapimepoitem-quantity = '000900000.000'.
i_bapimepoitem-po_unit = 'ST'.
i_bapimepoitem-orderpr_un = 'ST'.
i_bapimepoitem-net_price = '00000000001.40'.
i_bapimepoitem-price_unit = '1'.
APPEND i_bapimepoitem.
i_bapimepoitemx-po_item = '00020'.
i_bapimepoitemx-material = 'X'.
i_bapimepoitemx-plant = 'X'..
*i_bapimepoitemx-quantity = 'X'..
i_bapimepoitemx-po_unit = 'X'..
i_bapimepoitemx-orderpr_un = 'X'..
i_bapimepoitemx-net_price = 'X'..
i_bapimepoitemx-price_unit = 'X'..
APPEND i_bapimepoitemx.
* end gunjan 13.08.07
i_bapimeposchedule-po_item = '00010'.
i_bapimeposchedule-delivery_date = '12.08.2007'.
i_bapimeposchedule-quantity = '000780000.000'.
APPEND i_bapimeposchedule.
i_bapimeposchedulx-po_item = '00010'.
i_bapimeposchedulx-delivery_date = 'X'.
i_bapimeposchedulx-quantity = 'X'.
APPEND i_bapimeposchedulx.
i_poexpimpitem-po_item = '00010'.
i_poexpimpitem-export_import_procedure = 'Z9999'.
APPEND i_poexpimpitem.
i_poexpimpitemx-po_item = '00010'.
i_poexpimpitemx-export_import_procedure = 'X'.
APPEND i_poexpimpitemx.
*start gunjan 13.08.07
i_bapimeposchedule-po_item = '00020'.
i_bapimeposchedule-delivery_date = '09.08.2007'.
i_bapimeposchedule-quantity = '00080000.000'.
APPEND i_bapimeposchedule.
i_bapimeposchedulx-po_item = '00020'.
i_bapimeposchedulx-delivery_date = 'X'.
i_bapimeposchedulx-quantity = 'X'.
APPEND i_bapimeposchedulx.
i_poexpimpitem-po_item = '00020'.
i_poexpimpitem-export_import_procedure = 'Z9999'.
APPEND i_poexpimpitem.
i_poexpimpitemx-po_item = '00020'.
i_poexpimpitemx-export_import_procedure = 'X'.
APPEND i_poexpimpitemx.
*end gunjan 13.08.07
*
*i_bapimepoitemx-po_item = 'X'.
*i_bapimepoitemx-material = 'X'.
*i_bapimepoitemx-plant = 'X'..
*i_bapimepoitemx-quantity = 'X'..
*i_bapimepoitemx-po_unit = 'X'..
*i_bapimepoitemx-orderpr_un = 'X'..
*i_bapimepoitemx-net_price = 'X'..
*i_bapimepoitemx-price_unit = 'X'..
*APPEND i_bapimepoitemx.
*
*
i_bapiekkop-partnerdesc = 'GS'.
i_bapiekkop-langu = 'E'.
i_bapiekkop-buspartno = '6250008355'.
APPEND i_bapiekkop.
CALL FUNCTION 'BAPI_PO_CHANGE'
EXPORTING
purchaseorder = l_purchaseorder
poheader = i_bapimepoheader
poheaderx = i_bapimepoheaderx
* POADDRVENDOR =
* TESTRUN =
* MEMORY_UNCOMPLETE =
* MEMORY_COMPLETE =
* POEXPIMPHEADER =
* POEXPIMPHEADERX =
* VERSIONS =
* NO_MESSAGING =
* NO_MESSAGE_REQ =
* NO_AUTHORITY =
* NO_PRICE_FROM_PO =
IMPORTING
expheader = i_expheader
exppoexpimpheader = i_exppoexpimpheader
TABLES
return = i_return
poitem = i_bapimepoitem
poitemx = i_bapimepoitemx
* POADDRDELIVERY =
poschedule = i_bapimeposchedule
poschedulex = i_bapimeposchedulx
* POACCOUNT =
* POACCOUNTPROFITSEGMENT =
* POACCOUNTX =
* POCONDHEADER =
* POCONDHEADERX =
* POCOND =
* POCONDX =
* POLIMITS =
* POCONTRACTLIMITS =
* POSERVICES =
* POSRVACCESSVALUES =
* POSERVICESTEXT =
* EXTENSIONIN =
* EXTENSIONOUT =
poexpimpitem = i_poexpimpitem
poexpimpitemx = i_poexpimpitemx
* POTEXTHEADER =
* POTEXTITEM =
* ALLVERSIONS =
* POPARTNER =
.
COMMIT WORK AND WAIT.
*CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
* EXPORTING
* WAIT =
* IMPORTING
* RETURN =
.
please check this part and tell me where i am going wrong..
Regards
Gunjan