<?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/1763570#M330307</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;hi eshwar,&lt;/P&gt;&lt;P&gt;this is how i wana do it. but if i do this its throwing failure exeception.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;now where do i refresh it.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;loop at i_inputxt.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    concatenate i_inputxt-posnr(4) '0' into v_posnr.&lt;/P&gt;&lt;P&gt;    item-po_item    = v_posnr.&lt;/P&gt;&lt;P&gt;    item-plant      = 'PD01'.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   item-stge_loc   = i_inputxt-lgort.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    item-material   = i_inputxt-matnr.&lt;/P&gt;&lt;P&gt;    item-matl_group = i_inputxt-matkl.&lt;/P&gt;&lt;P&gt;    item-quantity   = i_inputxt-asqty.&lt;/P&gt;&lt;P&gt;    item-preq_no    = i_inputxt-ebeln.&lt;/P&gt;&lt;P&gt;    item-preq_item  = v_posnr.&lt;/P&gt;&lt;P&gt;    item-trackingno = i_inputxt-cntno.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   item-preq_item = i_input-posnr.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; item-net_price  = item-price_unit * item-quantity.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    append item.&lt;/P&gt;&lt;P&gt;    clear item.&lt;/P&gt;&lt;P&gt;endloop.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks a lot.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Mon, 04 Dec 2006 05:57:20 GMT</pubDate>
    <dc:creator>Former Member</dc:creator>
    <dc:date>2006-12-04T05:57:20Z</dc:date>
    <item>
      <title>BAPI_PO_Create1</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/bapi-po-create1/m-p/1763568#M330305</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi all,&lt;/P&gt;&lt;P&gt;I wana pass set of items i.e internal table  into bapi_po_create1, but i am asked to use refresh in a loop pass, if i refresh the table how can i append the entries. if i dont refresh it says Exception FAILURE. &lt;/P&gt;&lt;P&gt;can any1 tell me how do i do it.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks n Regards,&lt;/P&gt;&lt;P&gt;santosh kotra.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 04 Dec 2006 05:46:06 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/bapi-po-create1/m-p/1763568#M330305</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2006-12-04T05:46:06Z</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/1763569#M330306</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;HI Santosh&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;If the internal table contains only details of one PO, you need not REFRESH the internal tables after each loop pass.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;But incase the internal table holds data of multiple PO's, then For each new PO you have to do the REFRESH and CLEARING.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Kind Regards&lt;/P&gt;&lt;P&gt;Eswar&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 04 Dec 2006 05:53:29 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/bapi-po-create1/m-p/1763569#M330306</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2006-12-04T05:53:29Z</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/1763570#M330307</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;hi eshwar,&lt;/P&gt;&lt;P&gt;this is how i wana do it. but if i do this its throwing failure exeception.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;now where do i refresh it.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;loop at i_inputxt.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    concatenate i_inputxt-posnr(4) '0' into v_posnr.&lt;/P&gt;&lt;P&gt;    item-po_item    = v_posnr.&lt;/P&gt;&lt;P&gt;    item-plant      = 'PD01'.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   item-stge_loc   = i_inputxt-lgort.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    item-material   = i_inputxt-matnr.&lt;/P&gt;&lt;P&gt;    item-matl_group = i_inputxt-matkl.&lt;/P&gt;&lt;P&gt;    item-quantity   = i_inputxt-asqty.&lt;/P&gt;&lt;P&gt;    item-preq_no    = i_inputxt-ebeln.&lt;/P&gt;&lt;P&gt;    item-preq_item  = v_posnr.&lt;/P&gt;&lt;P&gt;    item-trackingno = i_inputxt-cntno.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   item-preq_item = i_input-posnr.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; item-net_price  = item-price_unit * item-quantity.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    append item.&lt;/P&gt;&lt;P&gt;    clear item.&lt;/P&gt;&lt;P&gt;endloop.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks a lot.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 04 Dec 2006 05:57:20 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/bapi-po-create1/m-p/1763570#M330307</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2006-12-04T05:57:20Z</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/1763571#M330308</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Santosh&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Can you tell me if you are trying to create one PO at a time???&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Also, would you mind posting whole code. I guess that can give some idea and much better scope in advicing a better solution...&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Kind Regards&lt;/P&gt;&lt;P&gt;Eswar&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 04 Dec 2006 06:00:31 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/bapi-po-create1/m-p/1763571#M330308</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2006-12-04T06:00:31Z</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/1763572#M330309</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;hi eshwar,&lt;/P&gt;&lt;P&gt;this is the complete code. plz help me.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;tables: mara,&lt;/P&gt;&lt;P&gt;        lfa1,&lt;/P&gt;&lt;P&gt;        eina,&lt;/P&gt;&lt;P&gt;        eine,&lt;/P&gt;&lt;P&gt;        eban,&lt;/P&gt;&lt;P&gt;        zdrgsah, zdrgsap,&lt;/P&gt;&lt;P&gt;        t100.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*Internal Table to get the input Data&lt;/P&gt;&lt;P&gt;data: begin of i_input occurs 0,&lt;/P&gt;&lt;P&gt;        matnr like ekpo-matnr,&lt;/P&gt;&lt;P&gt;        asqty like ekpo-menge,&lt;/P&gt;&lt;P&gt;        ebeln like ekpo-ebeln,&lt;/P&gt;&lt;P&gt;        posnr like zdrgsap-posnr,&lt;/P&gt;&lt;P&gt;        invno like zdrgsap-invno,&lt;/P&gt;&lt;P&gt;        invdt like zdrgsah-invdt,&lt;/P&gt;&lt;P&gt;        netpr like zdrgsap-netpr,&lt;/P&gt;&lt;P&gt;        cntno like zdrgsap-cntno,&lt;/P&gt;&lt;P&gt;        shcnm like zdrgsah-shcnm,&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;        matkl like ekpo-matkl,&lt;/P&gt;&lt;P&gt;      end of i_input.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data: begin of i_error occurs 0,&lt;/P&gt;&lt;P&gt;        matnr like mara-matnr,&lt;/P&gt;&lt;P&gt;        remark(255) type c,&lt;/P&gt;&lt;P&gt;      end of i_error.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data: i_mara type mara occurs 0 with header line,&lt;/P&gt;&lt;P&gt;      i_eina like eina occurs 0 with header line,&lt;/P&gt;&lt;P&gt;      i_eine like eine occurs 0 with header line.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*Data declaration.&lt;/P&gt;&lt;P&gt;data: v_file     type string,           " Variable for uploading file&lt;/P&gt;&lt;P&gt;      v_item(5)  type c,             " Line item number&lt;/P&gt;&lt;P&gt;      v_itno(2)  type c,&lt;/P&gt;&lt;P&gt;      p_wkurs like zdrgkurs-wkurs,&lt;/P&gt;&lt;P&gt;      v_matnr(20)    type c,&lt;/P&gt;&lt;P&gt;      v_menge(20)    type c,&lt;/P&gt;&lt;P&gt;      v_banfn(20)    type c,&lt;/P&gt;&lt;P&gt;      v_bnfpo(20)    type c,&lt;/P&gt;&lt;P&gt;      v_bednr(20)    type c,&lt;/P&gt;&lt;P&gt;      p_lifnr like lfa1-lifnr,&lt;/P&gt;&lt;P&gt;      v_flag,&lt;/P&gt;&lt;P&gt;      p_lifnrtxt(10),&lt;/P&gt;&lt;P&gt;      p_wkurstxt(9),&lt;/P&gt;&lt;P&gt;      p_bsartxt(4).&lt;/P&gt;&lt;P&gt;.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data: begin of i_inputxt occurs 0,&lt;/P&gt;&lt;P&gt;        matnr(18) ,&lt;/P&gt;&lt;P&gt;        asqty(13) ,&lt;/P&gt;&lt;P&gt;        ebeln(10) ,&lt;/P&gt;&lt;P&gt;        posnr(6)  ,&lt;/P&gt;&lt;P&gt;        invno(10) ,&lt;/P&gt;&lt;P&gt;        invdt(8)  ,&lt;/P&gt;&lt;P&gt;        netpr(11) ,&lt;/P&gt;&lt;P&gt;        cntno(11) ,&lt;/P&gt;&lt;P&gt;        shcnm(10) ,&lt;/P&gt;&lt;P&gt;        werks(4) ,&lt;/P&gt;&lt;P&gt;        lgort(4) ,&lt;/P&gt;&lt;P&gt;        matkl(9) ,&lt;/P&gt;&lt;P&gt;      end of i_inputxt.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Constants&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;constants : c_pd01 like eine-werks value 'PD01',&lt;/P&gt;&lt;P&gt;            c_x value 'X'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data : v_posnr like i_inputxt-posnr.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*Structures to hold PO header data&lt;/P&gt;&lt;P&gt;data : header like  bapimepoheader   ,&lt;/P&gt;&lt;P&gt;       headerx like  bapimepoheaderx .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data : cheader like bapimepocondheader occurs 0 with header line,&lt;/P&gt;&lt;P&gt;       cheaderx like bapimepocondheaderx occurs 0 with header line.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*data : cheaderx like bapimepocondheaderx.&lt;/P&gt;&lt;P&gt;*data :  begin of cheaderx occurs 0,&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;       cond_type like bapimepocondheaderx-cond_type,&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      end of cheaderx.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*Internal Tables to hold PO ITEM DATA&lt;/P&gt;&lt;P&gt;data : item   like bapimepoitem  occurs 0 with header line,&lt;/P&gt;&lt;P&gt;       itemx  like bapimepoitemx occurs 0 with header line,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*Internal table to hold messages from BAPI call&lt;/P&gt;&lt;P&gt;       return like bapiret2 occurs 0 with header line.&lt;/P&gt;&lt;P&gt;data : w_header(40) value 'PO Header'.&lt;/P&gt;&lt;P&gt;data : ws_langu like sy-langu.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*text-001 = 'PO Header' - define as text element&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data : v_company like header-comp_code  value 'SBA'      ,&lt;/P&gt;&lt;P&gt;       v_doctyp  like header-doc_type   value 'ZSEA'       ,&lt;/P&gt;&lt;P&gt;       v_cdate like header-creat_date,&lt;/P&gt;&lt;P&gt;       v_vendor  like header-vendor     ,&lt;/P&gt;&lt;P&gt;       v_pur_org like header-purch_org  value 'SBAP'     ,&lt;/P&gt;&lt;P&gt;       v_pur_grp like header-pur_group  value 'PG1'      .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*Selection Screen Declarations&lt;/P&gt;&lt;P&gt;selection-screen begin of block b1 with frame title text-010.&lt;/P&gt;&lt;P&gt;parameters: p_invno like zdrgsah-invno obligatory,&lt;/P&gt;&lt;P&gt;            p_bsart like ekko-bsart.&lt;/P&gt;&lt;P&gt;selection-screen end of block b1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*selection-screen begin of block b2 with frame title text-002.&lt;/P&gt;&lt;P&gt;*parameters : item_num like item-po_item  default '00010',&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;            material like mara-matnr default '0011442062'   ,&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;            plant    like item-plant    default 'PD01' ,&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;           quantity like item-quantity default 100.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*selection-screen end of block b2.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&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;start-of-selection.&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;*DATA POPULATION&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;  ws_langu = sy-langu.   "Language variable&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  To Upload the data into Internal table.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  perform f_upload_data.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;To Validate the input data.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  perform f_check_data.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; if i_error[] is initial.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;To process the data file&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   perform f_process_session.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   elseif not i_error[] is initial.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;To display the error message&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   perform f_display_error.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  perform bapi_call_data.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; endif.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;end-of-selection.&lt;/P&gt;&lt;P&gt;&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;*Output the messages returned from BAPI call&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;  loop at return.&lt;/P&gt;&lt;P&gt;    write / return-message.&lt;/P&gt;&lt;P&gt;  endloop.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&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  f_upload_data&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;form f_upload_data .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  select matwa as matnr asqty ebeln posnr b~invno invdt netpr cntno&lt;/P&gt;&lt;P&gt;    shcnm into table i_input&lt;/P&gt;&lt;P&gt;         from zdrgsah as a join zdrgsap as b on&lt;/P&gt;&lt;P&gt;         a~invno = b~invno&lt;/P&gt;&lt;P&gt;         where b~invno eq p_invno.&lt;/P&gt;&lt;P&gt;  loop at i_input.&lt;/P&gt;&lt;P&gt;    select single * from eban&lt;/P&gt;&lt;P&gt;       where banfn eq i_input-ebeln&lt;/P&gt;&lt;P&gt;       and   bnfpo eq i_input-posnr.&lt;/P&gt;&lt;P&gt;    if sy-subrc eq 0.&lt;/P&gt;&lt;P&gt;      move eban-werks to i_input-werks.&lt;/P&gt;&lt;P&gt;      move eban-lgort to i_input-lgort.&lt;/P&gt;&lt;P&gt;      move eban-matkl to i_input-matkl.&lt;/P&gt;&lt;P&gt;      modify i_input.&lt;/P&gt;&lt;P&gt;      clear  i_input.&lt;/P&gt;&lt;P&gt;    endif.&lt;/P&gt;&lt;P&gt;  endloop.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;endform.                    " f_upload_data&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  f_check_data&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;form f_check_data .&lt;/P&gt;&lt;P&gt;  if not i_input[] is initial.&lt;/P&gt;&lt;P&gt;    select * from mara&lt;/P&gt;&lt;P&gt;    into table i_mara&lt;/P&gt;&lt;P&gt;    for all entries in i_input&lt;/P&gt;&lt;P&gt;    where matnr eq i_input-matnr.&lt;/P&gt;&lt;P&gt;  endif.&lt;/P&gt;&lt;P&gt;  if i_mara[] is initial.&lt;/P&gt;&lt;P&gt;    message e000(zcnc) with text-001.&lt;/P&gt;&lt;P&gt;  endif.&lt;/P&gt;&lt;P&gt;  read table i_input index 1.&lt;/P&gt;&lt;P&gt;  if sy-subrc eq 0.&lt;/P&gt;&lt;P&gt;    select single lifnr into p_lifnr from zdrgsup&lt;/P&gt;&lt;P&gt;       where shcnm = i_input-shcnm.&lt;/P&gt;&lt;P&gt;    if sy-subrc &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;P&gt;      message e000(zcnc) with text-002.&lt;/P&gt;&lt;P&gt;    endif.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  endif.&lt;/P&gt;&lt;P&gt;  select single wkurs into p_wkurs from zdrgkurs&lt;/P&gt;&lt;P&gt;    where invno = p_invno.&lt;/P&gt;&lt;P&gt;  if sy-subrc ne 0.&lt;/P&gt;&lt;P&gt;    message e000(zcnc) with text-s11.&lt;/P&gt;&lt;P&gt;  endif.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; call function 'CONVERSION_EXIT_ALPHA_OUTPUT'&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   exporting&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     input  = p_lifnr&lt;/P&gt;&lt;/LI&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;     output = p_lifnr.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  p_lifnrtxt = p_lifnr.&lt;/P&gt;&lt;P&gt;  p_wkurstxt = p_wkurs.&lt;/P&gt;&lt;P&gt;  p_bsartxt = p_bsart.&lt;/P&gt;&lt;P&gt;  loop at i_input.&lt;/P&gt;&lt;P&gt;    move-corresponding i_input to i_inputxt.&lt;/P&gt;&lt;P&gt;    append i_inputxt.&lt;/P&gt;&lt;P&gt;  endloop.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;endform.                    "f_check_data&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&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  bapi_call_data&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;      text&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 bapi_call_data.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*POPULATE HEADER DATA FOR PO&lt;/P&gt;&lt;P&gt;  v_cdate = sy-datum.&lt;/P&gt;&lt;P&gt;  header-comp_code  = v_company    .&lt;/P&gt;&lt;P&gt;  header-doc_type   = v_doctyp     .&lt;/P&gt;&lt;P&gt;  header-creat_date = v_cdate      .&lt;/P&gt;&lt;P&gt;  header-vendor     = p_lifnr    .&lt;/P&gt;&lt;P&gt;  header-langu      = ws_langu   .&lt;/P&gt;&lt;P&gt;  header-quotation  = p_invno.&lt;/P&gt;&lt;P&gt;  header-exch_rate  = p_wkurs.&lt;/P&gt;&lt;P&gt;  header-ex_rate_fx = 'X'.&lt;/P&gt;&lt;P&gt;  header-purch_org  = v_pur_org    .&lt;/P&gt;&lt;P&gt;  header-pur_group  = v_pur_grp    .&lt;/P&gt;&lt;P&gt;  header-doc_date   = sy-datum.&lt;/P&gt;&lt;P&gt;&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;*POPULATE HEADER FLAG.&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;  headerx-comp_code  = c_x.&lt;/P&gt;&lt;P&gt;  headerx-doc_type   = c_x.&lt;/P&gt;&lt;P&gt;  headerx-creat_date = c_x.&lt;/P&gt;&lt;P&gt;  headerx-vendor     = c_x.&lt;/P&gt;&lt;P&gt;  headerx-langu      = c_x.&lt;/P&gt;&lt;P&gt;  headerx-quotation  = c_x.&lt;/P&gt;&lt;P&gt;  headerx-exch_rate  = c_x.&lt;/P&gt;&lt;P&gt;  headerx-ex_rate_fx = c_x.&lt;/P&gt;&lt;P&gt;  headerx-purch_org  = c_x.&lt;/P&gt;&lt;P&gt;  headerx-pur_group  = c_x.&lt;/P&gt;&lt;P&gt;  headerx-doc_date   = c_x.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&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;*POPULATE HEADER DATA.CONDITIONS&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;  cheader-cond_type = 'ZCA1'.&lt;/P&gt;&lt;P&gt;  append cheader.&lt;/P&gt;&lt;P&gt;  cheader-cond_type = 'ZFA1'.&lt;/P&gt;&lt;P&gt;  append cheader.&lt;/P&gt;&lt;P&gt;  cheader-cond_type = 'ZINC'.&lt;/P&gt;&lt;P&gt;  append cheader.&lt;/P&gt;&lt;P&gt;  cheader-cond_type = 'ZIV1'.&lt;/P&gt;&lt;P&gt;  append cheader.&lt;/P&gt;&lt;P&gt;  cheader-cond_type = 'ZOT1'.&lt;/P&gt;&lt;P&gt;  append cheader.&lt;/P&gt;&lt;P&gt;&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;*POPULATE HEADER CONDITION FLAG.&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;  cheaderx-cond_type = c_x.&lt;/P&gt;&lt;P&gt;  append cheaderx.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; cheaderx-cond_type = c_x.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; append cheaderx.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; cheaderx-cond_type = c_x.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; append cheaderx.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; cheaderx-cond_type = c_x.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; append cheaderx.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; cheaderx-cond_type = c_x.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; append cheaderx.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&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;*POPULATE ITEM DATA.&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;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; perform bdc_field       using v_bednr   i_input-cntno.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; item-price_unit = '100'.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; itemx-net_price  = c_x.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   append itemx.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   clear itemx.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; endloop.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  loop at i_inputxt.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    concatenate i_inputxt-posnr(4) '0' into v_posnr.&lt;/P&gt;&lt;P&gt;    item-po_item    = v_posnr.&lt;/P&gt;&lt;P&gt;    item-plant      = 'PD01'.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   item-stge_loc   = i_inputxt-lgort.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    item-material   = i_inputxt-matnr.&lt;/P&gt;&lt;P&gt;    item-matl_group = i_inputxt-matkl.&lt;/P&gt;&lt;P&gt;    item-quantity   = i_inputxt-asqty.&lt;/P&gt;&lt;P&gt;    item-preq_no    = i_inputxt-ebeln.&lt;/P&gt;&lt;P&gt;    item-preq_item  = v_posnr.&lt;/P&gt;&lt;P&gt;    item-trackingno = i_inputxt-cntno.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   item-preq_item = i_input-posnr.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; item-net_price  = item-price_unit * item-quantity.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    append item.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;endloop.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&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;*POPULATE ITEM FLAG TABLE&lt;/P&gt;&lt;P&gt;**&amp;amp;----&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    concatenate i_inputxt-posnr(4) '0' into v_posnr.&lt;/P&gt;&lt;P&gt;    itemx-po_item    = v_posnr.&lt;/P&gt;&lt;P&gt;    itemx-po_itemx   = c_x.&lt;/P&gt;&lt;P&gt;    itemx-material   = c_x.&lt;/P&gt;&lt;P&gt;    itemx-plant      = c_x .&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   itemx-stge_loc   = c_x .&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    itemx-quantity   = c_x .&lt;/P&gt;&lt;P&gt;    itemx-stge_loc   = c_x .&lt;/P&gt;&lt;P&gt;    itemx-tax_code   = c_x .&lt;/P&gt;&lt;P&gt;    itemx-item_cat   = c_x .&lt;/P&gt;&lt;P&gt;    item-preq_no     = c_x.&lt;/P&gt;&lt;P&gt;    item-preq_item   = c_x.&lt;/P&gt;&lt;P&gt;    itemx-acctasscat = c_x .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    append itemx.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&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;*BAPI CALL&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;    call function 'BAPI_PO_CREATE1'&lt;/P&gt;&lt;P&gt;      exporting&lt;/P&gt;&lt;P&gt;        poheader                     = header&lt;/P&gt;&lt;P&gt;        poheaderx                    = headerx&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    POADDRVENDOR                 =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    TESTRUN                      =&lt;/P&gt;&lt;/LI&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;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      pocondheader                 = cheader&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      pocondheaderx                = cheaderx&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;       return                       = return&lt;/P&gt;&lt;P&gt;       poitem                       = item&lt;/P&gt;&lt;P&gt;       poitemx                      = itemx.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&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;*Confirm the document creation by calling database COMMIT&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;    call function 'BAPI_TRANSACTION_COMMIT'&lt;/P&gt;&lt;P&gt;      exporting&lt;/P&gt;&lt;P&gt;        wait = 'X'.&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;  RETURN        =&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   refresh item.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   refresh itemx.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; endloop.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;endform.                    "bapi_call_data&lt;/P&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;*if sy-subrc = 0.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; loop at return.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   write / return-message.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; endloop.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*endif&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;thanks,&lt;/P&gt;&lt;P&gt;santosh.&lt;/P&gt;&lt;P&gt;.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 04 Dec 2006 06:05:12 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/bapi-po-create1/m-p/1763572#M330309</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2006-12-04T06:05:12Z</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/1763573#M330310</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Santosh&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;From your code, i understand that every time the program is executed only one PO has to be created:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Have made few modifications, please check:&lt;/P&gt;&lt;PRE&gt;&lt;CODE&gt;TABLES: MARA,
