<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: BAPI_PO_CREATE1 in Application Development and Automation Discussions</title>
    <link>https://community.sap.com/t5/application-development-and-automation-discussions/bapi-po-create1/m-p/3784143#M910448</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;&lt;SPAN __default_attr="blue" __jive_macro_name="color"&gt;&lt;SPAN __default_attr="sylfaen" __jive_macro_name="font"&gt;&lt;SPAN __default_attr="15" __jive_macro_name="size"&gt;
Hi,
For all items of a single PO within the file you have to  populate in internal table ITEM and its corresponding flags in ITEMX. Using the BAPI you can create one PO at a time. So if your flat file contains data for multiple PO group each PO details and call the BAPI individually.

Hope below example can give you some idea on how to approach.

Eg: 
&lt;PRE&gt;&lt;CODE&gt;LOOP AT &amp;lt;file&amp;gt; INTO &amp;lt;wa&amp;gt;.

   AT NEW &amp;lt;po_num&amp;gt;.  " For every New PO
      PERFORM refresh.   " Refresh/Clear Internal Tables, Structures for the BAPI
      PERFORM populate_po_header. " Populate Header Details
   ENDAT.
   
   PERFORM add_item. " Add Line Item
   ....              " Other details like Conditions ... etc if any
   
   AT END OF &amp;lt;po_num&amp;gt;.  " After Populating required details for PO, Create the same
     PERFORM create_po.  " CALL BAPI for populated details
     PEFORM prepare_log.  " Prepare log for Success and Error Records
   ENDAT.
   
ENDLOOP.&lt;/CODE&gt;&lt;/PRE&gt;
&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN __default_attr="maroon" __jive_macro_name="color"&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Wed, 07 May 2008 06:04:10 GMT</pubDate>
    <dc:creator>Former Member</dc:creator>
    <dc:date>2008-05-07T06:04:10Z</dc:date>
    <item>
      <title>BAPI_PO_CREATE1</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/bapi-po-create1/m-p/3784142#M910447</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I have a requirement for BAPI (BAPI_PO_CREATE1). I'm new to BAPI. i've gone through the link &lt;/P&gt;&lt;P&gt;/people/sap.user72/blog/2005/03/22/sample-code-to-create-purchase-order-using-bapi-in-r3&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;it is very helpful. but i have a doubt. while populating HEADER,HEADERX,ITEM and ITEMX, does it contain only one row?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;suppose i have many rows in the flat file, waht should i do?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;pls help me . very urgent&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 07 May 2008 05:34:09 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/bapi-po-create1/m-p/3784142#M910447</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2008-05-07T05:34:09Z</dc:date>
    </item>
    <item>
      <title>Re: BAPI_PO_CREATE1</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/bapi-po-create1/m-p/3784143#M910448</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;&lt;SPAN __default_attr="blue" __jive_macro_name="color"&gt;&lt;SPAN __default_attr="sylfaen" __jive_macro_name="font"&gt;&lt;SPAN __default_attr="15" __jive_macro_name="size"&gt;
Hi,
For all items of a single PO within the file you have to  populate in internal table ITEM and its corresponding flags in ITEMX. Using the BAPI you can create one PO at a time. So if your flat file contains data for multiple PO group each PO details and call the BAPI individually.

Hope below example can give you some idea on how to approach.

Eg: 
&lt;PRE&gt;&lt;CODE&gt;LOOP AT &amp;lt;file&amp;gt; INTO &amp;lt;wa&amp;gt;.

   AT NEW &amp;lt;po_num&amp;gt;.  " For every New PO
      PERFORM refresh.   " Refresh/Clear Internal Tables, Structures for the BAPI
      PERFORM populate_po_header. " Populate Header Details
   ENDAT.
   
   PERFORM add_item. " Add Line Item
   ....              " Other details like Conditions ... etc if any
   
   AT END OF &amp;lt;po_num&amp;gt;.  " After Populating required details for PO, Create the same
     PERFORM create_po.  " CALL BAPI for populated details
     PEFORM prepare_log.  " Prepare log for Success and Error Records
   ENDAT.
   
