2014 Oct 22 7:43 AM
hi,
I am creating a po with reference of PR using bapi.
I am getting below error
No instance of object type PurchaseOrder has been created. External reference:
my code is below.
ZPO_HEADER-DOC_TYPE = EKKO-BSART.
ZPO_HEADERX-DOC_TYPE = 'X'.
* ZPO_HEADER-LANGU = SY-LANGU.
* ZPO_HEADERX-LANGU = 'X'.
* ZPO_HEADER-OUR_REF = 'hi'.
* ZPO_HEADERX-OUR_REF = 'X'.
ZPO_HEADER-COMP_CODE = 'XXXX'.
ZPO_HEADERX-COMP_CODE = 'X'.
ZPO_HEADER-VENDOR = EKKO-LIFNR.
ZPO_HEADERX-VENDOR = 'X'.
ZPO_HEADER-PURCH_ORG = EKKO-EKORG.
ZPO_HEADERX-PURCH_ORG = 'X'.
ZPO_HEADER-PUR_GROUP = EKKO-EKGRP.
ZPO_HEADERX-PUR_GROUP = 'X'.
* ZPO_HEADER-CREAT_DATE = SY-DATUM.
* ZPO_HEADERX-CREAT_DATE = 'X'.
* ZPO_HEADER-CURRENCY = 'INR'.
* ZPO_HEADERX-CURRENCY = 'X'.
* ZPO_HEADER-INCOTERMS1 = VBKD-INCO1.
* ZPO_HEADERX-INCOTERMS1 = 'X'.
ZPO_HEADER-DOC_DATE = SY-DATUM.
ZPO_HEADERX-DOC_DATE = 'X'.
APPEND ZPO_HEADER.
APPEND ZPO_HEADERX.
CLEAR:EBAN.
SELECT SINGLE * FROM EBAN WHERE BANFN = VBEP-BANFN.
SELECT POSNR MATNR KWMENG FROM VBAP INTO TABLE L_TAB_VBAP WHERE VBELN = I_VBELN1 .
LOOP AT L_TAB_VBAP INTO L_WA_VBAP.
ZPO_ITEM-PO_ITEM = L_WA_VBAP-POSNR.
ZPO_ITEMX-PO_ITEM = L_WA_VBAP-POSNR.
ZPO_ITEMX-PO_ITEMX = 'X'.
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
EXPORTING
input = L_WA_VBAP-MATNR
IMPORTING
output = L_WA_VBAP-MATNR.
* MODIFY xheader.
ZPO_ITEM-MATERIAL = L_WA_VBAP-MATNR.
ZPO_ITEMX-MATERIAL = 'X'.
* ZPO_ITEM-PLANT =
ZPO_ITEM-QUANTITY = L_WA_VBAP-KWMENG.
ZPO_ITEMX-QUANTITY = 'X'.
ZPO_ITEM-TAX_CODE = EKPO-MWSKZ.
ZPO_ITEMX-TAX_CODE = 'X'.
* ZPO_ITEMX-INFO_UPD = 'X'.
* ZPO_ITEM-INFO_UPD = 'X'.
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
EXPORTING
INPUT = VBEP-BANFN
IMPORTING
OUTPUT = VBEP-BANFN.
ZPO_ITEM-PREQ_NO = VBEP-BANFN.
ZPO_ITEMX-PREQ_NO = 'X'.
ZPO_ITEM-PREQ_ITEM = L_WA_VBAP-POSNR.
ZPO_ITEMX-PREQ_ITEM = 'X'.
ZPO_ACC-PO_ITEM = L_WA_VBAP-POSNR.
ZPO_ACCNTX-PO_ITEM = L_WA_VBAP-POSNR.
ZPO_ACCNTX-PO_ITEMX = 'X'.
ZPO_ACC-COSTCENTER = EKKN-KOSTL.
ZPO_ACCNTX-COSTCENTER = 'X'.
ZPO_ITEM-PLANT = EBAN-WERKS.
* ZPO_ITEM-STGE_LOC = EBAN-LGORT.
ZPO_ITEM-PO_UNIT = EBAN-MEINS.
ZPO_ITEM-PO_UNIT_ISO = EBAN-MEINS.
ZPO_ITEM-PREQ_NAME = EBAN-AFNAM.
ZPO_ITEM-PLANT = 'X'.
* ZPO_ITEM-STGE_LOC = 'X'.
ZPO_ITEM-PO_UNIT = 'X'.
ZPO_ITEM-PO_UNIT_ISO = 'X'.
ZPO_ITEM-PREQ_NAME = 'X'.
APPEND: ZPO_ITEM,ZPO_ITEMX.
APPEND: ZPO_ACC,ZPO_ACCNTX.
ZPO_SHED-PO_ITEM = L_WA_VBAP-POSNR.
ZPO_SHEDX-PO_ITEM = L_WA_VBAP-POSNR.
ZPO_SHED-SCHED_LINE = '00001'.
ZPO_SHEDX-SCHED_LINE = '00001'.
ZPO_SHEDX-PO_ITEMX = 'X'.
ZPO_SHED-QUANTITY = L_WA_VBAP-KWMENG.
ZPO_SHEDX-QUANTITY = 'X'.
ZPO_SHED-DELIVERY_DATE = SY-DATUM.
ZPO_SHEDX-DELIVERY_DATE = 'X'.
CALL FUNCTION 'CONVERT_DATE_TO_INTERNAL'
EXPORTING
DATE_EXTERNAL = SY-DATUM
ACCEPT_INITIAL_DATE = 'X'
IMPORTING
DATE_INTERNAL = ZPO_SHED-PO_DATE
EXCEPTIONS
DATE_EXTERNAL_IS_INVALID = 1
OTHERS = 2.
ZPO_SHEDX-PO_DATE = 'X'.
ZPO_SHED-PREQ_NO = VBEP-BANFN..
ZPO_SHEDX-PREQ_NO = 'X'.
ZPO_SHED-PREQ_ITEM = L_WA_VBAP-POSNR.
ZPO_SHEDX-PREQ_ITEM = 'X'.
APPEND: ZPO_SHED,ZPO_SHEDX.
CLEAR : ZPO_SHED,ZPO_SHEDX .
ENDLOOP.
* CLEAR flag.
SORT ZPO_ITEM BY PREQ_NAME.
CALL FUNCTION 'BAPI_PO_CREATE1'
EXPORTING
POHEADER = ZPO_HEADER
POHEADERX = ZPO_HEADERX
NO_PRICE_FROM_PO = 'X'
* testrun = 'X'
IMPORTING
EXPPURCHASEORDER = L_EXPPURCHASEORDER
TABLES
RETURN = L_RETURN
POITEM = ZPO_ITEM
POITEMX = ZPO_ITEMX
POSCHEDULE = ZPO_SHED
POSCHEDULEX = ZPO_SHEDX
POACCOUNT = ZPO_ACC
POACCOUNTX = ZPO_ACCNTX.
BREAK-POINT.
IF SY-SUBRC = '0'..
CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
EXPORTING
WAIT = 'X'.
ENDIF.
SO PLEASE SUGGEST IS THERE ANY MISTAKE IN ABOVE CODE.
THANKS.
2014 Oct 22 10:37 AM
post the whole executable code so that we can execute and check.
2014 Oct 22 10:49 AM
Hello Krishna,
i guess the error is here
ZPO_ITEM-PREQ_NO = VBEP-BANFN.
ZPO_ITEMX-PREQ_NO = 'X'.
ZPO_ITEM-PREQ_ITEM = L_WA_VBAP-POSNR.
You are passing VBAP-POSNR instead of EBAN-BNFPO
even more, instead of VBEP-BANFN you should try to pass EBAN-BANFN
Ah, more again, fill the X structures' fields only if the corresponding fields are filled. For example: if you have BANFN empty, ZPO_ITEMX-PREQ_NO should be blank
2014 Oct 22 10:55 AM
HI SIMONE,
thanks ...
there is no difference between VBAP-POSNR and EBAN-BNFPO both are same(item nos)
I did the same changes earlier but I am getting same error still..
2014 Oct 22 3:01 PM
Hi Krishna,
have you checked all the messages in RETURN table ? Are there messages of type 'E' ?
Regards,
Angelo.
2014 Oct 27 4:40 AM
hi angelo,
yes it's showing error message .when I check testrun it is working fine. while executing the bapi I am getting this error.
2014 Oct 27 5:32 AM
Hi,
Please try to do like this,
Step1: Retrieve the relevant data for the given purchase Requisition number
using the bapi 'BAPI_PR_GETDETAIL'.
CALL FUNCTION 'BAPI_PR_GETDETAIL'
EXPORTING
number = p_banfn
account_assignment = gc_x
IMPORTING
prheader = gs_prheader
TABLES
return = gt_return
pritem = gt_pritem
praccount = gt_praccount.
Step 2: Create PO:
CALL FUNCTION 'BAPI_PO_CREATE1'
EXPORTING
poheader = gs_poheader
poheaderx = gs_poheaderx
IMPORTING
exppurchaseorder = gv_pono
TABLES
return = gt_return
poitem = gt_poitem
poitemx = gt_poitemx
poschedule = gt_poschedule
poschedulex = gt_poschedulex
poaccount = gt_poaccount
poaccountx = gt_poaccountx.
2014 Oct 27 5:49 AM
Hi Krishna,
I am also working on the same requirement. For me below code is working:
CLEAR :iw_poheader,iw_poheaderx,it_result.
iw_poheader-doc_date = sy-datum .
iw_poheader-creat_date = sy-datum .
iw_poheader-item_intvl = '00010'."item.
iw_poheader-doc_type = 'UB'.
iw_poheader-comp_code = '2000'.
iw_poheader-purch_org = '2000'.
iw_poheader-pur_group = '100' .
iw_poheader-vendor = p_shipfrom .
iw_poheaderx-comp_code = 'X'.
iw_poheaderx-doc_type = 'X'.
iw_poheaderx-creat_date = 'X'.
iw_poheaderx-item_intvl = 'X'.
iw_poheaderx-vendor = 'X'.
iw_poheaderx-purch_org = 'X'.
iw_poheaderx-pur_group = 'X'.
iw_poheaderx-doc_date = 'X'.
CLEAR :valu,item,iw_poitem,i_poitem,iw_poitemx,i_poitemx.
LOOP AT gt_data ASSIGNING <fs> WHERE bwtar IS NOT INITIAL AND del_qty IS NOT INITIAL.
item = item + 10.
valu = 99.
iw_poitem-po_item = item.
iw_poitem-material = <fs>-matnr.
iw_poitem-plant = p_shipto.
iw_poitem-stge_loc = <fs>-lgort .
iw_poitem-quantity = <fs>-del_qty .
* iw_poitem-po_unit = wa_final-uom .
iw_poitem-batch = <fs>-bwtar.
iw_poitem-val_type = <fs>-bwtar.
iw_poitem-preq_no = <fs>-banfn.
iw_poitem-preq_item = <fs>-bnfpo.
APPEND iw_poitem TO i_poitem.
iw_poitemx-po_item = item.
iw_poitemx-material = 'X'.
iw_poitemx-plant = 'X'.
iw_poitemx-stge_loc = 'X'.
iw_poitemx-quantity = 'X'.
iw_poitemx-batch = 'X'.
iw_poitemx-val_type = 'X'.
*
iw_poitemx-preq_no = 'X'.
iw_poitemx-preq_item = 'X'.
APPEND iw_poitemx TO i_poitemx.
CLEAR:iw_poitemx,iw_poitem.
ENDLOOP.
IF iw_poheader IS NOT INITIAL AND i_poitem[] IS NOT INITIAL.
CLEAR :return,po.
CALL FUNCTION 'BAPI_PO_CREATE1'
EXPORTING
poheader = iw_poheader
poheaderx = iw_poheaderx
IMPORTING
exppurchaseorder = po
TABLES
return = return
poitem = i_poitem
poitemx = i_poitemx.
IF po IS NOT INITIAL.
CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
* EXPORTING
* WAIT =
* IMPORTING
* RETURN =
.
endif.
Please check. Above code is working for me.
Moreover please tell all the messages you are getting in return table of BAPI.
Regrads,
Pankaj
2014 Oct 27 7:31 AM
I did the same as you suggest but still I am getting same error. for your reference I am attaching the code.
DATA:P_BANFN TYPE BAPIMEREQHEADER-PREQ_NO,
GC_X TYPE BAPIMMPARA-SELECTION,
GS_PRHEADER TYPE BAPIMEREQHEADER,
GT_RETURN LIKE BAPIRET2 OCCURS 0 WITH HEADER LINE,
GT_PRITEM LIKE BAPIMEREQITEM OCCURS 0 WITH HEADER LINE,
GT_PRACCOUNT LIKE BAPIMEREQACCOUNT OCCURS 0 WITH HEADER LINE.
P_BANFN = VBEP-BANFN.
CALL FUNCTION 'BAPI_PR_GETDETAIL'
EXPORTING
NUMBER = P_BANFN
ACCOUNT_ASSIGNMENT = GC_X
IMPORTING
PRHEADER = GS_PRHEADER
TABLES
RETURN = GT_RETURN
PRITEM = GT_PRITEM
PRACCOUNT = GT_PRACCOUNT.
* ZPO_HEADER-PO_NUMBER = 9801041094.
ZPO_HEADER-DOC_TYPE = EKKO-BSART.
ZPO_HEADER-COMP_CODE = 'UTCL'.
ZPO_HEADER-VENDOR = EKKO-LIFNR.
ZPO_HEADER-PURCH_ORG = EKKO-EKORG.
ZPO_HEADER-PUR_GROUP = EKKO-EKGRP.
ZPO_HEADER-CREAT_DATE = SY-DATUM.
ZPO_HEADER-CURRENCY = 'INR'.
ZPO_HEADER-INCOTERMS1 = VBKD-INCO1.
ZPO_HEADER-INCOTERMS2 = VBKD-INCO1.
ZPO_HEADER-DOC_DATE = SY-DATUM.
ZPO_HEADER-PMNTTRMS = '0001'.
ZPO_HEADER-ITEM_INTVL = '00010'.
ZPO_HEADERX-DOC_TYPE = 'X'.
ZPO_HEADERX-COMP_CODE = 'X'.
ZPO_HEADERX-VENDOR = 'X'.
ZPO_HEADERX-PURCH_ORG = 'X'.
ZPO_HEADERX-PUR_GROUP = 'X'.
ZPO_HEADERX-CREAT_DATE = 'X'.
ZPO_HEADERX-CURRENCY = 'X'.
ZPO_HEADERX-INCOTERMS1 = 'X'.
ZPO_HEADERX-INCOTERMS2 = 'X'.
ZPO_HEADERX-DOC_DATE = 'X'.
ZPO_HEADERX-PMNTTRMS = 'X'.
ZPO_HEADERX-ITEM_INTVL = 'X'.
* ZPO_HEADER-LANGU = SY-LANGU.
* ZPO_HEADERX-LANGU = 'X'.
* ZPO_HEADER-OUR_REF = 'hi'.
* ZPO_HEADERX-OUR_REF = 'X'.
APPEND ZPO_HEADER. APPEND ZPO_HEADERX.
CLEAR:EBAN.
SELECT SINGLE * FROM EBAN WHERE BANFN = VBEP-BANFN.
SELECT POSNR MATNR KWMENG FROM VBAP INTO TABLE L_TAB_VBAP WHERE VBELN = I_VBELN1 .
LOOP AT L_TAB_VBAP INTO L_WA_VBAP.
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
EXPORTING
INPUT = L_WA_VBAP-MATNR
IMPORTING
OUTPUT = L_WA_VBAP-MATNR.
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
EXPORTING
INPUT = VBEP-BANFN
IMPORTING
OUTPUT = VBEP-BANFN.
READ TABLE GT_PRITEM WITH KEY PREQ_ITEM = L_WA_VBAP-POSNR.
ZPO_ITEM-PO_ITEM = GT_PRITEM-PREQ_ITEM."L_WA_VBAP-POSNR.
ZPO_ITEM-MATERIAL = GT_PRITEM-MATERIAL."L_WA_VBAP-MATNR.
ZPO_ITEM-QUANTITY = GT_PRITEM-QUANTITY."L_WA_VBAP-KWMENG.
ZPO_ITEM-TAX_CODE = EKPO-MWSKZ.
ZPO_ITEM-ACCTASSCAT = 'X'.
ZPO_ITEM-ITEM_CAT = 'S'.
ZPO_ITEM-PREQ_NO = VBEP-BANFN.
ZPO_ITEM-PREQ_ITEM = L_WA_VBAP-POSNR.
ZPO_ITEM-PLANT = GT_PRITEM-PLANT. "PLANT-WERKS.
ZPO_ITEM-PO_UNIT = GT_PRITEM-UNIT ."PLANT-MEINS.
ZPO_ITEM-PO_UNIT_ISO = GT_PRITEM-PREQ_UNIT_ISO ."PLANT-MEINS.
ZPO_ITEM-PREQ_NAME = GT_PRITEM-PREQ_NAME."PLANT-AFNAM.
ZPO_ITEM-IR_IND = 'X'.
* ZPO_ITEM-GR_BASEDIV = 'X'.
ZPO_ITEM-GR_IND = 'X'.
* ZPO_ITEM-NET_PRICE = 500.
ZPO_ITEMX-PO_ITEM = L_WA_VBAP-POSNR.
ZPO_ITEMX-PO_ITEMX = 'X'.
ZPO_ITEMX-MATERIAL = 'X'.
ZPO_ITEMX-QUANTITY = 'X'.
ZPO_ITEMX-TAX_CODE = 'X'.
ZPO_ITEMX-ACCTASSCAT = 'X'.
ZPO_ITEMX-ITEM_CAT = 'X'.
ZPO_ITEMX-PREQ_NO = 'X'.
ZPO_ITEMX-PREQ_ITEM = 'X'.
ZPO_ITEMX-PLANT = 'X'.
ZPO_ITEMX-PO_UNIT = 'X'.
ZPO_ITEMX-PO_UNIT_ISO = 'X'.
ZPO_ITEMX-PREQ_NAME = 'X'.
ZPO_ITEMX-IR_IND = 'X'.
* ZPO_ITEMX-GR_BASEDIV = 'X'.
ZPO_ITEMX-GR_IND = 'X'.
* ZPO_ITEMX-NET_PRICE = 'X'.
APPEND: ZPO_ITEM,ZPO_ITEMX.
CLEAR:ZPO_ITEM,ZPO_ITEMX.
ZPO_ACC-PO_ITEM = L_WA_VBAP-POSNR.
ZPO_ACC-COSTCENTER = EKKN-KOSTL.
ZPO_ACC-CO_AREA = 'GIL'.
ZPO_ACC-GL_ACCOUNT = '0000705958'.
ZPO_ACCNTX-PO_ITEM = L_WA_VBAP-POSNR.
ZPO_ACCNTX-PO_ITEMX = 'X'.
ZPO_ACCNTX-COSTCENTER = 'X'.
ZPO_ACCNTX-CO_AREA = 'X'.
ZPO_ACCNTX-GL_ACCOUNT = 'X'.
APPEND: ZPO_ACC,ZPO_ACCNTX.
CLEAR:ZPO_ACC,ZPO_ACCNTX.
ZPO_SHED-PO_ITEM = L_WA_VBAP-POSNR.
ZPO_SHED-SCHED_LINE = '00001'.
ZPO_SHED-QUANTITY = L_WA_VBAP-KWMENG.
ZPO_SHED-DEL_DATCAT_EXT = 'D'.
ZPO_SHED-DELIVERY_DATE = SY-DATUM.
ZPO_SHED-STAT_DATE = SY-DATUM.
ZPO_SHED-PO_DATE = SY-DATUM.
ZPO_SHED-PREQ_NO = VBEP-BANFN..
ZPO_SHED-PREQ_ITEM = L_WA_VBAP-POSNR.
ZPO_SHEDX-PO_ITEM = L_WA_VBAP-POSNR.
ZPO_SHEDX-PO_ITEMX = 'X'.
ZPO_SHEDX-SCHED_LINE = '00001'.
ZPO_SHEDX-QUANTITY = 'X'.
ZPO_SHEDX-DEL_DATCAT_EXT = 'X'.
ZPO_SHEDX-DELIVERY_DATE = 'X'.
ZPO_SHEDX-STAT_DATE = 'X'.
ZPO_SHEDX-PO_DATE = 'X'.
ZPO_SHEDX-PREQ_NO = 'X'.
ZPO_SHEDX-PREQ_ITEM = 'X'.
APPEND: ZPO_SHED,ZPO_SHEDX.
CLEAR : ZPO_SHED,ZPO_SHEDX .
ENDLOOP.
DATA:C(1) TYPE C.
*c = 'X'.
BREAK-POINT.
SORT ZPO_ITEM BY PREQ_NAME.
CALL FUNCTION 'BAPI_PO_CREATE1'
EXPORTING
POHEADER = ZPO_HEADER
POHEADERX = ZPO_HEADERX
* NO_PRICE_FROM_PO = 'X'
TESTRUN = C
IMPORTING
EXPPURCHASEORDER = L_EXPPURCHASEORDER
TABLES
RETURN = L_RETURN
POITEM = ZPO_ITEM[]
POITEMX = ZPO_ITEMX[]
POSCHEDULE = ZPO_SHED[]
POSCHEDULEX = ZPO_SHEDX[]
POACCOUNT = ZPO_ACC[]
POACCOUNTX = ZPO_ACCNTX[].
BREAK-POINT.
IF SY-SUBRC = '0'..
CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
EXPORTING
WAIT = 'X'.
ENDIF.
2014 Oct 27 8:00 AM
Hi Krishna,
Please debug your code and tell us all messages coming in L_RETURN table. Open i_return table in debugging mode and tell me all the messages coming after execution of BAPI.
Regards,
Pankaj
2014 Oct 27 8:37 AM
Hi Krishna,
Please use the conversions where ever applicable like material number cost center vendor GL Account etc... and check.
For example,
ST_POACCOUNT-GL_ACCOUNT = '0000511750'.
ST_POACCOUNTX-GL_ACCOUNT = 'X'.
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
EXPORTING
INPUT = ST_POACCOUNT-GL_ACCOUNT
IMPORTING
OUTPUT = ST_POACCOUNT-GL_ACCOUNT.
Regards.
Prakash.
2014 Oct 27 8:57 AM
hi,
I am getting below messages
| TYPE | ID | NUMBER | MESSAGE | LOG_NO | LOG_MSG_NO | MESSAGE_V1 | MESSAGE_V2 | MESSAGE_V3 | MESSAGE_V4 | PARAMETER | ROW | FIELD |
| W | ME | 887 | Error transferring ExtensionIn data for enhancement CI_EKPODB | 0 | CI_EKPODB | POHEADER | 1 | |||||
| W | ME | 887 | Error transferring ExtensionIn data for enhancement CI_EKKODB | 0 | CI_EKKODB | POHEADER | 1 | |||||
| E | BAPI | 1 | No instance of object type PurchaseOrder has been created. External reference: | 0 | PurchaseOrder | POHEADER | 1 | |||||
| W | 6 | 261 | No message generated for output of purchasing document | 0 | POHEADER | 1 | ||||||
| W | ME | 40 | Can delivery date be met? | 0 | POSCHEDULE | 1 |
2014 Oct 27 10:21 AM
Hi Krishna,
There is only one error message.
Try by passing only the necessary fields to "ZPO_HEADER" and "ZPO_HEADERX" tables.
for example:
ZPO_HEADER-CURRENCY = 'INR'.
ZPO_HEADER-INCOTERMS1 = VBKD-INCO1.
ZPO_HEADER-INCOTERMS2 = VBKD-INCO1.
ZPO_HEADER-DOC_DATE = SY-DATUM.
ZPO_HEADER-PMNTTRMS = '0001'.
Above fields are not required. Try by commenting these fields from "ZPO_HEADER" and "ZPO_HEADERX" tables. Just try and check if you get any error message.
Regards,
Pankaj
2014 Oct 27 10:29 AM
2014 Oct 27 10:43 AM
Hi Krishna,
Refer below link..
http://scn.sap.com/thread/1494977
As per coding side, your code seems to be fine. I think this is an enhancement related issue. Check for any SAP Note for this ..
Regards,
Pankaj
2014 Oct 27 10:43 AM
Hi Krishna,
Refer below link..
http://scn.sap.com/thread/1494977
As per coding side, your code seems to be fine. I think this is an enhancement related issue. Check for any SAP Note for this ..
Regards,
Pankaj
2014 Oct 27 10:48 AM
Hi Krishna,
It seems that the are mandatory fields on your BAPI Extension for creating PO.
you have to pass the Extension details also.
**Creation of PO using BAPI
CALL FUNCTION 'BAPI_PO_CREATE1'
EXPORTING
POHEADER = ST_POHEADER
POHEADERX = ST_POHEADERX
TESTRUN = W_TESTRUN
IMPORTING
EXPPURCHASEORDER = ST_EXPPURCHASEORDER
EXPHEADER = ST_EXPHEADER
EXPPOEXPIMPHEADER = ST_EXPPOEXPIMPHEADER
TABLES
RETURN = TBL_RETURN
POITEM = TBL_POITEM
POITEMX = TBL_POITEMX
POSCHEDULE = TBL_POSCHEDULE
POSCHEDULEX = TBL_POSCHEDULEX
POACCOUNT = TBL_POACCOUNT
POACCOUNTX = TBL_POACCOUNTX
EXTENSIONIN = GT_EXTENSION_IN "GT_EXTENSIONIN.
POTEXTHEADER = TBL_POTEXTHEADER
POTEXTITEM = TBL_POTEXTITEM.
CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
EXPORTING
WAIT = 'X'.
Regards,
Prakash.
2014 Oct 27 10:51 AM
Hi parka,
First two are warning messages and 3rd one error message.
2014 Oct 27 11:18 AM
Hi Krishna,
yes i agree, but still there is no other clue in the error table..
Recently i came across a scenario in which a standard functionality was not working and there was one SNOTE available for that. Many times there are some sort of enhancements or SNotes due to which standard functionality gets obstruct.
Regards,
Pankaj
2014 Oct 27 11:44 AM
Hi Krishna,
Are you providing the PO number from your BAPI ? or it is configured to take the next number in the sequence. Try sending the PO number from the program itself.
MOVE VALUE TO ST_POHEADER-PO_NUMBER.
MOVE 'X' TO ST_POHEADERX-PO_NUMBER
.
Regards,
Prakash.
2014 Oct 27 12:57 PM
Prakash,
I have passed the po manually also but I am getting same error.
2014 Oct 28 9:09 AM
Hi Krishna ,
Please check the date format of purchase order date, which may not be
compatible with what the BAPI is expecting.
Good luck,
Regards,
Prakash.
2014 Oct 28 11:48 AM
prakash,
I am passing date as per data type only.. but still I am getting same error
2014 Oct 28 12:12 PM
Hi Krishna,
Please attach your piece of code and a screenshot of PO which was created manually.
Regards,
Prakash.
2014 Oct 28 12:53 PM
Through me21n it's working fine but through bapi it's not working . wether we need any configuration setting required from functional side?
DATA:P_BANFN TYPE BAPIMEREQHEADER-PREQ_NO,
GC_X TYPE BAPIMMPARA-SELECTION,
GS_PRHEADER TYPE BAPIMEREQHEADER,
GT_RETURN LIKE BAPIRET2 OCCURS 0 WITH HEADER LINE,
GT_PRITEM LIKE BAPIMEREQITEM OCCURS 0 WITH HEADER LINE,
GT_PRACCOUNT LIKE BAPIMEREQACCOUNT OCCURS 0 WITH HEADER LINE.
P_BANFN = VBEP-BANFN.
CALL FUNCTION 'BAPI_PR_GETDETAIL'
EXPORTING
NUMBER = P_BANFN
ACCOUNT_ASSIGNMENT = GC_X
IMPORTING
PRHEADER = GS_PRHEADER
TABLES
RETURN = GT_RETURN
PRITEM = GT_PRITEM
PRACCOUNT = GT_PRACCOUNT.
* ZPO_HEADER-PO_NUMBER = 9801041094.
ZPO_HEADER-DOC_TYPE = EKKO-BSART.
ZPO_HEADER-COMP_CODE = 'UTCL'.
ZPO_HEADER-VENDOR = EKKO-LIFNR.
ZPO_HEADER-PURCH_ORG = EKKO-EKORG.
ZPO_HEADER-PUR_GROUP = EKKO-EKGRP.
* ZPO_HEADER-CREAT_DATE = SY-DATUM.
ZPO_HEADER-CURRENCY = 'INR'.
* ZPO_HEADER-INCOTERMS1 = VBKD-INCO1.
* ZPO_HEADER-INCOTERMS2 = VBKD-INCO1.
* ZPO_HEADER-DOC_DATE = SY-DATUM.
* ZPO_HEADER-PMNTTRMS = '0001'.
* ZPO_HEADER-ITEM_INTVL = '00010'.
ZPO_HEADERX-DOC_TYPE = 'X'.
ZPO_HEADERX-COMP_CODE = 'X'.
ZPO_HEADERX-VENDOR = 'X'.
ZPO_HEADERX-PURCH_ORG = 'X'.
ZPO_HEADERX-PUR_GROUP = 'X'.
* ZPO_HEADERX-CREAT_DATE = 'X'.
ZPO_HEADERX-CURRENCY = 'X'.
* ZPO_HEADERX-INCOTERMS1 = 'X'.
* ZPO_HEADERX-INCOTERMS2 = 'X'.
* ZPO_HEADERX-DOC_DATE = 'X'.
* ZPO_HEADERX-PMNTTRMS = 'X'.
* ZPO_HEADERX-ITEM_INTVL = 'X'.
* ZPO_HEADER-LANGU = SY-LANGU.
* ZPO_HEADERX-LANGU = 'X'.
* ZPO_HEADER-OUR_REF = 'hi'.
* ZPO_HEADERX-OUR_REF = 'X'.
APPEND ZPO_HEADER. APPEND ZPO_HEADERX.
CLEAR:EBAN.
SELECT SINGLE * FROM EBAN WHERE BANFN = VBEP-BANFN.
SELECT POSNR MATNR KWMENG FROM VBAP INTO TABLE L_TAB_VBAP WHERE VBELN = I_VBELN1 .
LOOP AT L_TAB_VBAP INTO L_WA_VBAP.
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
EXPORTING
INPUT = L_WA_VBAP-MATNR
IMPORTING
OUTPUT = L_WA_VBAP-MATNR.
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
EXPORTING
INPUT = VBEP-BANFN
IMPORTING
OUTPUT = VBEP-BANFN.
READ TABLE GT_PRITEM WITH KEY PREQ_ITEM = L_WA_VBAP-POSNR.
ZPO_ITEM-PO_ITEM = GT_PRITEM-PREQ_ITEM."L_WA_VBAP-POSNR.
ZPO_ITEM-MATERIAL = GT_PRITEM-MATERIAL."L_WA_VBAP-MATNR.
ZPO_ITEM-QUANTITY = GT_PRITEM-QUANTITY."L_WA_VBAP-KWMENG.
ZPO_ITEM-TAX_CODE = EKPO-MWSKZ.
ZPO_ITEM-ACCTASSCAT = 'X'.
ZPO_ITEM-ITEM_CAT = 'S'.
ZPO_ITEM-PREQ_NO = VBEP-BANFN.
ZPO_ITEM-PREQ_ITEM = L_WA_VBAP-POSNR.
ZPO_ITEM-PLANT = GT_PRITEM-PLANT. "PLANT-WERKS.
ZPO_ITEM-PO_UNIT = GT_PRITEM-UNIT ."PLANT-MEINS.
ZPO_ITEM-PO_UNIT_ISO = GT_PRITEM-PREQ_UNIT_ISO ."PLANT-MEINS.
ZPO_ITEM-PREQ_NAME = GT_PRITEM-PREQ_NAME."PLANT-AFNAM.
ZPO_ITEM-IR_IND = 'X'.
ZPO_ITEM-MATL_GROUP = GT_PRITEM-MATL_GROUP.
ZPO_ITEM-GR_IND = 'X'.
* ZPO_ITEM-NET_PRICE = 500.
ZPO_ITEMX-PO_ITEM = L_WA_VBAP-POSNR.
* ZPO_ITEMX-PO_ITEMX = 'X'.
ZPO_ITEMX-MATERIAL = 'X'.
ZPO_ITEMX-QUANTITY = 'X'.
ZPO_ITEMX-TAX_CODE = 'X'.
ZPO_ITEMX-ACCTASSCAT = 'X'.
ZPO_ITEMX-ITEM_CAT = 'X'.
ZPO_ITEMX-PREQ_NO = 'X'.
ZPO_ITEMX-PREQ_ITEM = 'X'.
ZPO_ITEMX-PLANT = 'X'.
ZPO_ITEMX-PO_UNIT = 'X'.
ZPO_ITEMX-PO_UNIT_ISO = 'X'.
ZPO_ITEMX-PREQ_NAME = 'X'.
ZPO_ITEMX-IR_IND = 'X'.
ZPO_ITEMX-MATL_GROUP = 'X'.
ZPO_ITEMX-GR_IND = 'X'.
* ZPO_ITEMX-NET_PRICE = 'X'.
APPEND: ZPO_ITEM,ZPO_ITEMX.
CLEAR:ZPO_ITEM,ZPO_ITEMX.
ZPO_ACC-PO_ITEM = L_WA_VBAP-POSNR.
ZPO_ACC-COSTCENTER = EKKN-KOSTL.
ZPO_ACC-CO_AREA = 'GIL'.
ZPO_ACC-GL_ACCOUNT = '0000705958'.
ZPO_ACCNTX-PO_ITEM = L_WA_VBAP-POSNR.
* ZPO_ACCNTX-PO_ITEMX = 'X'.
ZPO_ACCNTX-COSTCENTER = 'X'.
ZPO_ACCNTX-CO_AREA = 'X'.
ZPO_ACCNTX-GL_ACCOUNT = 'X'.
APPEND: ZPO_ACC,ZPO_ACCNTX.
CLEAR:ZPO_ACC,ZPO_ACCNTX.
ZPO_SHED-PO_ITEM = L_WA_VBAP-POSNR.
ZPO_SHED-SCHED_LINE = 1.
ZPO_SHED-QUANTITY = L_WA_VBAP-KWMENG.
ZPO_SHED-DEL_DATCAT_EXT = 'D'.
ZPO_SHED-DELIVERY_DATE = '28.10.2014'."SY-DATUM.
ZPO_SHED-STAT_DATE = SY-DATUM.
ZPO_SHED-PO_DATE = SY-DATUM.
ZPO_SHED-PREQ_NO = VBEP-BANFN..
ZPO_SHED-PREQ_ITEM = L_WA_VBAP-POSNR.
ZPO_SHEDX-PO_ITEM = L_WA_VBAP-POSNR.
* ZPO_SHEDX-PO_ITEMX = 'X'.
ZPO_SHEDX-SCHED_LINE = 0001.
ZPO_SHEDX-QUANTITY = 'X'.
ZPO_SHEDX-DEL_DATCAT_EXT = 'X'.
ZPO_SHEDX-DELIVERY_DATE = 'X'.
ZPO_SHEDX-STAT_DATE = 'X'.
ZPO_SHEDX-PO_DATE = 'X'.
ZPO_SHEDX-PREQ_NO = 'X'.
ZPO_SHEDX-PREQ_ITEM = 'X'.
APPEND: ZPO_SHED,ZPO_SHEDX.
CLEAR : ZPO_SHED,ZPO_SHEDX .
* ZPO_COND1-ITM_NUMBER = L_WA_VBAP-POSNR.
* ZPO_COND1-COND_ST_NO = 010.
* ZPO_COND1-COND_COUNT = 01.
* ZPO_COND1-COND_TYPE = 'ZBRC'.
* ZPO_COND1-COND_VALUE = 500.
* ZPO_COND1X-ITM_NUMBER = L_WA_VBAP-POSNR.
* ZPO_COND1X-COND_ST_NO = 010.
* ZPO_COND1X-COND_COUNT = 01.
* ZPO_COND1X-COND_TYPE = 'X'.
* ZPO_COND1X-COND_VALUE = 'X'.
* APPEND: ZPO_COND1,ZPO_COND1X.
ENDLOOP.
DATA:C(1) TYPE C.
C = SPACE.
BREAK-POINT.
* ZPO_HEADERX-PO_NUMBER = 'X'.
SORT ZPO_ITEM BY PREQ_NAME.
CALL FUNCTION 'BAPI_PO_CREATE1'
EXPORTING
POHEADER = ZPO_HEADER
POHEADERX = ZPO_HEADERX
* NO_PRICE_FROM_PO = 'X'
* TESTRUN = C
IMPORTING
EXPPURCHASEORDER = L_EXPPURCHASEORDER
TABLES
RETURN = L_RETURN
POITEM = ZPO_ITEM[]
POITEMX = ZPO_ITEMX[]
POSCHEDULE = ZPO_SHED[]
POSCHEDULEX = ZPO_SHEDX[]
POACCOUNT = ZPO_ACC[]
POACCOUNTX = ZPO_ACCNTX[].
* POCOND = ZPO_COND1[]
* POCONDX = ZPO_COND1X[].
BREAK-POINT.
IF SY-SUBRC = '0'..
CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
EXPORTING
WAIT = 'X'.
2014 Oct 28 2:38 PM
Hi Krishna,
Please use the conversions where ever applicable after GL Account and check.
after
ZPO_ACC-GL_ACCOUNT = '0000705958'
.
For example,
ST_POACCOUNT-GL_ACCOUNT = '0000511750'.
ST_POACCOUNTX-GL_ACCOUNT = 'X'.
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
EXPORTING
INPUT = ST_POACCOUNT-GL_ACCOUNT
IMPORTING
OUTPUT = ST_POACCOUNT-GL_ACCOUNT.
Regards.
Prakash.
2014 Oct 29 6:05 AM
hi prakash,
I think problem was not that . I am getting error from L2012F26 include and below code.
main program:SAPL2012
IF im_aktyp EQ hin.
MESSAGE e001(bapi) WITH 'PurchaseOrder' '' '' ch_po->po_number
INTO gl_dummy.
mmpur_message_forced sy-msgty sy-msgid sy-msgno sy-msgv1
sy-msgv2 sy-msgv3 sy-msgv4.
ELSE.
2014 Oct 31 5:37 AM
hi all,
problem was solved .
problem because of BADI ME_BAPI_PO_CUST (implementation ).
thanks every one.....
2014 Oct 31 5:52 AM
Good to know this..
that's what i was saying that it is probably due to some enhancement or missing SNOTE.
Regards,
Pankaj