LFA1,
EINA,
EINE,
EBAN,
ZDRGSAH, ZDRGSAP,
T100.

*Internal Table to get the input Data
DATA: BEGIN OF I_INPUT OCCURS 0,
MATNR LIKE EKPO-MATNR,
ASQTY LIKE EKPO-MENGE,
EBELN LIKE EKPO-EBELN,
POSNR LIKE ZDRGSAP-POSNR,
INVNO LIKE ZDRGSAP-INVNO,
INVDT LIKE ZDRGSAH-INVDT,
NETPR LIKE ZDRGSAP-NETPR,
CNTNO LIKE ZDRGSAP-CNTNO,
SHCNM LIKE ZDRGSAH-SHCNM,
WERKS LIKE EKPO-WERKS,
LGORT LIKE EKPO-LGORT,
MATKL LIKE EKPO-MATKL,
END OF I_INPUT.

DATA: BEGIN OF I_ERROR OCCURS 0,
MATNR LIKE MARA-MATNR,
REMARK(255) TYPE C,
END OF I_ERROR.

DATA: I_MARA TYPE MARA OCCURS 0 WITH HEADER LINE,
I_EINA LIKE EINA OCCURS 0 WITH HEADER LINE,
I_EINE LIKE EINE OCCURS 0 WITH HEADER LINE.