ENDLOOP.&lt;/CODE&gt;&lt;/PRE&gt;
&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN __default_attr="maroon" __jive_macro_name="color"&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 07 May 2008 06:04:10 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/bapi-po-create1/m-p/3784143#M910448</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2008-05-07T06:04:10Z</dc:date>
    </item>
    <item>
      <title>Re: BAPI_PO_CREATE1</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/bapi-po-create1/m-p/3784144#M910449</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;this is the structure of my internal table. It contains 100 records. I have to use 'BAPI_PO_CREATE1'. how to proceed.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA : begin of itab,&lt;/P&gt;&lt;P&gt;        BSART like ekko-BSART,&lt;/P&gt;&lt;P&gt;        LIFNR like ekko-LIFNR, &lt;/P&gt;&lt;P&gt;        EKORG like ekko-EKORG,&lt;/P&gt;&lt;P&gt;        EKGRP like ekko-EKGRP,&lt;/P&gt;&lt;P&gt;        BUKRS like ekko-BUKRS,&lt;/P&gt;&lt;P&gt;        EBELP like ekpo-EBELP,&lt;/P&gt;&lt;P&gt;        PSTYP like ekpo-PSTYP,&lt;/P&gt;&lt;P&gt;        KNTTP like ekpo-KNTTP,&lt;/P&gt;&lt;P&gt;        EMATN like ekpo-EMATN,&lt;/P&gt;&lt;P&gt;        TXZ01 like ekpo-TXZ01,&lt;/P&gt;&lt;P&gt;        MENGE like ekpo-MENGE,&lt;/P&gt;&lt;P&gt;        MEINS like ekpo-MEINS,&lt;/P&gt;&lt;P&gt;        NETPR like ekpo-NETPR,&lt;/P&gt;&lt;P&gt;        MATKL like ekpo-MATKL,&lt;/P&gt;&lt;P&gt;        WERKS like ekpo-WERKS,&lt;/P&gt;&lt;P&gt;        LGORT like ekpo-LGORT,&lt;/P&gt;&lt;P&gt;        BEDNR like ekpo-BEDNR,&lt;/P&gt;&lt;P&gt;        AFNAM like ekpo-AFNAM,&lt;/P&gt;&lt;P&gt;        MWSKZ like ekpo-MWSKZ,&lt;/P&gt;&lt;P&gt;      end of itab.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 07 May 2008 09:13:35 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/bapi-po-create1/m-p/3784144#M910449</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2008-05-07T09:13:35Z</dc:date>
    </item>
    <item>
      <title>Re: BAPI_PO_CREATE1</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/bapi-po-create1/m-p/3784145#M910450</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Eswar,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks for ur reply...&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;here we r creating PO. then how the above code will work?&lt;/P&gt;&lt;P&gt;"AT NEW &amp;lt;po_num&amp;gt;. " &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;i'm new to bapi. can u tell me step by step?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;i have a flat file of 100 records. the fields of flat file is given below.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ekko-BSART,        ekko-LIFNR,        ekko-EKORG,&lt;/P&gt;&lt;P&gt;ekko-EKGRP,       ekko-BUKRS,      ekpo-EBELP,&lt;/P&gt;&lt;P&gt;ekpo-PSTYP,        ekpo-KNTTP,       ekpo-EMATN,&lt;/P&gt;&lt;P&gt;ekpo-TXZ01,        ekpo-MENGE,        ekpo-MEINS,&lt;/P&gt;&lt;P&gt;ekpo-NETPR,        ekpo-MATKL,        ekpo-WERKS,&lt;/P&gt;&lt;P&gt;ekpo-LGORT,        ekpo-BEDNR,        ekpo-AFNAM,&lt;/P&gt;&lt;P&gt;ekpo-MWSKZ,&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 08 May 2008 08:12:11 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/bapi-po-create1/m-p/3784145#M910450</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2008-05-08T08:12:11Z</dc:date>
    </item>
    <item>
      <title>Re: BAPI_PO_CREATE1</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/bapi-po-create1/m-p/3784146#M910451</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Follow the logic below after you have all the rows in internal table:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE&gt;&lt;CODE&gt;

