2012 Mar 22 5:44 AM
Dear Experts..
My requirement is to create PO Plantwise using BAPI_PO_CREATE1 and I am able to pass the data to the BAPI in the following fields..
CALL FUNCTION 'BAPI_PO_CREATE1'
EXPORTING
poheader = po_header
poheaderx = poheaderx
IMPORTING
exppurchaseorder = purchaseorder
TABLES
return = return
poitem = poitem
poitemx = poitemx .
And it is generating a PO, but the probelm is that if, for example, there are 10 records in the excel file which I am supposed to upload and create PO, PO is getting generated only last record i.e. the last Line Item.
Kindly help, I even tried to debig the BAPI, but unable to solve the issue.
Thanks in advance.
2012 Mar 22 5:51 AM
Hi Gopa,
You will have to pass values to POSCHEDULE & POSCHEDULEX also.
Please ensure while de-bugging that, there are 10 records in the internal tables for 'ITEM' & 'SCHEDULE' with line item numbers in incremental way as applicable.
Regards,
Pranav.
Dear Experts..
My requirement is to create PO Plantwise using BAPI_PO_CREATE1 and I am able to pass the data to the BAPI in the following fields..
CALL FUNCTION 'BAPI_PO_CREATE1'
EXPORTING
poheader = po_header
poheaderx = poheaderx
IMPORTING
exppurchaseorder = purchaseorder
TABLES
return = return
poitem = poitem
poitemx = poitemx .
And it is generating a PO, but the probelm is that if, for example, there are 10 records in the excel file which I am supposed to upload and create PO, PO is getting generated only last record i.e. the last Line Item.
Kindly help, I even tried to debig the BAPI, but unable to solve the issue.
Thanks in advance.
2012 Mar 22 5:51 AM
Hi Gopa,
You will have to pass values to POSCHEDULE & POSCHEDULEX also.
Please ensure while de-bugging that, there are 10 records in the internal tables for 'ITEM' & 'SCHEDULE' with line item numbers in incremental way as applicable.
Regards,
Pranav.
2012 Mar 22 6:49 AM
Dear Pranav.
Thanx a TON for you suggestion..As u said I have passed values to POSCHEDULE & POSCHEDULEX also.
And in my excel file I have maintained 12 records for a single plant say MM01 with 3 materails say M1, M2 & M3(here M3 is the last materail in excel with 4 line items-10,20,30,40) . Now once I execute my Bapi, only the last 4 records of M3 is coming in PO remaining materials M1 & M2 with there repective Line Items are not coming.
Plz find the code:-
PO_HEADER-DOC_DATE = tab-DOC_DATE.
IF po_docty is not initial.
PO_HEADER-DOC_TYPE = tab-DOC_TYPE.
ELSE.
PO_HEADER-DOC_TYPE = 'ZA06'.
ENDIF.
PO_HEADER-COMP_CODE = tab-COMP_CODE.
PO_HEADER-PURCH_ORG = tab-PURCH_ORG.
PO_HEADER-PUR_GROUP = tab-PUR_GROUP.
PO_HEADER-VENDOR = tab-VENDOR.
PO_HEADER-SUPPL_PLNT = tab-SUPPL_PLNT.
PO_HEADER-PO_NUMBER = tab-PO_NUMBER.
PO_HEADER-CREAT_DATE = tab-doc_DATE.
****Purchase Order Header Data (Change Parameter)
POHEADERX-DOC_TYPE = 'X'.
POHEADERX-VENDOR = 'X'.
POHEADERX-PURCH_ORG = 'X'.
POHEADERX-PUR_GROUP = 'X'.
***Purchase Order Item
if po_mat = tab-material.
po_item = po_item + 10.
else.
clear po_item.
po_item = po_item + 10.
po_mat = tab-material.
endif.
PO_ITEMS-PO_ITEM = PO_ITEM.
PO_ITEMS-MATERIAL = tab-MATERIAL.
PO_ITEMS-EMATERIAL = tab-EMATERIAL.
IF po_itcat IS NOT INITIAL.
PO_ITEMS-ITEM_CAT = tab-ITEM_CAT.
else.
PO_ITEMS-ITEM_CAT = '7'.
ENDIF.
PO_ITEMS-PLANT = tab-PLANT.
PO_ITEMS-QUANTITY = tab-QUANTITY.
PO_ITEMS-NET_PRICE = tab-NET_PRICE.
PO_ITEMS-STGE_LOC = tab-STGE_LOC.
append po_items.
***Purchase Order Item Data (Change Parameter)
POITEMX-PO_ITEM = PO_ITEM.
POITEMX-MATERIAL = 'X'.
POITEMX-QUANTITY = 'X'.
POITEMX-NET_PRICE = 'X'.
POITEMX-PLANT = 'X'.
APPEND POITEMX.
CLEAR: POITEMX, PO_ITEMS.
*********Fields for Purchase Order Delivery Schedule Lines
POSCHEDULE-PO_ITEM = PO_ITEM.
POSCHEDULE-DELIVERY_DATE = tab-DELIV_DATE.
append POSCHEDULE.
*********Fields for Schedule Lines in Purchase Order (Change Toolbar)
POSCHEDULEX-PO_ITEM = PO_ITEM.
POSCHEDULEX-PO_ITEMX = 'X'.
POSCHEDULEX-DELIVERY_DATE = 'X'.
append POSCHEDULEX.
clear : POSCHEDULE, POSCHEDULEX.
endif.
at end of PLANT.
CALL FUNCTION 'BAPI_PO_CREATE1'
EXPORTING
POHEADER = PO_HEADER
POHEADERX = POHEADERX
IMPORTING
EXPPURCHASEORDER = PURCHASEORDER
TABLES
RETURN = RETURN
POITEM = PO_ITEMS
POITEMX = POITEMX
POSCHEDULE = POSCHEDULE
POSCHEDULEX = POSCHEDULEX
Please guide... Thanx in advance
2012 Mar 22 7:09 AM
Hi
Please check BAPI documentation in SE37 you will get more info on what parameters you need to populate and restrictions of that BAPI.
Parameter: POHEADER
| COMP_CODE | = | 1000 |
| DOC_TYPE | = | NB |
| ITEM_INTVL | = | 00001 |
| VENDOR | = | 0000001000 |
| PMNTTRMS | = | 0001 |
| PURCH_ORG | = | 1000 |
| PUR_GROUP | = | 001 |
| CURRENCY | = | EUR |
Parameter: POHEADERX
| COMP_CODE | = | X |
| DOC_TYPE | = | X |
| ITEM_INTVL | = | X |
| VENDOR | = | X |
| PMNTTRMS | = | X |
| PURCH_ORG | = | X |
| PUR_GROUP | = | X |
Parameter: POITEM
| PO_ITEM | = | 00001 |
| MATERIAL | = | 100-100 |
| PLANT | = | 1000 |
| STGE_LOC | = | 0001 |
| QUANTITY | = | 15.000 |
| TAX_CODE | = | V0 |
| ITEM_CAT | = | 0 |
| ACCTASSCAT | = | K |
Parameter: POITEMX
| PO_ITEM | = | 00001 |
| MATERIAL | = | X |
| PLANT | = | X |
| STGE_LOC | = | X |
| QUANTITY | = | X |
| TAX_CODE | = | X |
| ITEM_CAT | = | X |
| ACCTASSCAT | = | X |
Parameter: POSCHEDULE
| PO_ITEM | = | 00001 |
| SCHED_LINE | = | 0001 |
| DELIVERY_DATE | = | 02.12.2002 |
| QUANTITY | = | 6.000 |
| PO_ITEM | = | 00001 |
| SCHED_LINE | = | 0002 |
| DELIVERY_DATE | = | 03.12.2002 |
| QUANTITY | = | 5.000 |
| PO_ITEM | = | 00001 |
| SCHED_LINE | = | 0003 |
| DELIVERY_DATE | = | 04.12.2002 |
| QUANTITY | = | 4.000 |
Parameter: POSCHEDULEX
| PO_ITEM | = | 00001 |
| SCHED_LINE | = | 0001 |
| PO_ITEMX | = | X |
| SCHED_LINEX | = | X |
| DELIVERY_DATE | = | X |
| QUANTITY | = | X |
| PO_ITEM | = | 00001 |
| SCHED_LINE | = | 0002 |
| PO_ITEMX | = | X |
| SCHED_LINEX | = | X |
| DELIVERY_DATE | = | X |
| QUANTITY | = | X |
| PO_ITEM | = | 00001 |
| SCHED_LINE | = | 0003 |
| PO_ITEMX | = | X |
| SCHED_LINEX | = | X |
| DELIVERY_DATE | = | X |
| QUANTITY | = | X |
Parameter: POACCOUNT
| PO_ITEM | = | 00001 |
| SERIAL_NO | = | 01 |
| QUANTITY | = | 15.000 |
| GL_ACCOUNT | = | 0000400000 |
| COSTCENTER | = | 0000001000 |
| CO_AREA | = | 1000 |
Parameter: POACCOUNTX
| PO_ITEM | = | 00001 |
| SERIAL_NO | = | 01 |
| QUANTITY | = | X |
| GL_ACCOUNT | = | X |
| COSTCENTER | = | X |
| CO_AREA | = | X |
Parameter: POCOND
| ITM_NUMBER | = | 000001 |
| COND_ST_NO | = | 001 |
| COND_TYPE | = | PB00 |
| COND_VALUE | = | 79.900000000 |
| CURRENCY | = | EUR |
| CURRENCY_ISO | = | EUR |
| COND_UNIT | = | KG |
| COND_P_UNT | = | 1 |
| CHANGE_ID | = | U |
Parameter: POCONDX
| ITM_NUMBER | = | 000001 |
| COND_ST_NO | = | 000 |
| ITM_NUMBERX | = | X |
| COND_TYPE | = | X |
| COND_VALUE | = | X |
| CURRENCY | = | X |
| CHANGE_ID | = | X |
Parameter: POPARTNER
| PARTNERDESC | = | OA |
| LANGU | = | EN |
| BUSPARTNO | = | 0000001100 |
| PARTNERDESC | = | GS |
| LANGU | = | EN |
| BUSPARTNO | = | 0000001200 |
| PARTNERDESC | = | PI |
| LANGU | = | EN |
| BUSPARTNO | = | 0000001000 |
2012 Mar 22 7:15 AM
And also pls fecth item number incremental from standard table T161-PINCR, Item number incremental may vary based on doc type & doc category.
Thanks,
Chandra
2012 Mar 22 7:18 AM
Probelm is with below code
***Purchase Order Item
if po_mat = tab-material.
po_item = po_item + 10.
else.
clear po_item.
po_item = po_item + 10.
po_mat = tab-material.
endif.
Try to increment 10 20 ....120(12 Items) irresptive of material and pls check
Thanks,
Chandra
2012 Mar 22 7:28 AM
Dear Chandra Nare,
Thank A lot for your answer...
my problem is solved... now I am able ti generate the PO for all 12 records..
My issue stands resolved...
Regards
Gopa
| User | Count |
|---|---|
| 3 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 |