*Data declaration.
DATA: V_FILE TYPE STRING, " Variable for uploading file
V_ITEM(5) TYPE C, " Line item number
V_ITNO(2) TYPE C,
P_WKURS LIKE ZDRGKURS-WKURS,
V_MATNR(20) TYPE C,
V_MENGE(20) TYPE C,
V_BANFN(20) TYPE C,
V_BNFPO(20) TYPE C,
V_BEDNR(20) TYPE C,
P_LIFNR LIKE LFA1-LIFNR,
V_FLAG,
P_LIFNRTXT(10),
P_WKURSTXT(9),
P_BSARTXT(4).
.

DATA: BEGIN OF I_INPUTXT OCCURS 0,
MATNR(18) ,
ASQTY(13) ,
EBELN(10) ,
POSNR(6) ,
INVNO(10) ,
INVDT(8) ,
NETPR(11) ,
CNTNO(11) ,
SHCNM(10) ,
WERKS(4) ,
LGORT(4) ,
MATKL(9) ,
END OF I_INPUTXT.


* Constants
CONSTANTS : C_PD01 LIKE EINE-WERKS VALUE 'PD01',
C_X VALUE 'X'.

DATA : V_POSNR LIKE I_INPUTXT-POSNR.

*Structures to hold PO header data
DATA : HEADER LIKE BAPIMEPOHEADER ,
HEADERX LIKE BAPIMEPOHEADERX .