SORT ITAB BY EBELN EBELP.
LOOP AT ITAB INTO W_ITAB

AT NEW EBELN.


*-----------POPULATE HEADER
*-----------POPULATE HEADER_FLAG	

ENDAT.

*---------------FILL ITEM AND ITEM_FLAG 
*---------------FILL ACCOUNT
*---------------FILL SCHEDULE
*---------------FILL DELIVERYADD ( IF REQUIRED)

IF W_ITAB-PSTYP EQ 9 (IF THE ITEM CATEGORY IS 9)
*----------FILL SERVICE
*----------FILL LIMITS
ENDIF.

AT END OF EBELN.

*----------CALL FUNCTION 'BAPI_PO_CREATE1'

EXPORTING
 POHEADER = GS_POHEADER
 POHEADERX = GS_POHEADER_X
 TESTRUN   = P_TEST
TABLES
 RETURN = GT_PORETURN
 POITEM = GT_POITEM
 POITEMX = GT_POITEM_X
 POADDRDELIVERY = GT_POADDRDELIVERY
 POSCHEDULE = GT_POSCHEDULE
 POSCHEDULEX = GT_POSCHEDULE_X
 POACCOUNT = GT_POACCOUNT
 POACCOUNTX = GT_POACCOUNT_X
 POSERVICES = GT_POSERVICES
 POSRVACCESSVALUES = GT_POSACCESS

IF SY-SUBRC &amp;lt;&amp;gt; 0.
*---------PROCESS PORETURN WITH ERRORS

ENDIF

ENDLOOP

