<?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: how to create PO using BAPI in Application Development and Automation Discussions</title>
    <link>https://community.sap.com/t5/application-development-and-automation-discussions/how-to-create-po-using-bapi/m-p/1446236#M211766</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hello, &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;U can use the BAPI_PO_CREATE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CHeck the where used list for this BAPI. And do the same thing in ur report also.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Don't points.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Rgerads,&lt;/P&gt;&lt;P&gt;Vasanth&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Fri, 07 Jul 2006 07:48:50 GMT</pubDate>
    <dc:creator>Former Member</dc:creator>
    <dc:date>2006-07-07T07:48:50Z</dc:date>
    <item>
      <title>how to create PO using BAPI</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/how-to-create-po-using-bapi/m-p/1446234#M211764</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 am new in BAPI .Plz tell me How to create PO using BAPI in ABAP.Plz send me ABAP code or Mail me on my id hem_libra@rediffmail.com.I am using external range for Purchase order.I hav to enter old purchase order.&lt;/P&gt;&lt;P&gt;Thanx in advance&lt;/P&gt;&lt;P&gt;Regards,&lt;/P&gt;&lt;P&gt;Hemlata&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 07 Jul 2006 07:43:42 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/how-to-create-po-using-bapi/m-p/1446234#M211764</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2006-07-07T07:43:42Z</dc:date>
    </item>
    <item>
      <title>Re: how to create PO using BAPI</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/how-to-create-po-using-bapi/m-p/1446235#M211765</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;refer  this  link  whole  sample  code  is  attech...&lt;/P&gt;&lt;P&gt;&lt;A class="jive_macro jive_macro_message" href="https://community.sap.com/" __jive_macro_name="message" modifiedtitle="true" __default_attr="1178452"&gt;&lt;/A&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 07 Jul 2006 07:48:05 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/how-to-create-po-using-bapi/m-p/1446235#M211765</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2006-07-07T07:48:05Z</dc:date>
    </item>
    <item>
      <title>Re: how to create PO using BAPI</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/how-to-create-po-using-bapi/m-p/1446236#M211766</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hello, &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;U can use the BAPI_PO_CREATE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CHeck the where used list for this BAPI. And do the same thing in ur report also.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Don't points.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Rgerads,&lt;/P&gt;&lt;P&gt;Vasanth&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 07 Jul 2006 07:48:50 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/how-to-create-po-using-bapi/m-p/1446236#M211766</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2006-07-07T07:48:50Z</dc:date>
    </item>
    <item>
      <title>Re: how to create PO using BAPI</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/how-to-create-po-using-bapi/m-p/1446237#M211767</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Hema,&lt;/P&gt;&lt;P&gt;        here is some sample code to help you get started using the BAPI. Of course, you will have to substitute valid values for a couple variables.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  constants : c_x value 'X'. &lt;/P&gt;&lt;P&gt;  data: del_date type sy-datum. &lt;/P&gt;&lt;P&gt;  data: pohead  type bapimepoheader.&lt;/P&gt;&lt;P&gt;  data: poheadx type bapimepoheaderx. &lt;/P&gt;&lt;P&gt;  data: exp_head type bapimepoheader. &lt;/P&gt;&lt;P&gt;  data: return  type table of bapiret2 with header line.&lt;/P&gt;&lt;P&gt;  data: poitem  type table of bapimepoitem with header line.&lt;/P&gt;&lt;P&gt;  data: poitemx type table of bapimepoitemx with header line. &lt;/P&gt;&lt;P&gt;  data: posched  type table of bapimeposchedule with header line.&lt;/P&gt;&lt;P&gt;  data: poschedx type table of bapimeposchedulx with header line. &lt;/P&gt;&lt;P&gt;  data: ex_po_number type bapimepoheader-po_number. &lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Header Level Data&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  pohead-comp_code = '0010'.&lt;/P&gt;&lt;P&gt;  pohead-doc_type   = 'NB'     .&lt;/P&gt;&lt;P&gt;  pohead-creat_date = sy-datum   . &lt;/P&gt;&lt;P&gt;  pohead-vendor = '0000012345'. &lt;/P&gt;&lt;P&gt;  pohead-purch_org = '1000'.&lt;/P&gt;&lt;P&gt;  pohead-pur_group = 'EMG'. &lt;/P&gt;&lt;P&gt;  pohead-langu      = sy-langu.&lt;/P&gt;&lt;P&gt;  pohead-doc_date   = sy-datum. &lt;/P&gt;&lt;P&gt;  poheadx-comp_code  = c_x.&lt;/P&gt;&lt;P&gt;  poheadx-doc_type   = c_x.&lt;/P&gt;&lt;P&gt;  poheadx-creat_date = c_x.&lt;/P&gt;&lt;P&gt;  poheadx-vendor     = c_x.&lt;/P&gt;&lt;P&gt;  poheadx-langu      = c_x.&lt;/P&gt;&lt;P&gt;  poheadx-purch_org  = c_x.&lt;/P&gt;&lt;P&gt;  poheadx-pur_group  = c_x.&lt;/P&gt;&lt;P&gt;  poheadx-doc_date   = c_x. &lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Item Level Data&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  poitem-po_item  = 1.&lt;/P&gt;&lt;P&gt;  poitem-material = '000000000040001000'.&lt;/P&gt;&lt;P&gt;  poitem-plant    = '0006'.&lt;/P&gt;&lt;P&gt;  poitem-stge_loc = '6000'.&lt;/P&gt;&lt;P&gt;  poitem-quantity = 1.&lt;/P&gt;&lt;P&gt;  append poitem. &lt;/P&gt;&lt;P&gt;  poitemx-po_item    = 1.&lt;/P&gt;&lt;P&gt;  poitemx-po_itemx   = c_x.&lt;/P&gt;&lt;P&gt;  poitemx-material   = c_x.&lt;/P&gt;&lt;P&gt;  poitemx-plant      = c_x .&lt;/P&gt;&lt;P&gt;  poitemx-stge_loc   = c_x .&lt;/P&gt;&lt;P&gt;  poitemx-quantity   = c_x .&lt;/P&gt;&lt;P&gt;  poitemx-tax_code   = c_x .&lt;/P&gt;&lt;P&gt;  poitemx-item_cat   = c_x .&lt;/P&gt;&lt;P&gt;  poitemx-acctasscat = c_x .&lt;/P&gt;&lt;P&gt;  append poitemx. &lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Schedule Line Level Data&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  posched-po_item        = 1.&lt;/P&gt;&lt;P&gt;  posched-sched_line     = 1.&lt;/P&gt;&lt;P&gt;  posched-del_datcat_ext = 'D'.&lt;/P&gt;&lt;P&gt;  del_date = sy-datum + 1.&lt;/P&gt;&lt;P&gt;  write del_date to posched-delivery_date.&lt;/P&gt;&lt;P&gt;  posched-deliv_time     = '000001'.&lt;/P&gt;&lt;P&gt;  posched-quantity       = 1.&lt;/P&gt;&lt;P&gt;  append posched.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  poschedx-po_item        = 1.&lt;/P&gt;&lt;P&gt;  poschedx-sched_line     = 1.&lt;/P&gt;&lt;P&gt;  poschedx-po_itemx       = c_x.&lt;/P&gt;&lt;P&gt;  poschedx-sched_linex    = c_x.&lt;/P&gt;&lt;P&gt;  poschedx-del_datcat_ext = c_x.&lt;/P&gt;&lt;P&gt;  poschedx-delivery_date  = c_x.&lt;/P&gt;&lt;P&gt;  poschedx-quantity       = c_x.&lt;/P&gt;&lt;P&gt;  append poschedx.&lt;/P&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         = pohead&lt;/P&gt;&lt;P&gt;            poheaderx        = poheadx&lt;/P&gt;&lt;P&gt;            testrun          = ' '&lt;/P&gt;&lt;P&gt;       IMPORTING&lt;/P&gt;&lt;P&gt;            exppurchaseorder = ex_po_number&lt;/P&gt;&lt;P&gt;            expheader        = exp_head&lt;/P&gt;&lt;P&gt;       TABLES&lt;/P&gt;&lt;P&gt;            return           = return&lt;/P&gt;&lt;P&gt;            poitem           = poitem&lt;/P&gt;&lt;P&gt;            poitemx          = poitemx&lt;/P&gt;&lt;P&gt;            poschedule       = posched&lt;/P&gt;&lt;P&gt;            poschedulex      = poschedx.&lt;/P&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;P&gt;  if not ex_po_number is initial.&lt;/P&gt;&lt;P&gt;    call function 'DEQUEUE_ALL'.&lt;/P&gt;&lt;P&gt;  else.&lt;/P&gt;&lt;P&gt;    call function 'DEQUEUE_ALL'.&lt;/P&gt;&lt;P&gt;    message i036.&lt;/P&gt;&lt;P&gt;  endif.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards,&lt;/P&gt;&lt;P&gt;Shalini&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 07 Jul 2006 09:32:40 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/how-to-create-po-using-bapi/m-p/1446237#M211767</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2006-07-07T09:32:40Z</dc:date>
    </item>
    <item>
      <title>Re: how to create PO using BAPI</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/how-to-create-po-using-bapi/m-p/1446238#M211768</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;u can try BAPI 'BAPI_PO_CREATE1' which is based on transaction ME21N.. refer the code below &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;REPORT  ZMMR_VTLS_UPLOAD NO STANDARD PAGE HEADING&lt;/P&gt;&lt;P&gt;                         LINE-SIZE 470&lt;/P&gt;&lt;P&gt;                         MESSAGE-ID zisb.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;tables : zvtls_sap.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*C-- Types Declarations&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;TYPES : BEGIN OF tp_flatfile_vtls,&lt;/P&gt;&lt;P&gt;        lifnr type ekko-lifnr,&lt;/P&gt;&lt;P&gt;        ebeln type ekko-ebeln,&lt;/P&gt;&lt;P&gt;        ebelp type ekpo-ebelp,&lt;/P&gt;&lt;P&gt;        text(134),&lt;/P&gt;&lt;P&gt;        netpr(13),&lt;/P&gt;&lt;P&gt;        menge(16),&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;       matkl type ekpo-matkl,&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;        matkl(15),&lt;/P&gt;&lt;P&gt;        END OF tp_flatfile_vtls.&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;                  INTERNAL TABLES DECLARATION&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*=====================================================================&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA:  t_flatfile_vtls TYPE tp_flatfile_vtls OCCURS 0 WITH HEADER LINE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data : begin of t_po_header occurs 0,&lt;/P&gt;&lt;P&gt;       po like ekko-ebeln,&lt;/P&gt;&lt;P&gt;       vendor like ekko-lifnr,&lt;/P&gt;&lt;P&gt;       end of t_po_header.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA : BEGIN OF T_PO_ITEM OCCURS 0,&lt;/P&gt;&lt;P&gt;       PO LIKE EKKO-EBELN,&lt;/P&gt;&lt;P&gt;       ITEM LIKE EKPO-EBELP,&lt;/P&gt;&lt;P&gt;       TEXT(132),&lt;/P&gt;&lt;P&gt;       PRICE TYPE P DECIMALS 2,&lt;/P&gt;&lt;P&gt;       menge(16),&lt;/P&gt;&lt;P&gt;       MATKL LIKE EKPO-MATKL,&lt;/P&gt;&lt;P&gt;       KNTTP LIKE EKPO-KNTTP,&lt;/P&gt;&lt;P&gt;       ASSET LIKE EKKN-ANLN1,&lt;/P&gt;&lt;P&gt;       COST LIKE EKKN-KOSTL,&lt;/P&gt;&lt;P&gt;       GL_ACC LIKE EKKN-SAKTO,&lt;/P&gt;&lt;P&gt;       end of t_po_item.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA : BEGIN OF T_TABLE OCCURS 0,&lt;/P&gt;&lt;P&gt;       MANDT LIKE ZVTLS_SAP-MANDT,&lt;/P&gt;&lt;P&gt;       POVTLS LIKE ZVTLS_SAP-POVTLS,&lt;/P&gt;&lt;P&gt;       ITEMVTLS LIKE ZVTLS_SAP-ITEMVTLS,&lt;/P&gt;&lt;P&gt;       POSAP LIKE ZVTLS_SAP-POSAP,&lt;/P&gt;&lt;P&gt;       ITEMSAP LIKE ZVTLS_SAP-ITEMSAP,&lt;/P&gt;&lt;P&gt;       AEDAT LIKE ZVTLS_SAP-AEDAT,&lt;/P&gt;&lt;P&gt;       PAEDT LIKE ZVTLS_SAP-PAEDT,&lt;/P&gt;&lt;P&gt;       LOEKZ LIKE ZVTLS_SAP-LOEKZ,&lt;/P&gt;&lt;P&gt;       END OF T_TABLE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA : BEGIN OF T_MESSAGE OCCURS 0,&lt;/P&gt;&lt;P&gt;       MSGTY,&lt;/P&gt;&lt;P&gt;       MSGID(2),&lt;/P&gt;&lt;P&gt;       MSGNO(3),&lt;/P&gt;&lt;P&gt;       MSGTX(100),&lt;/P&gt;&lt;P&gt;       PO LIKE ZVTLS_SAP-POVTLS,&lt;/P&gt;&lt;P&gt;       END OF T_MESSAGE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA : BEGIN OF t_bapi_poheader OCCURS 0.&lt;/P&gt;&lt;P&gt;        INCLUDE STRUCTURE bapimepoheader.&lt;/P&gt;&lt;P&gt;DATA : END OF t_bapi_poheader.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA : BEGIN OF t_bapi_poheaderx OCCURS 0.&lt;/P&gt;&lt;P&gt;        INCLUDE STRUCTURE bapimepoheaderx.&lt;/P&gt;&lt;P&gt;DATA : END OF t_bapi_poheaderx.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA : BEGIN OF t_bapi_poitem OCCURS 0.&lt;/P&gt;&lt;P&gt;        INCLUDE STRUCTURE bapimepoitem.&lt;/P&gt;&lt;P&gt;DATA : END OF t_bapi_poitem.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA : BEGIN OF t_bapi_poitemx OCCURS 0.&lt;/P&gt;&lt;P&gt;        INCLUDE STRUCTURE bapimepoitemx.&lt;/P&gt;&lt;P&gt;DATA : END OF t_bapi_poitemx.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA : BEGIN OF t_bapi_poaccount OCCURS 0.&lt;/P&gt;&lt;P&gt;        INCLUDE STRUCTURE bapimepoaccount.&lt;/P&gt;&lt;P&gt;DATA : END OF t_bapi_poaccount.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA : BEGIN OF t_bapi_poaccountx OCCURS 0.&lt;/P&gt;&lt;P&gt;        INCLUDE STRUCTURE bapimepoaccountx.&lt;/P&gt;&lt;P&gt;DATA : END OF t_bapi_poaccountx.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA : BEGIN OF t_bapireturn OCCURS 0.&lt;/P&gt;&lt;P&gt;        INCLUDE STRUCTURE bapiret2.&lt;/P&gt;&lt;P&gt;DATA : END OF t_bapireturn.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA : BEGIN OF t_bapi_itemtext OCCURS 0.&lt;/P&gt;&lt;P&gt;         INCLUDE STRUCTURE bapimepotext.&lt;/P&gt;&lt;P&gt;DATA : END OF t_bapi_itemtext.&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;                  V A R I A B L E S&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*=====================================================================&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA: w_success(6)  TYPE n,&lt;/P&gt;&lt;P&gt;      w_bklas like t023-bklas,&lt;/P&gt;&lt;P&gt;      w_curryear(4),&lt;/P&gt;&lt;P&gt;      w_begda like sy-datum,&lt;/P&gt;&lt;P&gt;      w_endda like sy-datum,&lt;/P&gt;&lt;P&gt;      w_begyr(4),&lt;/P&gt;&lt;P&gt;      w_endyr(4),&lt;/P&gt;&lt;P&gt;      w_currmon(2),&lt;/P&gt;&lt;P&gt;      w_assetclass like ankt-anlkl,&lt;/P&gt;&lt;P&gt;      w_price type p,&lt;/P&gt;&lt;P&gt;      w_recordsap type i.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA:  w_filepath TYPE rlgrap-filename,&lt;/P&gt;&lt;P&gt;       w_rc TYPE sy-subrc,&lt;/P&gt;&lt;P&gt;       w_sscrfields_ucomm1   TYPE sscrfields-ucomm,&lt;/P&gt;&lt;P&gt;       w_file1 TYPE string,&lt;/P&gt;&lt;P&gt;       w_file2 TYPE FILENAME-FILEINTERN.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA : INDEX TYPE SY-TABIX.&lt;/P&gt;&lt;P&gt;*=====================================================================&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                  C O N S T A N T S&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*=====================================================================&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CONSTANTS: c_x              TYPE  c         VALUE 'X',&lt;/P&gt;&lt;P&gt;           c_hyp            TYPE  c         VALUE '-',&lt;/P&gt;&lt;P&gt;           c_err            TYPE  bdc_mart  VALUE 'E',&lt;/P&gt;&lt;P&gt;           c_sqno           TYPE  dzekkn    VALUE '00',&lt;/P&gt;&lt;P&gt;           c_comp(4)        TYPE  c         VALUE '2000',&lt;/P&gt;&lt;P&gt;           c_doctyp(3)      TYPE  c         VALUE 'LRC',&lt;/P&gt;&lt;P&gt;           c_purorg(4)      TYPE  c         VALUE '1000',&lt;/P&gt;&lt;P&gt;           c_purgrp(3)      TYPE  c         VALUE '001',&lt;/P&gt;&lt;P&gt;           c_plant(4)       TYPE  c         VALUE '1000',&lt;/P&gt;&lt;P&gt;           c_unit(2)        TYPE  c         VALUE 'EA',&lt;/P&gt;&lt;P&gt;           c_a(1)           TYPE  c         VALUE 'A',&lt;/P&gt;&lt;P&gt;           c_k(1)           TYPE  c         VALUE 'K',&lt;/P&gt;&lt;P&gt;           c_begda(2)       TYPE  c         VALUE '01',&lt;/P&gt;&lt;P&gt;           c_endda(2)       TYPE  c         VALUE '31',&lt;/P&gt;&lt;P&gt;           c_begmon(2)      TYPE  c         VALUE '04',&lt;/P&gt;&lt;P&gt;           c_endmon(2)      TYPE  c         VALUE '03',&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;           c_bapimepoheaderx   TYPE x030l-tabname&lt;/P&gt;&lt;P&gt;                               VALUE 'bapimepoheaderx',&lt;/P&gt;&lt;P&gt;           c_bapimepoitem      TYPE  x030l-tabname&lt;/P&gt;&lt;P&gt;                               VALUE 'bapimepoitem',&lt;/P&gt;&lt;P&gt;           c_bapimepoaccount   TYPE  x030l-tabname&lt;/P&gt;&lt;P&gt;                               VALUE 'bapimepoaccount',&lt;/P&gt;&lt;P&gt;           c_t_bapi_poheader(15)        TYPE c&lt;/P&gt;&lt;P&gt;                                        VALUE 't_bapi_poheader',&lt;/P&gt;&lt;P&gt;           c_t_bapi_poitem(13)          TYPE c&lt;/P&gt;&lt;P&gt;                                        VALUE 't_bapi_poitem',&lt;/P&gt;&lt;P&gt;           c_t_bapi_poitemx(14)         TYPE c&lt;/P&gt;&lt;P&gt;                                        VALUE 't_bapi_poitemx',&lt;/P&gt;&lt;P&gt;           c_t_bapi_poaccount(16)       TYPE c&lt;/P&gt;&lt;P&gt;                                        VALUE 't_bapi_poaccount',&lt;/P&gt;&lt;P&gt;           c_t_bapi_poaccountx(17)      TYPE c&lt;/P&gt;&lt;P&gt;                                        VALUE 't_bapi_poaccountx',&lt;/P&gt;&lt;P&gt;           c_t_bapi_poheaderx(16)       TYPE c&lt;/P&gt;&lt;P&gt;                                        VALUE 't_bapi_poheaderx'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CONSTANTS:  c_slash(1)            TYPE c VALUE '/',&lt;/P&gt;&lt;P&gt;            c_hash(1)             TYPE c VALUE '#',&lt;/P&gt;&lt;P&gt;            c_pipe                TYPE c VALUE '|',&lt;/P&gt;&lt;P&gt;            c_1                   TYPE i VALUE 1,&lt;/P&gt;&lt;P&gt;            c_zero                TYPE n VALUE '0',&lt;/P&gt;&lt;P&gt;            c_rg1(3)              TYPE c VALUE 'rg1',&lt;/P&gt;&lt;P&gt;            c_gr3(3)              TYPE c VALUE 'GR3',&lt;/P&gt;&lt;P&gt;            c_gr2(3)              TYPE c VALUE 'GR2',&lt;/P&gt;&lt;P&gt;            c_e(1)                TYPE c VALUE 'E',&lt;/P&gt;&lt;P&gt;            c_filepath(8)         TYPE c VALUE '/interf/',&lt;/P&gt;&lt;P&gt;            c_filetype(10)        TYPE c VALUE 'ASC',&lt;/P&gt;&lt;P&gt;            c_id(3)               TYPE C VALUE 'F01'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CLASS cl_abap_char_utilities DEFINITION LOAD.&lt;/P&gt;&lt;P&gt;CONSTANTS:con_tab  TYPE c VALUE cl_abap_char_utilities=&amp;gt;horizontal_tab.&lt;/P&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;                       SELECTION SCREEN&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*======================================================================&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN BEGIN OF BLOCK inputpath WITH FRAME TITLE text-001.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN : BEGIN OF BLOCK blk2 WITH FRAME TITLE text-002.&lt;/P&gt;&lt;P&gt;PARAMETERS : p_fore RADIOBUTTON GROUP rg1&lt;/P&gt;&lt;P&gt;                    USER-COMMAND pc,&lt;/P&gt;&lt;P&gt;             p_back RADIOBUTTON GROUP rg1 DEFAULT 'X'.&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN : END OF BLOCK blk2.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN : BEGIN OF BLOCK blk1 WITH FRAME TITLE text-003.&lt;/P&gt;&lt;P&gt;PARAMETERS :  p_file1 LIKE rlgrap-filename OBLIGATORY MODIF ID gr2.&lt;/P&gt;&lt;P&gt;PARAMETERS :  p_afile1 LIKE rlgrap-filename OBLIGATORY MODIF ID gr3.&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN : END OF BLOCK blk1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN END OF BLOCK inputpath.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*C-- Initialization Event&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;INITIALIZATION.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CLEAR w_filepath.&lt;/P&gt;&lt;P&gt;  CONCATENATE c_filepath sy-sysid c_slash sy-mandt c_slash INTO&lt;/P&gt;&lt;P&gt;  w_filepath.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CONDENSE w_filepath NO-GAPS.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  p_file1 = text-008.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  p_afile1 = text-009.&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;                       SELECTION SCREEN EVENTS&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*======================================================================&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*C-- Selection Screen Output&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;AT SELECTION-SCREEN OUTPUT.&lt;/P&gt;&lt;P&gt;  IF p_fore = c_x.&lt;/P&gt;&lt;P&gt;    w_sscrfields_ucomm1 = space.&lt;/P&gt;&lt;P&gt;  ELSE.&lt;/P&gt;&lt;P&gt;    w_sscrfields_ucomm1 = c_rg1.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  LOOP AT SCREEN.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*C--Modify selection screen if presentation&lt;/P&gt;&lt;P&gt;*C--or application server radio button is choose&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    IF w_sscrfields_ucomm1 = space.&lt;/P&gt;&lt;P&gt;      IF screen-group1 = c_gr3.&lt;/P&gt;&lt;P&gt;        screen-active = c_zero.&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;P&gt;    ELSE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      IF screen-group1 = c_gr2.&lt;/P&gt;&lt;P&gt;        screen-active = c_zero.&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    if screen-name = 'P_AFILE1'.&lt;/P&gt;&lt;P&gt;      screen-input = 0.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;    MODIFY SCREEN.&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;*C-- Selection Screen VALUE-REQUEST FOR File path&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_file1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  IF p_fore EQ c_x.&lt;/P&gt;&lt;P&gt;&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;P&gt;      IMPORTING&lt;/P&gt;&lt;P&gt;        file_name     = p_file1.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*C-- At Start of the Selection Process&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;START-OF-SELECTION.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*C-- Load the contents of the input file into the internal table&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  IF p_fore EQ c_x.&lt;/P&gt;&lt;P&gt;    w_file1 = p_file1.&lt;/P&gt;&lt;P&gt;  ELSE.&lt;/P&gt;&lt;P&gt;    w_file2 = p_afile1.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  IF p_fore EQ c_x. " Presentaion Server&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*C--Validations for the input files&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    PERFORM validate_pre_file USING p_file1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*C-- Load the contents of the input file into the internal table&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    PERFORM upload_file TABLES t_flatfile_vtls&lt;/P&gt;&lt;P&gt;                        USING w_file1&lt;/P&gt;&lt;P&gt;                        CHANGING w_rc.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    IF w_rc &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;P&gt;      MESSAGE s006 DISPLAY LIKE c_e.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  ELSE. " Application Server&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*C--Validations for the input files&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    PERFORM validate_app_file USING  w_file2.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*C-- Load the contents of the input file into the internal table&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    PERFORM upload_file_app TABLES t_flatfile_vtls&lt;/P&gt;&lt;P&gt;                            USING w_file2&lt;/P&gt;&lt;P&gt;                            CHANGING w_rc.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  loop at t_flatfile_vtls.&lt;/P&gt;&lt;P&gt;   replace all occurrences of '"' in t_flatfile_vtls-text with ''.&lt;/P&gt;&lt;P&gt;    replace all occurrences of '"' in t_flatfile_vtls-matkl with ''.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  write &lt;span class="lia-unicode-emoji" title=":confused_face:"&gt;😕&lt;/span&gt; t_flatfile_vtls-text,t_flatfile_vtls-matkl,&lt;/P&gt;&lt;P&gt;  t_flatfile_vtls-ebeln.&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;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                       GETTING DATA IN INTERNAL TABLES&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*======================================================================&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  PERFORM INIT_TABLES.&lt;/P&gt;&lt;P&gt;  PERFORM POPULATE_TABLES.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  LOOP AT t_po_header.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    PERFORM move_data_to_bapi_structures.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    PERFORM call_bapi.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  ENDLOOP.    " AT t_po_header&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  WRITE: / 'No.of POs successfully created:', w_success.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  PERFORM STORE_MESSAGES TABLES T_MESSAGE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  PERFORM free_internal_tables.&lt;/P&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;                       PRINT DETAILS of Presentation Server&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*======================================================================&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*C--   PRINT OUTPUT&lt;/P&gt;&lt;P&gt;  IF p_fore EQ c_x.&lt;/P&gt;&lt;P&gt;    PERFORM write_summary_data.&lt;/P&gt;&lt;P&gt;  ENDIF.&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;                       PRINT DETAILS of Application Server&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;P&gt;*C-- Write to application server if needed&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  IF p_back = c_x.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*C-- Write Summary data to file&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   PERFORM  write_summary_data_file.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*C-- Write Header discrepancy data to file&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;----&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  validate_pre_file&lt;/P&gt;&lt;P&gt;*&amp;amp;----&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;    Routine to validate presentation server file path.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&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;     --&amp;gt;fp_name  text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;FORM validate_pre_file USING fp_name TYPE rlgrap-filename.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  DATA : l_result,&lt;/P&gt;&lt;P&gt;         l_filename TYPE string.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  l_filename = fp_name.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CLEAR l_result.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CALL METHOD cl_gui_frontend_services=&amp;gt;file_exist&lt;/P&gt;&lt;P&gt;    EXPORTING&lt;/P&gt;&lt;P&gt;      file                 = l_filename&lt;/P&gt;&lt;P&gt;    RECEIVING&lt;/P&gt;&lt;P&gt;      result               = l_result&lt;/P&gt;&lt;P&gt;    EXCEPTIONS&lt;/P&gt;&lt;P&gt;      cntl_error           = 1&lt;/P&gt;&lt;P&gt;      error_no_gui         = 2&lt;/P&gt;&lt;P&gt;      wrong_parameter      = 3&lt;/P&gt;&lt;P&gt;      not_supported_by_gui = 4&lt;/P&gt;&lt;P&gt;      OTHERS               = 5.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  IF sy-subrc &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;P&gt;    MESSAGE s007 DISPLAY LIKE c_e.&lt;/P&gt;&lt;P&gt;    LEAVE LIST-PROCESSING.&lt;/P&gt;&lt;P&gt;  ELSEIF l_result IS INITIAL.&lt;/P&gt;&lt;P&gt;    MESSAGE s008 DISPLAY LIKE c_e.&lt;/P&gt;&lt;P&gt;    LEAVE LIST-PROCESSING.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " validate_pre_file_hdr&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;----&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  validate_app_file&lt;/P&gt;&lt;P&gt;*&amp;amp;----&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 - Checks if the path entered and filename is correct&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;FORM validate_app_file USING  fp_file  TYPE FILENAME-FILEINTERN.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  data : l_fname(60).&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CALL FUNCTION 'FILE_GET_NAME'&lt;/P&gt;&lt;P&gt;    EXPORTING&lt;/P&gt;&lt;P&gt;      LOGICAL_FILENAME = FP_FILE&lt;/P&gt;&lt;P&gt;      OPERATING_SYSTEM = SY-OPSYS&lt;/P&gt;&lt;P&gt;    IMPORTING&lt;/P&gt;&lt;P&gt;      FILE_NAME        = L_FNAME&lt;/P&gt;&lt;P&gt;    EXCEPTIONS&lt;/P&gt;&lt;P&gt;      FILE_NOT_FOUND   = 1&lt;/P&gt;&lt;P&gt;      OTHERS           = 2.&lt;/P&gt;&lt;P&gt;  IF SY-SUBRC = '0'.&lt;/P&gt;&lt;P&gt;    OPEN DATASET  L_FNAME FOR INPUT IN TEXT MODE ENCODING DEFAULT.&lt;/P&gt;&lt;P&gt;    IF sy-subrc NE 0.&lt;/P&gt;&lt;P&gt;      MESSAGE s007 DISPLAY LIKE c_e.&lt;/P&gt;&lt;P&gt;    ELSE.&lt;/P&gt;&lt;P&gt;      CLOSE DATASET l_fname.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " validate_app_file&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;----&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  upload_file&lt;/P&gt;&lt;P&gt;*&amp;amp;----&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;      Routine to upload data from file to tables.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&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;     --&amp;gt;P_fp_flatfile&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     --&amp;gt;P_fp_file&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     &amp;lt;--P_fp_rc&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM  upload_file TABLES   fp_flatfile&lt;/P&gt;&lt;P&gt;                  USING    fp_file TYPE string&lt;/P&gt;&lt;P&gt;                  CHANGING fp_rc TYPE sy-subrc.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  IF fp_flatfile[] IS INITIAL.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    CALL FUNCTION 'GUI_UPLOAD'&lt;/P&gt;&lt;P&gt;      EXPORTING&lt;/P&gt;&lt;P&gt;        filename                = fp_file&lt;/P&gt;&lt;P&gt;        filetype                = c_filetype&lt;/P&gt;&lt;P&gt;        has_field_separator     = c_x&lt;/P&gt;&lt;P&gt;      TABLES&lt;/P&gt;&lt;P&gt;        data_tab                = fp_flatfile&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;&lt;/P&gt;&lt;P&gt;    MOVE sy-subrc TO fp_rc.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.  " upload_file&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  write_summary_data_hdr&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;      Write Summary of Data&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 write_summary_data.&lt;/P&gt;&lt;P&gt;*C-- Local Declarations&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  DATA: l_num_vtls TYPE i,&lt;/P&gt;&lt;P&gt;        l_num_sap_loaded TYPE i,&lt;/P&gt;&lt;P&gt;        l_num_not_sap_loaded TYPE i.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  l_num_sap_loaded = w_recordsap.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  WRITE : /1(63) sy-uline .&lt;/P&gt;&lt;P&gt;  FORMAT COLOR 3.&lt;/P&gt;&lt;P&gt;  WRITE :/1(1) c_pipe,&lt;/P&gt;&lt;P&gt;          7(40)'VTLS to SAP - PO Transfer'(004) ,&lt;/P&gt;&lt;P&gt;          63(1) c_pipe.&lt;/P&gt;&lt;P&gt;  FORMAT COLOR OFF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  DESCRIBE TABLE t_flatfile_vtls LINES l_num_vtls.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  WRITE : /1(63) sy-uline .&lt;/P&gt;&lt;P&gt;  WRITE :/1(1) c_pipe,&lt;/P&gt;&lt;P&gt;          7(40)'No.of PO Records from VTLS:'(005) ,&lt;/P&gt;&lt;P&gt;          50(1) c_pipe,&lt;/P&gt;&lt;P&gt;          52(10) l_num_vtls,&lt;/P&gt;&lt;P&gt;          63(1) c_pipe.&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; DESCRIBE TABLE t_sap LINES l_num_sap_loaded.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  WRITE :/1(1) c_pipe,&lt;/P&gt;&lt;P&gt;          7(40)'No.of records uploaded in SAP:'(006) ,&lt;/P&gt;&lt;P&gt;          50(1) c_pipe,&lt;/P&gt;&lt;P&gt;          52(10) l_num_sap_loaded ,&lt;/P&gt;&lt;P&gt;          63(1) c_pipe.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  l_num_not_sap_loaded = l_num_vtls - l_num_sap_loaded.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  WRITE :/1(1) c_pipe,&lt;/P&gt;&lt;P&gt;          7(40)'No.of records not loaded in SAP:'(007) ,&lt;/P&gt;&lt;P&gt;          50(1) c_pipe,&lt;/P&gt;&lt;P&gt;          52(10) l_num_not_sap_loaded ,&lt;/P&gt;&lt;P&gt;          63(1) c_pipe.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  WRITE : /1(63) sy-uline.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;endform.                    "write_summary_data&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  POPULATE_TABLES&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 POPULATE_TABLES.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  W_CURRYEAR = SY-DATUM(4).&lt;/P&gt;&lt;P&gt;  W_CURRMON = SY-DATUM+4(2).&lt;/P&gt;&lt;P&gt;  IF W_CURRMON GE '04'.&lt;/P&gt;&lt;P&gt;    W_BEGYR = W_CURRYEAR.&lt;/P&gt;&lt;P&gt;    W_ENDYR = W_CURRYEAR + 1.&lt;/P&gt;&lt;P&gt;  ELSE.&lt;/P&gt;&lt;P&gt;    W_BEGYR = W_CURRYEAR - 1.&lt;/P&gt;&lt;P&gt;    W_ENDYR = W_CURRYEAR.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CONCATENATE W_BEGYR C_BEGMON C_BEGDA INTO W_BEGDA.&lt;/P&gt;&lt;P&gt;  CONCATENATE W_ENDYR C_ENDMON C_ENDDA INTO W_ENDDA.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*WRITE &lt;span class="lia-unicode-emoji" title=":confused_face:"&gt;😕&lt;/span&gt; W_BEGDA,W_ENDDA.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  SORT T_FLATFILE_VTLS BY EBELN EBELP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  LOOP AT T_FLATFILE_VTLS.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*WRITE &lt;span class="lia-unicode-emoji" title=":confused_face:"&gt;😕&lt;/span&gt; T_FLATFILE_VTLS-EBELN,T_FLATFILE_VTLS-EBELP,&lt;/P&gt;&lt;P&gt;*T_FLATFILE_VTLS-MATKL.&lt;/P&gt;&lt;P&gt;    AT NEW EBELN.&lt;/P&gt;&lt;P&gt;      T_PO_HEADER-PO = T_FLATFILE_VTLS-EBELN.&lt;/P&gt;&lt;P&gt;      T_PO_HEADER-VENDOR = T_FLATFILE_VTLS-LIFNR.&lt;/P&gt;&lt;P&gt;      APPEND T_PO_HEADER.&lt;/P&gt;&lt;P&gt;      CLEAR T_PO_HEADER.&lt;/P&gt;&lt;P&gt;    ENDAT.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    T_PO_ITEM-PO = T_FLATFILE_VTLS-EBELN.&lt;/P&gt;&lt;P&gt;    T_PO_ITEM-ITEM = T_FLATFILE_VTLS-EBELP.&lt;/P&gt;&lt;P&gt;    T_PO_ITEM-TEXT = T_FLATFILE_VTLS-Text(132).&lt;/P&gt;&lt;P&gt;    W_PRICE = T_FLATFILE_VTLS-NETPR.&lt;/P&gt;&lt;P&gt;    T_PO_ITEM-PRICE = W_PRICE.&lt;/P&gt;&lt;P&gt;    T_PO_ITEM-MENGE = T_FLATFILE_VTLS-MENGE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    SELECT SINGLE MATKL&lt;/P&gt;&lt;P&gt;into T_PO_ITEM-MATKL&lt;/P&gt;&lt;P&gt;FROM T023T&lt;/P&gt;&lt;P&gt;WHERE WGBEZ = T_FLATFILE_VTLS-MATKL.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    CASE T_FLATFILE_VTLS-MATKL.&lt;/P&gt;&lt;P&gt;      WHEN 'Monograph'.&lt;/P&gt;&lt;P&gt;        T_PO_ITEM-KNTTP = C_A.&lt;/P&gt;&lt;P&gt;        SELECT SINGLE ANLKL&lt;/P&gt;&lt;P&gt;        INTO W_ASSETCLASS&lt;/P&gt;&lt;P&gt;        FROM ANKT&lt;/P&gt;&lt;P&gt;        WHERE TXK20 = 'Library Books'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        SELECT SINGLE ANLN1&lt;/P&gt;&lt;P&gt;        INTO T_PO_ITEM-ASSET&lt;/P&gt;&lt;P&gt;        FROM ANLA&lt;/P&gt;&lt;P&gt;        WHERE ANLKL = W_ASSETCLASS&lt;/P&gt;&lt;P&gt;        AND ERDAT BETWEEN W_BEGDA AND W_ENDDA.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      WHEN 'Serials' or 'CD'.&lt;/P&gt;&lt;P&gt;        T_PO_ITEM-KNTTP = C_K.&lt;/P&gt;&lt;P&gt;        SELECT SINGLE BKLAS&lt;/P&gt;&lt;P&gt;        INTO W_BKLAS&lt;/P&gt;&lt;P&gt;        FROM T023&lt;/P&gt;&lt;P&gt;        WHERE MATKL = T_PO_ITEM-MATKL.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        SELECT SINGLE KONTS&lt;/P&gt;&lt;P&gt;        INTO T_PO_ITEM-GL_ACC&lt;/P&gt;&lt;P&gt;        FROM T030&lt;/P&gt;&lt;P&gt;        WHERE BKLAS = W_BKLAS.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        SELECT SINGLE KOSTL&lt;/P&gt;&lt;P&gt;        INTO T_PO_ITEM-COST&lt;/P&gt;&lt;P&gt;        FROM TKA3A&lt;/P&gt;&lt;P&gt;        WHERE KSTAR = T_PO_ITEM-GL_ACC&lt;/P&gt;&lt;P&gt;        AND BUKRS = C_COMP.&lt;/P&gt;&lt;P&gt;*WHEN OTHERS.&lt;/P&gt;&lt;P&gt;*MESSAGE&lt;/P&gt;&lt;P&gt;    ENDCASE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    APPEND T_PO_ITEM.&lt;/P&gt;&lt;P&gt;    CLEAR T_PO_ITEM.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; LOOP AT T_PO_HEADER.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; WRITE:/ T_PO_HEADER-PO,T_PO_HEADER-VENDOR.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; ENDLOOP.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; LOOP AT T_PO_ITEM.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; WRITE:/ T_PO_ITEM-PO,T_PO_ITEM-ITEM,T_PO_ITEM-TEXT,&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; T_PO_ITEM-PRICE,T_PO_ITEM-KNTTP.&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;&lt;/P&gt;&lt;P&gt;ENDFORM.                    "POPULATE_TABLES&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;----&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  init_tables&lt;/P&gt;&lt;P&gt;*&amp;amp;----&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;      This form Routine is used ti initialize all the internal tables&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;FORM INIT_TABLES .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CLEAR : t_bapi_poheader,&lt;/P&gt;&lt;P&gt;          t_bapi_poheaderx,&lt;/P&gt;&lt;P&gt;          t_bapi_poitem,&lt;/P&gt;&lt;P&gt;          t_bapi_poitemx,&lt;/P&gt;&lt;P&gt;          t_bapi_poaccount,&lt;/P&gt;&lt;P&gt;          t_bapi_poaccountx,&lt;/P&gt;&lt;P&gt;          w_success.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  REFRESH: t_bapi_poheader,&lt;/P&gt;&lt;P&gt;           t_bapi_poheaderx,&lt;/P&gt;&lt;P&gt;           t_bapi_poitem,&lt;/P&gt;&lt;P&gt;           t_bapi_poitemx,&lt;/P&gt;&lt;P&gt;           t_bapi_poaccount,&lt;/P&gt;&lt;P&gt;           t_bapi_poaccountx.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " init_tables&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;----&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  move_data_to_bapi_structures&lt;/P&gt;&lt;P&gt;*&amp;amp;----&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;     This form routine is used to move all the data records to Bapi&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     structures&lt;/P&gt;&lt;/LI&gt;&lt;/UL&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;FORM move_data_to_bapi_structures.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*C-- Header Data&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  PERFORM move_data_to_poheader.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*C-- Header Data check&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CLEAR t_bapi_poheaderx.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  PERFORM fill_check_structure USING c_bapimepoheaderx&lt;/P&gt;&lt;P&gt;                                     c_t_bapi_poheader&lt;/P&gt;&lt;P&gt;                                     c_t_bapi_poheaderx&lt;/P&gt;&lt;P&gt;                                     c_x.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*C-- Force item renumbering Off&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; t_bapi_poheaderx-item_intvl = c_x.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  t_bapi_poheaderx-item_intvl = ''.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  PERFORM move_data_to_poitem.&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.                    " move_data_to_bapi_structures&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;----&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  fill_check_structure&lt;/P&gt;&lt;P&gt;*&amp;amp;----&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;      This form Routine will check whether the specified structure&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      exist/active&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM fill_check_structure  USING    fp_tabname TYPE any&lt;/P&gt;&lt;P&gt;                                    fp_orgtabname TYPE any&lt;/P&gt;&lt;P&gt;                                    fp_chktabname TYPE any&lt;/P&gt;&lt;P&gt;                                    fp_check TYPE c.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  FIELD-SYMBOLS : &amp;lt;fs_chk&amp;gt;, &amp;lt;fs_org&amp;gt;.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  DATA:    l_char1(61)  TYPE c,&lt;/P&gt;&lt;P&gt;           l_char2(61)  TYPE c.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  DATA:    BEGIN OF tl_nametab OCCURS 60.&lt;/P&gt;&lt;P&gt;          INCLUDE STRUCTURE x031l.&lt;/P&gt;&lt;P&gt;  DATA:    END OF tl_nametab.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  REFRESH tl_nametab.&lt;/P&gt;&lt;P&gt;  CALL FUNCTION 'RFC_GET_NAMETAB'&lt;/P&gt;&lt;P&gt;    EXPORTING&lt;/P&gt;&lt;P&gt;      tabname          = fp_tabname&lt;/P&gt;&lt;P&gt;    TABLES&lt;/P&gt;&lt;P&gt;      nametab          = tl_nametab&lt;/P&gt;&lt;P&gt;    EXCEPTIONS&lt;/P&gt;&lt;P&gt;      table_not_active = 1&lt;/P&gt;&lt;P&gt;      OTHERS           = 2.&lt;/P&gt;&lt;P&gt;  IF sy-subrc &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;P&gt;    CLEAR tl_nametab.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  LOOP AT tl_nametab.&lt;/P&gt;&lt;P&gt;    CLEAR: l_char1, l_char2.&lt;/P&gt;&lt;P&gt;    CONCATENATE fp_chktabname c_hyp tl_nametab-fieldname INTO l_char1.&lt;/P&gt;&lt;P&gt;    ASSIGN (l_char1) TO &amp;lt;fs_chk&amp;gt;.&lt;/P&gt;&lt;P&gt;    CONCATENATE fp_orgtabname c_hyp tl_nametab-fieldname INTO l_char2.&lt;/P&gt;&lt;P&gt;    ASSIGN (l_char2) TO &amp;lt;fs_org&amp;gt;.&lt;/P&gt;&lt;P&gt;    IF &amp;lt;fs_org&amp;gt; IS NOT INITIAL.&lt;/P&gt;&lt;P&gt;      &amp;lt;fs_chk&amp;gt; = fp_check.&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;ENDFORM.                    " fill_check_structure&lt;/P&gt;&lt;P&gt;*&amp;amp;----&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  move_data_to_poheader&lt;/P&gt;&lt;P&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;      This form Routine is used to populate all the header details&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;       into bapi structure&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM move_data_to_poheader .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CLEAR t_bapi_poheader.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;--- t_bapi_poheader-COMP_CODE&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  t_bapi_poheader-comp_code = C_COMP.&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;--- t_bapi_poheader-DOC_TYPE&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  t_bapi_poheader-doc_type = C_DOCTYP.&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;--- t_bapi_poheader-CREATED_BY&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; IF NOT t_po_header-created_by IS INITIAL.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   t_bapi_poheader-created_by = t_po_header-created_by.&lt;/P&gt;&lt;/LI&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;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;--- t_bapi_poheader-VENDOR&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  IF NOT t_po_header-vendor IS INITIAL.&lt;/P&gt;&lt;P&gt;    CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'&lt;/P&gt;&lt;P&gt;      EXPORTING&lt;/P&gt;&lt;P&gt;        input  = t_po_header-vendor&lt;/P&gt;&lt;P&gt;      IMPORTING&lt;/P&gt;&lt;P&gt;        output = t_bapi_poheader-vendor.&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;--- t_bapi_poheader-LANGU&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  t_bapi_poheader-langu = sy-langu.&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;--- t_bapi_poheader-PURCH_ORG&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  t_bapi_poheader-purch_org = C_PURORG.&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;--- t_bapi_poheader-PUR_GROUP&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  t_bapi_poheader-pur_group = C_PURGRP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  t_bapi_poheader-item_intvl = '10'.&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;ENDFORM.                    " move_data_to_poheader&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;----&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  move_data_to_poitem&lt;/P&gt;&lt;P&gt;*&amp;amp;----&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;      This form Routine is used to populate all the item level data&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;       into bapi structure&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM move_data_to_poitem .&lt;/P&gt;&lt;P&gt;  REFRESH : t_bapi_poitem,&lt;/P&gt;&lt;P&gt;            t_bapi_poitemx,&lt;/P&gt;&lt;P&gt;            t_bapi_poaccount,&lt;/P&gt;&lt;P&gt;            t_bapi_poaccountx,&lt;/P&gt;&lt;P&gt;            t_bapi_itemtext.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  LOOP AT t_po_item&lt;/P&gt;&lt;P&gt;  WHERE po = t_po_header-po.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    CLEAR t_bapi_poitem.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    IF NOT T_PO_ITEM-KNTTP IS INITIAL.&lt;/P&gt;&lt;P&gt;      T_BAPI_POITEM-ACCTASSCAT = T_PO_ITEM-KNTTP.&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;--- t_bapi_poitem-PO_ITEM&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    IF NOT t_po_item-item IS INITIAL.&lt;/P&gt;&lt;P&gt;      t_bapi_poitem-po_item = t_po_item-item.&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;--- t_bapi_poitem-SHORT_TEXT&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   IF NOT t_po_item-text IS INITIAL.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     t_bapi_poitem-short_text = t_po_item-text.&lt;/P&gt;&lt;/LI&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;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;--- t_bapi_poitem-PLANT&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   IF NOT t_po_item-plant IS INITIAL.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    t_bapi_poitem-plant = c_plant.&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;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;--- t_bapi_poitem-MATL_GROUP&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    IF NOT t_po_item-matkl IS INITIAL.&lt;/P&gt;&lt;P&gt;      t_bapi_poitem-matl_group = t_po_item-matkl.&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;--- t_bapi_poitem-QUANTITY&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    IF NOT t_po_item-menge IS INITIAL.&lt;/P&gt;&lt;P&gt;      t_bapi_poitem-quantity = t_po_item-menge.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Caution: Source field is longer than target field&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;--- t_bapi_poitem-PO_UNIT&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   IF NOT t_po_item-po_unit IS INITIAL.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    t_bapi_poitem-po_unit = c_unit.&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;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;--- t_bapi_poitem-NET_PRICE&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    IF NOT t_po_item-price IS INITIAL.&lt;/P&gt;&lt;P&gt;      t_bapi_poitem-net_price = t_po_item-price.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Caution: Source field is longer than target field&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;P&gt;&lt;/P&gt;&lt;P&gt;*C-- Item Data check&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    CLEAR t_bapi_poitemx.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    PERFORM fill_check_structure USING c_bapimepoitem&lt;/P&gt;&lt;P&gt;                                       c_t_bapi_poitem&lt;/P&gt;&lt;P&gt;                                       c_t_bapi_poitemx&lt;/P&gt;&lt;P&gt;                                       c_x.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*C-- Assign Item number to check structure&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    t_bapi_poitemx-po_item = t_po_item-item.&lt;/P&gt;&lt;P&gt;    t_bapi_poitemx-po_itemx = c_x.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    APPEND t_bapi_poitem.&lt;/P&gt;&lt;P&gt;    APPEND t_bapi_poitemx.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*C-- Account Assisgnment.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    CLEAR t_bapi_poaccount.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    t_bapi_poaccount-creat_date = sy-datum.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;UL&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;--- t_bapi_poaccount-PO_ITEM&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;P&gt;    IF NOT t_po_item-item IS INITIAL.&lt;/P&gt;&lt;P&gt;      t_bapi_poaccount-po_item = t_po_item-item.&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;--- t_bapi_poaccount-QUANTITY&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    IF NOT t_po_item-menge IS INITIAL.&lt;/P&gt;&lt;P&gt;      t_bapi_poaccount-quantity = t_po_item-menge.&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;--- t_bapi_poaccount-GL_ACCOUNT&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    IF NOT t_po_item-gl_acc IS INITIAL.&lt;/P&gt;&lt;P&gt;      CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'&lt;/P&gt;&lt;P&gt;        EXPORTING&lt;/P&gt;&lt;P&gt;          input  = t_po_item-gl_acc&lt;/P&gt;&lt;P&gt;        IMPORTING&lt;/P&gt;&lt;P&gt;          output = t_bapi_poaccount-gl_account.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;--- t_bapi_poaccount-COSTCENTER&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    IF NOT t_po_item-cost IS INITIAL.&lt;/P&gt;&lt;P&gt;      CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'&lt;/P&gt;&lt;P&gt;        EXPORTING&lt;/P&gt;&lt;P&gt;          input  = t_po_item-cost&lt;/P&gt;&lt;P&gt;        IMPORTING&lt;/P&gt;&lt;P&gt;          output = t_bapi_poaccount-costcenter.&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;--- t_bapi_poaccount-ASSET_NO&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    IF NOT t_po_item-asset IS INITIAL.&lt;/P&gt;&lt;P&gt;      t_bapi_poaccount-asset_no = t_po_item-asset.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*C-- Account Check&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    CLEAR t_bapi_poaccountx.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    PERFORM fill_check_structure USING c_bapimepoaccount&lt;/P&gt;&lt;P&gt;                                       c_t_bapi_poaccount&lt;/P&gt;&lt;P&gt;                                       c_t_bapi_poaccountx&lt;/P&gt;&lt;P&gt;                                       c_x.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*C-- Assign item number / acct. assgn. number to Account check&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    t_bapi_poaccountx-po_item    =   t_po_item-item.&lt;/P&gt;&lt;P&gt;    t_bapi_poaccountx-serial_no  =   c_sqno.&lt;/P&gt;&lt;P&gt;    t_bapi_poaccountx-po_itemx   =   c_x.&lt;/P&gt;&lt;P&gt;    t_bapi_poaccountx-serial_nox =   c_x.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    APPEND t_bapi_poaccount.&lt;/P&gt;&lt;P&gt;    APPEND t_bapi_poaccountx.&lt;/P&gt;&lt;P&gt;    CLEAR  t_bapi_poaccount.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*C--item long text...&lt;/P&gt;&lt;P&gt;    clear t_bapi_itemtext.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   t_bapi_itemtext-po_number = t_po_header-po.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    t_bapi_itemtext-po_item = t_po_item-item.&lt;/P&gt;&lt;P&gt;    t_bapi_itemtext-text_id = c_id.&lt;/P&gt;&lt;P&gt;    t_bapi_itemtext-text_line = t_po_item-text.&lt;/P&gt;&lt;P&gt;    append t_bapi_itemtext.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  ENDLOOP.    " AT t_poitem&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " move_data_to_poitem&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;----&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  call_bapi&lt;/P&gt;&lt;P&gt;*&amp;amp;----&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;      This form Routine is used to commit the data records&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM call_bapi .&lt;/P&gt;&lt;P&gt;  DATA : l_msgty      TYPE c,&lt;/P&gt;&lt;P&gt;         l_msgid(2)   TYPE c,&lt;/P&gt;&lt;P&gt;         l_msgno(3)   TYPE c,&lt;/P&gt;&lt;P&gt;         l_msgtx(100) TYPE c,&lt;/P&gt;&lt;P&gt;         l_errflag    TYPE c.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CLEAR: t_bapireturn.&lt;/P&gt;&lt;P&gt;  REFRESH: t_bapireturn.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;**C-- End of handling Type of SubC / Serial Nos&lt;/P&gt;&lt;P&gt;&lt;/P&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         = t_bapi_poheader&lt;/P&gt;&lt;P&gt;      poheaderx        = t_bapi_poheaderx&lt;/P&gt;&lt;P&gt;    IMPORTING&lt;/P&gt;&lt;P&gt;      EXPPURCHASEORDER = t_bapi_poheader-po_number&lt;/P&gt;&lt;P&gt;    TABLES&lt;/P&gt;&lt;P&gt;      return           = t_bapireturn&lt;/P&gt;&lt;P&gt;      poitem           = t_bapi_poitem&lt;/P&gt;&lt;P&gt;      poitemx          = t_bapi_poitemx&lt;/P&gt;&lt;P&gt;      poaccount        = t_bapi_poaccount&lt;/P&gt;&lt;P&gt;      poaccountx       = t_bapi_poaccountx&lt;/P&gt;&lt;P&gt;      POTEXTITEM       = t_bapi_itemtext.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  READ TABLE t_bapireturn WITH KEY type = c_err TRANSPORTING NO FIELDS.&lt;/P&gt;&lt;P&gt;  IF sy-subrc NE 0.&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 = c_x.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    refresh t_table.&lt;/P&gt;&lt;P&gt;    loop at t_bapi_poitem.&lt;/P&gt;&lt;P&gt;      clear t_table.&lt;/P&gt;&lt;P&gt;      CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'&lt;/P&gt;&lt;P&gt;        EXPORTING&lt;/P&gt;&lt;P&gt;          input  = t_po_header-po&lt;/P&gt;&lt;P&gt;          IMPORTING&lt;/P&gt;&lt;P&gt;          output = t_table-povtls.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      t_table-posap = t_bapi_poheader-po_number.&lt;/P&gt;&lt;P&gt;      t_table-itemsap = t_bapi_poitem-po_item.&lt;/P&gt;&lt;P&gt;      t_table-aedat = sy-datum.&lt;/P&gt;&lt;P&gt;      t_table-paedt = sy-datum.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      INDEX = INDEX + 1.&lt;/P&gt;&lt;P&gt;      read table t_po_item index INDEX.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'&lt;/P&gt;&lt;P&gt;        EXPORTING&lt;/P&gt;&lt;P&gt;          input  = t_po_item-item&lt;/P&gt;&lt;P&gt;        IMPORTING&lt;/P&gt;&lt;P&gt;          output = t_table-itemvtls.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      append t_table.&lt;/P&gt;&lt;P&gt;      w_recordsap = w_recordsap + 1.&lt;/P&gt;&lt;P&gt;    endloop.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*C--populate ztable with PO details.&lt;/P&gt;&lt;P&gt;    insert zvtls_sap FROM TABLE t_table.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*C-- Write messages&lt;/P&gt;&lt;P&gt;  WRITE: / 'PO Number'(001), t_po_header-po.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CLEAR l_errflag.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  LOOP AT t_bapireturn.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    CLEAR: l_msgty, l_msgid, l_msgno, l_msgtx.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    l_msgty = t_bapireturn-type.&lt;/P&gt;&lt;P&gt;    l_msgid = t_bapireturn-id.&lt;/P&gt;&lt;P&gt;    l_msgno = t_bapireturn-number.&lt;/P&gt;&lt;P&gt;    l_msgtx = t_bapireturn-message.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    WRITE: / l_msgty, l_msgid, l_msgno, l_msgtx.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    t_message-msgty = l_msgty.&lt;/P&gt;&lt;P&gt;    t_message-msgid = l_msgid.&lt;/P&gt;&lt;P&gt;    t_message-msgno = l_msgno.&lt;/P&gt;&lt;P&gt;    t_message-msgtx = l_msgtx.&lt;/P&gt;&lt;P&gt;    t_message-po = t_po_header-po.&lt;/P&gt;&lt;P&gt;    append t_message.&lt;/P&gt;&lt;P&gt;    clear t_message.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    IF l_msgty EQ c_err.&lt;/P&gt;&lt;P&gt;      l_errflag = c_x.&lt;/P&gt;&lt;P&gt;    ENDIF.    " l_msgty EQ 'E'&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt;  ULINE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  IF l_errflag NE c_x.&lt;/P&gt;&lt;P&gt;    w_success = w_success + 1.&lt;/P&gt;&lt;P&gt;  ENDIF.    " l_errflag NE C_X&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " call_bapi&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;----&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  free_internal_tables&lt;/P&gt;&lt;P&gt;*&amp;amp;----&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;      This form routine is to free memory of all the internal tables&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;FORM free_internal_tables .&lt;/P&gt;&lt;P&gt;  FREE:  t_po_header,&lt;/P&gt;&lt;P&gt;           t_po_item,&lt;/P&gt;&lt;P&gt;           t_bapi_poheader,&lt;/P&gt;&lt;P&gt;           t_bapi_poheaderx,&lt;/P&gt;&lt;P&gt;           t_bapi_poitem,&lt;/P&gt;&lt;P&gt;           t_bapi_poitemx,&lt;/P&gt;&lt;P&gt;           t_bapi_poaccount,&lt;/P&gt;&lt;P&gt;           t_bapi_poaccountx.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " free_internal_tables&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  upload_file_app&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;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     --&amp;gt;FP_FLATFILEtext&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     --&amp;gt;FP_FILE    text&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     --&amp;gt;FP_RC      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  upload_file_app TABLES   fp_flatfile&lt;/P&gt;&lt;P&gt;                      USING    fp_file TYPE FILENAME-FILEINTERN&lt;/P&gt;&lt;P&gt;CHANGING fp_rc TYPE sy-subrc.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  DATA: l_string TYPE tedata-data.&lt;/P&gt;&lt;P&gt;  DATA: wa_data_file TYPE tp_flatfile_vtls,&lt;/P&gt;&lt;P&gt;        l_wllength TYPE i,&lt;/P&gt;&lt;P&gt;        FNAME(60).&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CALL FUNCTION 'FILE_GET_NAME'&lt;/P&gt;&lt;P&gt;    EXPORTING&lt;/P&gt;&lt;P&gt;      LOGICAL_FILENAME = FP_FILE&lt;/P&gt;&lt;P&gt;      OPERATING_SYSTEM = SY-OPSYS&lt;/P&gt;&lt;P&gt;    IMPORTING&lt;/P&gt;&lt;P&gt;      FILE_NAME        = FNAME&lt;/P&gt;&lt;P&gt;    EXCEPTIONS&lt;/P&gt;&lt;P&gt;      FILE_NOT_FOUND   = 1&lt;/P&gt;&lt;P&gt;      OTHERS           = 2.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  IF SY-SUBRC = 0.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    OPEN DATASET  FNAME FOR INPUT IN TEXT MODE ENCODING DEFAULT.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    IF sy-subrc NE 0.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;*C-- commented by Bikash&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     MESSAGE s107(yaero_ps) DISPLAY LIKE c_e.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;message e008.&lt;/P&gt;&lt;P&gt;    ELSE.&lt;/P&gt;&lt;P&gt;      DO.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        CLEAR: l_string.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        READ DATASET  FNAME INTO l_string LENGTH l_wllength.&lt;/P&gt;&lt;P&gt;        IF sy-subrc NE 0.&lt;/P&gt;&lt;P&gt;          EXIT.&lt;/P&gt;&lt;P&gt;        ELSE.&lt;/P&gt;&lt;P&gt;          SPLIT l_string AT con_tab INTO   wa_data_file-lifnr&lt;/P&gt;&lt;P&gt;                                           wa_data_file-ebeln&lt;/P&gt;&lt;P&gt;                                           wa_data_file-ebelp&lt;/P&gt;&lt;P&gt;                                           wa_data_file-text&lt;/P&gt;&lt;P&gt;                                           wa_data_file-netpr&lt;/P&gt;&lt;P&gt;                                           wa_data_file-menge&lt;/P&gt;&lt;P&gt;                                           wa_data_file-matkl.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;          APPEND wa_data_file TO fp_flatfile.&lt;/P&gt;&lt;P&gt;        ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      ENDDO.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      CLOSE DATASET  FNAME.&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;&lt;/P&gt;&lt;P&gt;ENDFORM.  " upload_file_app&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  STORE_MESSAGES&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;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     --&amp;gt;FP_MESSAGEStext&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 STORE_MESSAGES TABLES FP_MESSAGES STRUCTURE T_MESSAGE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  DATA: wl_output_data LIKE t_MESSAGE.&lt;/P&gt;&lt;P&gt;  DATA: l_catstr TYPE string.&lt;/P&gt;&lt;P&gt;  DATA: l_fieldvalue TYPE string.&lt;/P&gt;&lt;P&gt;  DATA: l_index TYPE i VALUE 1.&lt;/P&gt;&lt;P&gt;  DATA: L_FNAME(60).&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  FIELD-SYMBOLS &amp;lt;fs&amp;gt;.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CLEAR l_catstr.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CALL FUNCTION 'FILE_GET_NAME'&lt;/P&gt;&lt;P&gt;    EXPORTING&lt;/P&gt;&lt;P&gt;      LOGICAL_FILENAME = '/USR/SAP/VTLS/PO/LOG'&lt;/P&gt;&lt;P&gt;      OPERATING_SYSTEM = SY-OPSYS&lt;/P&gt;&lt;P&gt;    IMPORTING&lt;/P&gt;&lt;P&gt;      FILE_NAME        = L_FNAME&lt;/P&gt;&lt;P&gt;    EXCEPTIONS&lt;/P&gt;&lt;P&gt;      FILE_NOT_FOUND   = 1&lt;/P&gt;&lt;P&gt;      OTHERS           = 2.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  IF SY-SUBRC = '0'.&lt;/P&gt;&lt;P&gt;    IF fp_messages[] IS NOT INITIAL.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      OPEN DATASET L_FNAME FOR OUTPUT IN TEXT MODE ENCODING DEFAULT.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      IF sy-subrc NE 0.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        LEAVE LIST-PROCESSING.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      ELSE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        LOOP AT fp_messages INTO wl_output_data.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;          DO.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;           ASSIGN COMPONENT l_index OF STRUCTURE wl_output_data TO &amp;lt;fs&amp;gt;.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;            IF sy-subrc &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;              EXIT.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;            ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;            MOVE &amp;lt;fs&amp;gt; TO l_fieldvalue.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;            IF l_catstr IS NOT INITIAL.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;              CONCATENATE l_catstr l_fieldvalue INTO l_catstr SEPARATED&lt;/P&gt;&lt;P&gt;              BY con_tab.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;            ELSE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;              MOVE l_fieldvalue TO l_catstr.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;            ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;            l_index = l_index + c_1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;            CLEAR l_fieldvalue.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;            CLEAR &amp;lt;fs&amp;gt;.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;          ENDDO.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;          l_index = c_1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;          TRANSFER l_catstr TO L_FNAME .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;          CLEAR wl_output_data.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;          CLEAR l_catstr.&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;        CLOSE  DATASET L_FNAME.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    "STORE_MESSAGES&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 07 Jul 2006 09:49:01 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/how-to-create-po-using-bapi/m-p/1446238#M211768</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2006-07-07T09:49:01Z</dc:date>
    </item>
  </channel>
</rss>