DATA : CHEADER LIKE BAPIMEPOCONDHEADER OCCURS 0 WITH HEADER LINE,
CHEADERX LIKE BAPIMEPOCONDHEADERX OCCURS 0 WITH HEADER LINE.

*data : cheaderx like bapimepocondheaderx.
*data : begin of cheaderx occurs 0,
* cond_type like bapimepocondheaderx-cond_type,
* end of cheaderx.


*Internal Tables to hold PO ITEM DATA
DATA : ITEM LIKE BAPIMEPOITEM OCCURS 0 WITH HEADER LINE,
ITEMX LIKE BAPIMEPOITEMX OCCURS 0 WITH HEADER LINE,

*Internal table to hold messages from BAPI call
RETURN LIKE BAPIRET2 OCCURS 0 WITH HEADER LINE.
DATA : W_HEADER(40) VALUE 'PO Header'.
DATA : WS_LANGU LIKE SY-LANGU.

*text-001 = 'PO Header' - define as text element

DATA : V_COMPANY LIKE HEADER-COMP_CODE VALUE 'SBA' ,
V_DOCTYP LIKE HEADER-DOC_TYPE VALUE 'ZSEA' ,
V_CDATE LIKE HEADER-CREAT_DATE,
V_VENDOR LIKE HEADER-VENDOR ,
V_PUR_ORG LIKE HEADER-PURCH_ORG VALUE 'SBAP' ,
V_PUR_GRP LIKE HEADER-PUR_GROUP VALUE 'PG1' .