&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks,&lt;/P&gt;&lt;P&gt;SKJ&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 08 May 2008 16:01:22 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/bapi-po-create1/m-p/3784146#M910451</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2008-05-08T16:01:22Z</dc:date>
    </item>
    <item>
      <title>Re: BAPI_PO_CREATE1</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/bapi-po-create1/m-p/3784147#M910452</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Thanks SKJ,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;but i have a doubt. i'm not using EBELN, then how can i sort by EBELN. i've already given u the internal table fields.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;i populated HEADER and HEADER_FLAG. Then i filled ITEM, ITEM_FLAG and ACCOUNT. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;what else i have to fill as per my requirement. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;pls help me....... very urgent....&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 09 May 2008 04:36:50 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/bapi-po-create1/m-p/3784147#M910452</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2008-05-09T04:36:50Z</dc:date>
    </item>
    <item>
      <title>Re: BAPI_PO_CREATE1</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/bapi-po-create1/m-p/3784148#M910453</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Ok...so you are doing internal PO assignment here i guess...&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;In that case you have BSART in your int table. This is at header level. So you can sort your itab with BSART and follow above logic.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;If you are creating service and limit POs then you may have to fill those structures accordingly. Otherwise, these are sufficient.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Hope this helps,&lt;/P&gt;&lt;P&gt;SKJ&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 14 May 2008 17:55:34 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/bapi-po-create1/m-p/3784148#M910453</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2008-05-14T17:55:34Z</dc:date>
    </item>
    <item>
      <title>Re: BAPI_PO_CREATE1</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/bapi-po-create1/m-p/3784149#M910454</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;Here I am sending you the sample code.&lt;/P&gt;&lt;P&gt;It may help u.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;REPORT  ZM_BAPI_PURCHDOCU_CREATE_01.&lt;/P&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="------------------------------------------------------------------" /&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;       User defined structure for Creation of PO using BAPI&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="------------------------------------------------------------------" /&gt;&lt;P&gt;DATA: BEGIN OF IT_POMAIN OCCURS 0,&lt;/P&gt;&lt;P&gt;        BUKRS(4),        "cOMAPNY cODE&lt;/P&gt;&lt;P&gt;        ESART(4),        "Purchasing Document Type&lt;/P&gt;&lt;P&gt;        ELIFN(10),       "Vendor's account number&lt;/P&gt;&lt;P&gt;        SPRAS(1),        "Language Key&lt;/P&gt;&lt;P&gt;        EKORG(4),        "Purchasing Organization&lt;/P&gt;&lt;P&gt;        BKGRP(3),        "Purchasing group&lt;/P&gt;&lt;P&gt;        WAERS(5),        "Currency Key&lt;/P&gt;&lt;P&gt;        RESWK(4),        "Supplying Plant in case of stock transport order&lt;/P&gt;&lt;P&gt;        EBELP(6),        "Item Number of Purchasing Document&lt;/P&gt;&lt;P&gt;        MATERIAL(18),    "Material Number&lt;/P&gt;&lt;P&gt;        EWERK(4),        "Plant&lt;/P&gt;&lt;P&gt;        LGORT_D(4),      "Storage location&lt;/P&gt;&lt;P&gt;        MATKL(9),        "Material group&lt;/P&gt;&lt;P&gt;        BSTMG(13),       "Purchase order quantity&lt;/P&gt;&lt;P&gt;        BSTME(3),        "Order unit&lt;/P&gt;&lt;P&gt;        BAPICUREXT(28),  "Currency amount for BAPIS (with 9 decimal places)&lt;/P&gt;&lt;P&gt;        EEIND(10),       "Delivery date&lt;/P&gt;&lt;P&gt;        ETBDT(8),        "Order date of schedule line&lt;/P&gt;&lt;P&gt;      END OF IT_POMAIN,&lt;/P&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="------------------------------------------------------------------" /&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; Structures for PO Header and Tables for PO Item Data&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="------------------------------------------------------------------" /&gt;&lt;P&gt;      WA_POHEADER TYPE BAPIMEPOHEADER,&lt;/P&gt;&lt;P&gt;      WA_POHEADERX TYPE BAPIMEPOHEADERX,&lt;/P&gt;&lt;P&gt;      IT_ITEM TYPE STANDARD TABLE OF BAPIMEPOITEM WITH HEADER LINE,&lt;/P&gt;&lt;P&gt;      IT_ITEMX TYPE STANDARD TABLE OF BAPIMEPOITEMX WITH HEADER LINE,&lt;/P&gt;&lt;P&gt;      IT_SCHEDULE TYPE STANDARD TABLE OF BAPIMEPOSCHEDULE WITH HEADER LINE,&lt;/P&gt;&lt;P&gt;      IT_SCHEDULEX TYPE STANDARD TABLE OF BAPIMEPOSCHEDULX WITH HEADER LINE,&lt;/P&gt;&lt;P&gt;******Bapi return table for Messages...&lt;/P&gt;&lt;P&gt;      IT_RETURN TYPE STANDARD TABLE OF BAPIRET2 WITH HEADER LINE.&lt;/P&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="------------------------------------------------------------------" /&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                    Designing Selection Screen&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="------------------------------------------------------------------" /&gt;&lt;P&gt;SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-000.&lt;/P&gt;&lt;P&gt;  PARAMETERS: P_FILE TYPE RLGRAP-FILENAME OBLIGATORY.&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN END OF BLOCK B1.&lt;/P&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="------------------------------------------------------------------" /&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    AT LINE SELECTION to give Value request for File Name p_file&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="------------------------------------------------------------------" /&gt;&lt;P&gt;AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_FILE.&lt;/P&gt;&lt;P&gt;  PERFORM GET_F4.&lt;/P&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="------------------------------------------------------------------" /&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                      START OF SELECTION&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="------------------------------------------------------------------" /&gt;&lt;P&gt;START-OF-SELECTION.&lt;/P&gt;&lt;P&gt;  DATA: LV_INFILE TYPE STRING.&lt;/P&gt;&lt;P&gt;  LV_INFILE = P_FILE.&lt;/P&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="------------------------------------------------------------------" /&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; Function Module to Upload Data from Flalt file to Internal Table&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="------------------------------------------------------------------" /&gt;&lt;P&gt;CALL FUNCTION 'GUI_UPLOAD'&lt;/P&gt;&lt;P&gt;  EXPORTING&lt;/P&gt;&lt;P&gt;    filename                      = LV_INFILE&lt;/P&gt;&lt;P&gt;   FILETYPE                      = 'ASC'&lt;/P&gt;&lt;P&gt;   HAS_FIELD_SEPARATOR           = 'X'&lt;/P&gt;&lt;P&gt;  tables&lt;/P&gt;&lt;P&gt;    data_tab                      = IT_POMAIN&lt;/P&gt;&lt;P&gt; EXCEPTIONS&lt;/P&gt;&lt;P&gt;   FILE_OPEN_ERROR               = 1&lt;/P&gt;&lt;P&gt;   FILE_READ_ERROR               = 2&lt;/P&gt;&lt;P&gt;   NO_BATCH                      = 3&lt;/P&gt;&lt;P&gt;   GUI_REFUSE_FILETRANSFER       = 4&lt;/P&gt;&lt;P&gt;   INVALID_TYPE                  = 5&lt;/P&gt;&lt;P&gt;   NO_AUTHORITY                  = 6&lt;/P&gt;&lt;P&gt;   UNKNOWN_ERROR                 = 7&lt;/P&gt;&lt;P&gt;   BAD_DATA_FORMAT               = 8&lt;/P&gt;&lt;P&gt;   HEADER_NOT_ALLOWED            = 9&lt;/P&gt;&lt;P&gt;   SEPARATOR_NOT_ALLOWED         = 10&lt;/P&gt;&lt;P&gt;   HEADER_TOO_LONG               = 11&lt;/P&gt;&lt;P&gt;   UNKNOWN_DP_ERROR              = 12&lt;/P&gt;&lt;P&gt;   ACCESS_DENIED                 = 13&lt;/P&gt;&lt;P&gt;   DP_OUT_OF_MEMORY              = 14&lt;/P&gt;&lt;P&gt;   DISK_FULL                     = 15&lt;/P&gt;&lt;P&gt;   DP_TIMEOUT                    = 16&lt;/P&gt;&lt;P&gt;   OTHERS                        = 17.&lt;/P&gt;&lt;P&gt;IF sy-subrc &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;P&gt; MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO&lt;/P&gt;&lt;P&gt;         WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.&lt;/P&gt;&lt;P&gt;ELSE.&lt;/P&gt;&lt;P&gt;  PERFORM POPULATE_BAPISTRUCT.  " Populating Bapi structures&lt;/P&gt;&lt;P&gt;  PERFORM PO_CREATE.            " Creating PO using BAPI&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="------------------------------------------------------------------" /&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                        END OF SELECTION&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="------------------------------------------------------------------" /&gt;&lt;P&gt;END-OF-SELECTION.&lt;/P&gt;&lt;P&gt;PERFORM GET_ERROR.              " Getting Error Records&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  GET_F4&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   Subroutine to get Flat File Name&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;form GET_F4 .&lt;/P&gt;&lt;P&gt;  CALL FUNCTION 'F4_FILENAME'&lt;/P&gt;&lt;P&gt;   EXPORTING&lt;/P&gt;&lt;P&gt;     PROGRAM_NAME        = SYST-CPROG&lt;/P&gt;&lt;P&gt;     DYNPRO_NUMBER       = SYST-DYNNR&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    FIELD_NAME          = ' '&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;   IMPORTING&lt;/P&gt;&lt;P&gt;     FILE_NAME           = P_FILE.&lt;/P&gt;&lt;P&gt;endform.                    " GET_F4&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  POPULATE_BAPISTRUCT&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  Subroutine to Populate BAPI PO Header &amp;amp; Item Structures&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;form POPULATE_BAPISTRUCT .&lt;/P&gt;&lt;P&gt;  READ TABLE IT_POMAIN INDEX SY-TABIX.&lt;/P&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;LI level="7" type="ul"&gt;&lt;P&gt;Populating BAPI Header Data&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;P&gt;    WA_POHEADER-COMP_CODE  = IT_POMAIN-BUKRS.&lt;/P&gt;&lt;P&gt;    WA_POHEADER-DOC_TYPE   = IT_POMAIN-ESART.&lt;/P&gt;&lt;P&gt;    WA_POHEADER-VENDOR     = IT_POMAIN-ELIFN.&lt;/P&gt;&lt;P&gt;    WA_POHEADER-LANGU      = IT_POMAIN-SPRAS.&lt;/P&gt;&lt;P&gt;    WA_POHEADER-PURCH_ORG  = IT_POMAIN-EKORG.&lt;/P&gt;&lt;P&gt;    WA_POHEADER-PUR_GROUP  = IT_POMAIN-BKGRP.&lt;/P&gt;&lt;P&gt;    WA_POHEADER-CURRENCY   = IT_POMAIN-WAERS.&lt;/P&gt;&lt;P&gt;    WA_POHEADER-SUPPL_PLNT = IT_POMAIN-RESWK.&lt;/P&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;LI level="7" type="ul"&gt;&lt;P&gt;Populating BAPI Header X Data&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;P&gt;    WA_POHEADERX-COMP_CODE  = 'X'.&lt;/P&gt;&lt;P&gt;    WA_POHEADERX-DOC_TYPE   = 'X'.&lt;/P&gt;&lt;P&gt;    WA_POHEADERX-VENDOR     = 'X'.&lt;/P&gt;&lt;P&gt;    WA_POHEADERX-LANGU      = 'X'.&lt;/P&gt;&lt;P&gt;    WA_POHEADERX-PURCH_ORG  = 'X'.&lt;/P&gt;&lt;P&gt;    WA_POHEADERX-PUR_GROUP  = 'X'.&lt;/P&gt;&lt;P&gt;    WA_POHEADERX-CURRENCY   = 'X'.&lt;/P&gt;&lt;P&gt;    WA_POHEADERX-SUPPL_PLNT = 'X'.&lt;/P&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;LI level="7" type="ul"&gt;&lt;P&gt;Populating BAPI Item Data&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;P&gt;    IT_ITEM-PO_ITEM    = IT_POMAIN-EBELP.&lt;/P&gt;&lt;P&gt;    IT_ITEM-MATERIAL   = IT_POMAIN-MATERIAL.&lt;/P&gt;&lt;P&gt;    IT_ITEM-PLANT      = IT_POMAIN-EWERK.&lt;/P&gt;&lt;P&gt;    IT_ITEM-STGE_LOC   = IT_POMAIN-LGORT_D.&lt;/P&gt;&lt;P&gt;    IT_ITEM-MATL_GROUP = IT_POMAIN-MATKL.&lt;/P&gt;&lt;P&gt;    IT_ITEM-QUANTITY   = IT_POMAIN-BSTMG.&lt;/P&gt;&lt;P&gt;    IT_ITEM-PO_UNIT    = IT_POMAIN-BSTME.&lt;/P&gt;&lt;P&gt;    IT_ITEM-NET_PRICE  = IT_POMAIN-BAPICUREXT.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    APPEND IT_ITEM.&lt;/P&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;LI level="7" type="ul"&gt;&lt;P&gt;Populating BAPI Item X Data&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;P&gt;    IT_ITEMX-PO_ITEM    = IT_POMAIN-EBELP.&lt;/P&gt;&lt;P&gt;    IT_ITEMX-MATERIAL   = 'X'.&lt;/P&gt;&lt;P&gt;    IT_ITEMX-PLANT      = 'X'.&lt;/P&gt;&lt;P&gt;    IT_ITEMX-STGE_LOC   = 'X'.&lt;/P&gt;&lt;P&gt;    IT_ITEMX-MATL_GROUP = 'X'.&lt;/P&gt;&lt;P&gt;    IT_ITEMX-QUANTITY   = 'X'.&lt;/P&gt;&lt;P&gt;    IT_ITEMX-PO_UNIT    = 'X'.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   IT_ITEMX-NET_PRICE  = 'X'.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    APPEND IT_ITEMX.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    IT_SCHEDULE-PO_ITEM       = IT_POMAIN-EBELP.&lt;/P&gt;&lt;P&gt;    IT_SCHEDULE-DELIVERY_DATE = IT_POMAIN-EEIND.&lt;/P&gt;&lt;P&gt;    IT_SCHEDULE-PO_DATE       = IT_POMAIN-ETBDT.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    APPEND IT_SCHEDULE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    IT_SCHEDULEX-PO_ITEM       = IT_POMAIN-EBELP.&lt;/P&gt;&lt;P&gt;    IT_SCHEDULEX-DELIVERY_DATE = 'X'.&lt;/P&gt;&lt;P&gt;    IT_SCHEDULEX-PO_DATE       = 'X'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    APPEND IT_SCHEDULEX.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;endform.                    " POPULATE_BAPISTRUCT&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  PO_CREATE&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  Subroutine to Create PO using exsting BAPI FM -- BAPI_PO_CREATE&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;form PO_CREATE .&lt;/P&gt;&lt;P&gt;  CALL FUNCTION 'BAPI_PO_CREATE1'&lt;/P&gt;&lt;P&gt;    EXPORTING&lt;/P&gt;&lt;P&gt;      poheader                     = WA_POHEADER&lt;/P&gt;&lt;P&gt;      POHEADERX                    = WA_POHEADERX&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  IMPORTING&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    EXPPURCHASEORDER             =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    EXPHEADER                    =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    EXPPOEXPIMPHEADER            =&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;   TABLES&lt;/P&gt;&lt;P&gt;     RETURN                       = IT_RETURN&lt;/P&gt;&lt;P&gt;     POITEM                       = IT_ITEM&lt;/P&gt;&lt;P&gt;     POITEMX                      = IT_ITEMX&lt;/P&gt;&lt;P&gt;     POSCHEDULE                   = IT_SCHEDULE&lt;/P&gt;&lt;P&gt;     POSCHEDULEX                  = IT_SCHEDULEX.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;   APPEND IT_RETURN.&lt;/P&gt;&lt;P&gt;endform.                    " PO_CREATE&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  GET_ERROR&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   Subroutine for Error Handling using Bapi return structure&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   and update the databse using BAPI_TRANSACTION_COMMIT&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;form GET_ERROR .&lt;/P&gt;&lt;P&gt;  READ TABLE IT_RETURN WITH KEY TYPE = 'E'.&lt;/P&gt;&lt;P&gt;  IF SY-SUBRC &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;P&gt;    CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'.&lt;/P&gt;&lt;P&gt;    LOOP AT IT_RETURN.&lt;/P&gt;&lt;P&gt;      WRITE:/ IT_RETURN-TYPE,&lt;/P&gt;&lt;P&gt;              IT_RETURN-MESSAGE.&lt;/P&gt;&lt;P&gt;    ENDLOOP.&lt;/P&gt;&lt;P&gt;  ELSE.&lt;/P&gt;&lt;P&gt;  LOOP AT IT_RETURN.&lt;/P&gt;&lt;P&gt;      WRITE:/ IT_RETURN-TYPE,&lt;/P&gt;&lt;P&gt;              IT_RETURN-MESSAGE.&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;endform.                    " GET_ERROR&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards&lt;/P&gt;&lt;P&gt;Sandeep Reddy&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 14 May 2008 19:58:07 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/bapi-po-create1/m-p/3784149#M910454</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2008-05-14T19:58:07Z</dc:date>
    </item>
  </channel>
</rss>

