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.