*Selection Screen Declarations
SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-010.
PARAMETERS: P_INVNO LIKE ZDRGSAH-INVNO OBLIGATORY,
P_BSART LIKE EKKO-BSART.
SELECTION-SCREEN END OF BLOCK B1.

*selection-screen begin of block b2 with frame title text-002.
*parameters : item_num like item-po_item default '00010',
* material like mara-matnr default '0011442062' ,
* plant like item-plant default 'PD01' ,
* quantity like item-quantity default 100.
*selection-screen end of block b2.



*&amp;amp;---------------------------------------------------------------------*
START-OF-SELECTION.
*&amp;amp;---------------------------------------------------------------------*
*DATA POPULATION
*&amp;amp;---------------------------------------------------------------------*
  WS_LANGU = SY-LANGU. "Language variable

* To Upload the data into Internal table.
  PERFORM F_UPLOAD_DATA.

* To Validate the input data.
  PERFORM F_CHECK_DATA.

* if i_error[] is initial.
* To process the data file
* perform f_process_session.
* elseif not i_error[] is initial.
* To display the error message
* perform f_display_error.

  PERFORM BAPI_CALL_DATA.
* endif.

END-OF-SELECTION.

*&amp;amp;---------------------------------------------------------------------*
*Output the messages returned from BAPI call
*&amp;amp;---------------------------------------------------------------------*
  LOOP AT RETURN.
    WRITE / RETURN-MESSAGE.
  ENDLOOP.





*&amp;amp;---------------------------------------------------------------------*
*&amp;amp; Form f_upload_data
*&amp;amp;---------------------------------------------------------------------*
FORM F_UPLOAD_DATA .

  SELECT MATWA AS MATNR ASQTY EBELN POSNR B~INVNO INVDT NETPR CNTNO
  SHCNM INTO TABLE I_INPUT
  FROM ZDRGSAH AS A JOIN ZDRGSAP AS B ON
  A~INVNO = B~INVNO
  WHERE B~INVNO EQ P_INVNO.
  LOOP AT I_INPUT.
    SELECT SINGLE * FROM EBAN
    WHERE BANFN EQ I_INPUT-EBELN
    AND BNFPO EQ I_INPUT-POSNR.
    IF SY-SUBRC EQ 0.
      MOVE EBAN-WERKS TO I_INPUT-WERKS.
      MOVE EBAN-LGORT TO I_INPUT-LGORT.
      MOVE EBAN-MATKL TO I_INPUT-MATKL.
      MODIFY I_INPUT.
      CLEAR I_INPUT.
    ENDIF.
  ENDLOOP.



ENDFORM. " f_upload_data
*&amp;amp;---------------------------------------------------------------------*
*&amp;amp; Form f_check_data
*&amp;amp;---------------------------------------------------------------------*
FORM F_CHECK_DATA .
  IF NOT I_INPUT[] IS INITIAL.
    SELECT * FROM MARA
    INTO TABLE I_MARA
    FOR ALL ENTRIES IN I_INPUT
    WHERE MATNR EQ I_INPUT-MATNR.
  ENDIF.
  IF I_MARA[] IS INITIAL.
    MESSAGE E000(ZCNC) WITH TEXT-001.
  ENDIF.
  READ TABLE I_INPUT INDEX 1.
  IF SY-SUBRC EQ 0.
    SELECT SINGLE LIFNR INTO P_LIFNR FROM ZDRGSUP
    WHERE SHCNM = I_INPUT-SHCNM.
    IF SY-SUBRC &amp;lt;&amp;gt; 0.
      MESSAGE E000(ZCNC) WITH TEXT-002.
    ENDIF.

  ENDIF.
  SELECT SINGLE WKURS INTO P_WKURS FROM ZDRGKURS
  WHERE INVNO = P_INVNO.
  IF SY-SUBRC NE 0.
    MESSAGE E000(ZCNC) WITH TEXT-S11.
  ENDIF.

* call function 'CONVERSION_EXIT_ALPHA_OUTPUT'
* exporting
* input = p_lifnr
* importing
* output = p_lifnr.

  P_LIFNRTXT = P_LIFNR.
  P_WKURSTXT = P_WKURS.
  P_BSARTXT = P_BSART.
  LOOP AT I_INPUT.
    MOVE-CORRESPONDING I_INPUT TO I_INPUTXT.
    APPEND I_INPUTXT.
  ENDLOOP.



ENDFORM. "f_check_data



*&amp;amp;--------------------------------------------------------------------*
*&amp;amp; Form bapi_call_data
*&amp;amp;--------------------------------------------------------------------*
* text
*---------------------------------------------------------------------*
FORM BAPI_CALL_DATA.

*POPULATE HEADER DATA FOR PO
  V_CDATE = SY-DATUM.
  HEADER-COMP_CODE = V_COMPANY .
  HEADER-DOC_TYPE = V_DOCTYP .
  HEADER-CREAT_DATE = V_CDATE .
  HEADER-VENDOR = P_LIFNR .
  HEADER-LANGU = WS_LANGU .
  HEADER-QUOTATION = P_INVNO.
  HEADER-EXCH_RATE = P_WKURS.
  HEADER-EX_RATE_FX = 'X'.
  HEADER-PURCH_ORG = V_PUR_ORG .
  HEADER-PUR_GROUP = V_PUR_GRP .
  HEADER-DOC_DATE = SY-DATUM.

*&amp;amp;---------------------------------------------------------------------*
*POPULATE HEADER FLAG.
*&amp;amp;---------------------------------------------------------------------*
  HEADERX-COMP_CODE = C_X.
  HEADERX-DOC_TYPE = C_X.
  HEADERX-CREAT_DATE = C_X.
  HEADERX-VENDOR = C_X.
  HEADERX-LANGU = C_X.
  HEADERX-QUOTATION = C_X.
  HEADERX-EXCH_RATE = C_X.
  HEADERX-EX_RATE_FX = C_X.
  HEADERX-PURCH_ORG = C_X.
  HEADERX-PUR_GROUP = C_X.
  HEADERX-DOC_DATE = C_X.


**&amp;amp;---------------------------------------------------------------------
**
**POPULATE HEADER DATA.CONDITIONS
**&amp;amp;---------------------------------------------------------------------
**
*  CHEADER-COND_TYPE = 'ZCA1'.
*  APPEND CHEADER.
*  CHEADER-COND_TYPE = 'ZFA1'.
*  APPEND CHEADER.
*  CHEADER-COND_TYPE = 'ZINC'.
*  APPEND CHEADER.
*  CHEADER-COND_TYPE = 'ZIV1'.
*  APPEND CHEADER.
*  CHEADER-COND_TYPE = 'ZOT1'.
*  APPEND CHEADER.
*
**&amp;amp;---------------------------------------------------------------------
**
**POPULATE HEADER CONDITION FLAG.
**&amp;amp;---------------------------------------------------------------------
**
*  CHEADERX-COND_TYPE = C_X.
*  APPEND CHEADERX.
** cheaderx-cond_type = c_x.
** append cheaderx.
** cheaderx-cond_type = c_x.
** append cheaderx.
** cheaderx-cond_type = c_x.
** append cheaderx.
** cheaderx-cond_type = c_x.
** append cheaderx.

*&amp;amp;---------------------------------------------------------------------*
*POPULATE ITEM DATA.
*&amp;amp;---------------------------------------------------------------------*

* perform bdc_field using v_bednr i_input-cntno.

* item-price_unit = '100'.



* itemx-net_price = c_x.
* append itemx.
* clear itemx.
* endloop.
  LOOP AT I_INPUTXT.

    CONCATENATE I_INPUTXT-POSNR(4) '0' INTO V_POSNR.
    ITEM-PO_ITEM = V_POSNR.
    ITEM-PLANT = 'PD01'.
* item-stge_loc = i_inputxt-lgort.
    ITEM-MATERIAL = I_INPUTXT-MATNR.
    ITEM-MATL_GROUP = I_INPUTXT-MATKL.
    ITEM-QUANTITY = I_INPUTXT-ASQTY.
    ITEM-PREQ_NO = I_INPUTXT-EBELN.
    ITEM-PREQ_ITEM = V_POSNR.
    ITEM-TRACKINGNO = I_INPUTXT-CNTNO.
* item-preq_item = i_input-posnr.
* item-net_price = item-price_unit * item-quantity.

    APPEND ITEM.

*&amp;amp;---------------------------------------------------------------------*
*POPULATE ITEM FLAG TABLE
**&amp;amp;---------------------------------------------------------------------
*


  CONCATENATE I_INPUTXT-POSNR(4) '0' INTO V_POSNR.
  ITEMX-PO_ITEM = V_POSNR.
  ITEMX-PO_ITEMX = C_X.
  ITEMX-MATERIAL = C_X.
  ITEMX-PLANT = C_X .
* itemx-stge_loc = c_x .
  ITEMX-QUANTITY = C_X .
  ITEMX-STGE_LOC = C_X .
  ITEMX-TAX_CODE = C_X .
  ITEMX-ITEM_CAT = C_X .
  ITEM-PREQ_NO = C_X.
  ITEM-PREQ_ITEM = C_X.
  ITEMX-ACCTASSCAT = C_X .

  APPEND ITEMX.
  
  ENDLOOP.

*&amp;amp;---------------------------------------------------------------------*
*BAPI CALL
*&amp;amp;---------------------------------------------------------------------*
  CALL FUNCTION 'BAPI_PO_CREATE1'
  EXPORTING
  POHEADER = HEADER
  POHEADERX = HEADERX
* POADDRVENDOR =
* TESTRUN =
* IMPORTING
* EXPPURCHASEORDER =
* EXPHEADER =
* EXPPOEXPIMPHEADER =
  TABLES
* pocondheader = cheader
* pocondheaderx = cheaderx
  RETURN = RETURN
  POITEM = ITEM
  POITEMX = ITEMX.


*&amp;amp;---------------------------------------------------------------------*
*Confirm the document creation by calling database COMMIT
*&amp;amp;---------------------------------------------------------------------*
  CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
    EXPORTING
      WAIT = 'X'.
* IMPORTING
* RETURN =


* refresh item.
* refresh itemx.
* endloop.

ENDFORM. "bapi_call_data
*
*if sy-subrc = 0.
* loop at return.
* write / return-message.
* endloop.
*endif&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Have commented the conditions part as the data you are just populating condition types with out any price and other requirements.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Also have brought the ITEMS FLAG population into the internal table as it has be one to one relation with the no. of records in ITEMS table.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Kind Regards&lt;/P&gt;&lt;P&gt;Eswar&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 04 Dec 2006 06:32:49 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/bapi-po-create1/m-p/1763573#M330310</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2006-12-04T06:32:49Z</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/1763574#M330311</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Eshwar,&lt;/P&gt;&lt;P&gt;its throwing EXCEPTION FAILURE. should i refresh it now to avoid this excetion if so where  to refresh.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks,&lt;/P&gt;&lt;P&gt;Santosh.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 04 Dec 2006 06:42:32 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/bapi-po-create1/m-p/1763574#M330311</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2006-12-04T06:42:32Z</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/1763575#M330312</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi eshwar,&lt;/P&gt;&lt;P&gt;Could you plz check the code, its throwing excetion failure again.....actually those conditions are not passed into bapi thts y i left it like tht. could u plz c dis.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks,&lt;/P&gt;&lt;P&gt;santosh.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 04 Dec 2006 07:02:02 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/bapi-po-create1/m-p/1763575#M330312</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2006-12-04T07:02:02Z</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/1763576#M330313</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;HI Santosh &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;As you are using Internal number range for PO Number, i guess you have to import the PO Number.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Kind Regards&lt;/P&gt;&lt;P&gt;Eswar&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 04 Dec 2006 07:03:53 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/bapi-po-create1/m-p/1763576#M330313</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2006-12-04T07:03:53Z</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/1763577#M330314</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;hi Eshwar,&lt;/P&gt;&lt;P&gt;if i take single value value its working but if i pass it in a loop its throwing tht error. Do u think its bcoz of number range??&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 04 Dec 2006 07:42:20 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/bapi-po-create1/m-p/1763577#M330314</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2006-12-04T07:42:20Z</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/1763578#M330315</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;HI Santosh&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Couldnt get, what you mean by SINGLE value??? Can you be more clear???&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Kind Regards&lt;/P&gt;&lt;P&gt;Eswar&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 04 Dec 2006 08:13:27 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/bapi-po-create1/m-p/1763578#M330315</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2006-12-04T08:13:27Z</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/1763579#M330316</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;i mean instead of set of items , if i giv only 1 item, im able to create PO but if i loop it its throwing exception FAILURE.&lt;/P&gt;&lt;P&gt;Thnaks,&lt;/P&gt;&lt;P&gt;Santosh Kotra.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 04 Dec 2006 08:37:39 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/bapi-po-create1/m-p/1763579#M330316</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2006-12-04T08:37:39Z</dc:date>
    </item>
  </channel>
</rss>

