<?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: Reg BAPI_MATERIAL_SAVEDATA in Application Development and Automation Discussions</title>
    <link>https://community.sap.com/t5/application-development-and-automation-discussions/reg-bapi-material-savedata/m-p/3004665#M709977</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;did you append the line to the internal table?&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Thu, 25 Oct 2007 13:10:53 GMT</pubDate>
    <dc:creator>Former Member</dc:creator>
    <dc:date>2007-10-25T13:10:53Z</dc:date>
    <item>
      <title>Reg BAPI_MATERIAL_SAVEDATA</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/reg-bapi-material-savedata/m-p/3004663#M709975</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;&lt;/P&gt;&lt;P&gt;  I am using   BAPI_MATERIAL_SAVEDATA to upload data into the sap system.&lt;/P&gt;&lt;P&gt;  I flagged all the required views and required fields.&lt;/P&gt;&lt;P&gt; Fields flagged :  MATHEAD-BASIC_VIEW = 'X'.&lt;/P&gt;&lt;P&gt;                        MATHEAD-MRP_VIEW = 'X'.   MATHEAD LIKE BAPIMATHEAD &lt;/P&gt;&lt;P&gt;          PLANTDATAX-PLANT = 'X'.	      PLANTDATA LIKE BAPI_MARC&lt;/P&gt;&lt;P&gt; 	PLANTDATAX-ABC_ID = 'X'.      PLANTDATAX LIKE BAPI_MARCX&lt;/P&gt;&lt;P&gt;	PLANTDATAX-MRP_CTRLER = 'X'.&lt;/P&gt;&lt;P&gt;	PLANTDATAX-PLND_DELRY = 'X'.&lt;/P&gt;&lt;P&gt;	PLANTDATAX-SAFETY_STK = 'X'.&lt;/P&gt;&lt;P&gt;	PLANTDATAX-MAX_STOCK = 'X'.&lt;/P&gt;&lt;P&gt;	PLANTDATAX-INHSEPRODT = 'X'.&lt;/P&gt;&lt;P&gt;	PLANTDATAX-HANDLG_GRP = 'X'.&lt;/P&gt;&lt;P&gt;	PLANTDATAX-MIN_SAFETY_STK = 'X'.&lt;/P&gt;&lt;P&gt;	The data is being read from the excel file into the corresponding fields of the structure PLANTDATA .&lt;/P&gt;&lt;P&gt;	  And then i passed these 3 structures as parameters in the Function Module.The FM is getting executed successfully.&lt;/P&gt;&lt;P&gt;	       But it is not getting updated into the SAP.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 25 Oct 2007 12:15:22 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/reg-bapi-material-savedata/m-p/3004663#M709975</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-10-25T12:15:22Z</dc:date>
    </item>
    <item>
      <title>Re: Reg BAPI_MATERIAL_SAVEDATA</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/reg-bapi-material-savedata/m-p/3004664#M709976</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;see the sample code and do accordingly&lt;/P&gt;&lt;P&gt;take the sample values from the table MARC and give for plant data&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;REPORT  YTEST.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;TABLES : mara.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;PARAMETERS : p_matnr LIKE mara-matnr,  " Material to be created.&lt;/P&gt;&lt;P&gt;             p_werks LIKE marc-werks.  " Plant&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA : wa_headdata LIKE bapie1matheader,&lt;/P&gt;&lt;P&gt;       wa_clntdata LIKE bapie1mara,&lt;/P&gt;&lt;P&gt;       wa_clntdatax LIKE bapie1marax,&lt;/P&gt;&lt;P&gt;       wa_plntdata LIKE bapie1marc,&lt;/P&gt;&lt;P&gt;       wa_plntdatax LIKE bapie1marcx,&lt;/P&gt;&lt;P&gt;       wa_ret LIKE bapie1ret2,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;       it_headdata LIKE bapie1matheader OCCURS 0,&lt;/P&gt;&lt;P&gt;       it_clntdata LIKE bapie1mara OCCURS 0,&lt;/P&gt;&lt;P&gt;       it_clntdatax LIKE bapie1marax OCCURS 0,&lt;/P&gt;&lt;P&gt;       it_plntdata LIKE bapie1marc OCCURS 0,&lt;/P&gt;&lt;P&gt;       it_plntdatax LIKE bapie1marcx OCCURS 0,&lt;/P&gt;&lt;P&gt;       it_ret LIKE bapie1ret2 OCCURS 0,&lt;/P&gt;&lt;P&gt;       it_makt LIKE bapie1makt OCCURS 1 WITH HEADER LINE.&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;  wa_headdata-function = 'UPD'.&lt;/P&gt;&lt;P&gt;  wa_headdata-material = p_matnr.&lt;/P&gt;&lt;P&gt;  wa_headdata-ind_sector = 'M'.&lt;/P&gt;&lt;P&gt;  wa_headdata-matl_type = 'FERT'.&lt;/P&gt;&lt;P&gt;  wa_headdata-basic_view = 'X'.&lt;/P&gt;&lt;P&gt;  wa_headdata-mrp_view = 'X'.&lt;/P&gt;&lt;P&gt;  wa_headdata-sales_view = 'X'.&lt;/P&gt;&lt;P&gt;  wa_headdata-purchase_view = 'X'.&lt;/P&gt;&lt;P&gt;  wa_headdata-account_view = 'X'.&lt;/P&gt;&lt;P&gt;  wa_headdata-storage_view = 'X'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  APPEND wa_headdata&lt;/P&gt;&lt;P&gt;      TO it_headdata.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CLEAR wa_headdata.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Basic View&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  wa_clntdata-function = 'UPD'.&lt;/P&gt;&lt;P&gt;  wa_clntdata-material = p_matnr.&lt;/P&gt;&lt;P&gt;  wa_clntdata-matl_group = '4MX000'.&lt;/P&gt;&lt;P&gt;  wa_clntdata-base_uom = 'PCE'.&lt;/P&gt;&lt;P&gt;  wa_clntdata-base_uom_iso = 'PCE'.&lt;/P&gt;&lt;P&gt;  wa_clntdata-prod_hier = '90941012S751615'.&lt;/P&gt;&lt;P&gt;  wa_clntdata-dsn_office = 'A60'.&lt;/P&gt;&lt;P&gt;  wa_clntdata-mat_grp_sm = '0001'.&lt;/P&gt;&lt;P&gt;  wa_clntdata-trans_grp = 'ZS01'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  APPEND wa_clntdata&lt;/P&gt;&lt;P&gt;      TO it_clntdata.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  wa_clntdatax-function = 'UPD'.&lt;/P&gt;&lt;P&gt;  wa_clntdatax-material = p_matnr.&lt;/P&gt;&lt;P&gt;  wa_clntdatax-matl_group = 'X'.&lt;/P&gt;&lt;P&gt;  wa_clntdatax-base_uom = 'X'.&lt;/P&gt;&lt;P&gt;  wa_clntdatax-base_uom_iso = 'X'.&lt;/P&gt;&lt;P&gt;  wa_clntdatax-prod_hier = 'X'.&lt;/P&gt;&lt;P&gt;  wa_clntdatax-dsn_office = 'X'.&lt;/P&gt;&lt;P&gt;  wa_clntdatax-mat_grp_sm = 'X'.&lt;/P&gt;&lt;P&gt;  wa_clntdatax-trans_grp = 'X'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  APPEND wa_clntdatax&lt;/P&gt;&lt;P&gt;      TO it_clntdatax.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;MRP &amp;amp; Plant Data View&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  wa_plntdata-function = 'UPD'.&lt;/P&gt;&lt;P&gt;  wa_plntdata-material = p_matnr.&lt;/P&gt;&lt;P&gt;  wa_plntdata-plant = p_werks.&lt;/P&gt;&lt;P&gt;  wa_plntdata-abc_id = 'A'.&lt;/P&gt;&lt;P&gt;  wa_plntdata-pur_group = '003'.&lt;/P&gt;&lt;P&gt;  wa_plntdata-mrp_type = 'ND'.&lt;/P&gt;&lt;P&gt;  wa_plntdata-mrp_ctrler = 'BT2'.&lt;/P&gt;&lt;P&gt;  wa_plntdata-plnd_delry = '1'.&lt;/P&gt;&lt;P&gt;  wa_plntdata-gr_pr_time = '1'.&lt;/P&gt;&lt;P&gt;  wa_plntdata-period_ind = 'P'.&lt;/P&gt;&lt;P&gt;  wa_plntdata-proc_type =  'F'.&lt;/P&gt;&lt;P&gt;  wa_plntdata-spproctype =  '20'.&lt;/P&gt;&lt;P&gt;  wa_plntdata-eff_o_day = sy-datum + 5.&lt;/P&gt;&lt;P&gt;  wa_plntdata-batch_mgmt = 'X'.&lt;/P&gt;&lt;P&gt;  wa_plntdata-expimpgrp = '0'.&lt;/P&gt;&lt;P&gt;  wa_plntdata-profit_ctr = 'S75'.&lt;/P&gt;&lt;P&gt;  wa_plntdata-mrp_group = '0001'.&lt;/P&gt;&lt;P&gt;  wa_plntdata-availcheck = '02'.&lt;/P&gt;&lt;P&gt;  wa_plntdata-fy_variant = 'ZP'.&lt;/P&gt;&lt;P&gt;  wa_plntdata-countryori = 'NL'.&lt;/P&gt;&lt;P&gt;  wa_plntdata-loadinggrp = 'ZS01'.&lt;/P&gt;&lt;P&gt;  wa_plntdata-comm_code = '9018130000'.&lt;/P&gt;&lt;P&gt;  wa_plntdata-auto_p_ord = 'X'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  APPEND wa_plntdata&lt;/P&gt;&lt;P&gt;      TO it_plntdata.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  wa_plntdatax-function = 'UPD'.&lt;/P&gt;&lt;P&gt;  wa_plntdatax-material = po_matnr.&lt;/P&gt;&lt;P&gt;  wa_plntdatax-plant = po_werks.&lt;/P&gt;&lt;P&gt;  wa_plntdatax-abc_id = 'X'.&lt;/P&gt;&lt;P&gt;  wa_plntdatax-pur_group = 'X'.&lt;/P&gt;&lt;P&gt;  wa_plntdatax-mrp_type = 'X'.&lt;/P&gt;&lt;P&gt;  wa_plntdatax-mrp_ctrler = 'X'.&lt;/P&gt;&lt;P&gt;  wa_plntdatax-plnd_delry = 'X'.&lt;/P&gt;&lt;P&gt;  wa_plntdatax-gr_pr_time = 'X'.&lt;/P&gt;&lt;P&gt;  wa_plntdatax-period_ind = 'X'.&lt;/P&gt;&lt;P&gt;  wa_plntdatax-proc_type = 'X'.&lt;/P&gt;&lt;P&gt;  wa_plntdatax-spproctype = 'X'.&lt;/P&gt;&lt;P&gt;  wa_plntdatax-eff_o_day = 'X'.&lt;/P&gt;&lt;P&gt;  wa_plntdatax-batch_mgmt = 'X'.&lt;/P&gt;&lt;P&gt;  wa_plntdatax-expimpgrp = 'X'.&lt;/P&gt;&lt;P&gt;  wa_plntdatax-profit_ctr = 'X'.&lt;/P&gt;&lt;P&gt;  wa_plntdatax-mrp_group = 'X'.&lt;/P&gt;&lt;P&gt;  wa_plntdatax-availcheck = 'X'.&lt;/P&gt;&lt;P&gt;  wa_plntdatax-fy_variant = 'X'.&lt;/P&gt;&lt;P&gt;  wa_plntdatax-sloc_exprc = 'X'.&lt;/P&gt;&lt;P&gt;  wa_plntdatax-countryori = 'X'.&lt;/P&gt;&lt;P&gt;  wa_plntdatax-loadinggrp = 'X'.&lt;/P&gt;&lt;P&gt;  wa_plntdatax-comm_code = 'X'.&lt;/P&gt;&lt;P&gt;  wa_plntdatax-auto_p_ord = 'X'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  APPEND wa_plntdatax&lt;/P&gt;&lt;P&gt;      TO it_plntdatax.&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;Material Description&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  it_makt-material = p_matnr.&lt;/P&gt;&lt;P&gt;  it_makt-langu = 'E'.&lt;/P&gt;&lt;P&gt;  it_makt-langu_iso = 'EN'.&lt;/P&gt;&lt;P&gt;  it_makt-matl_desc = 'Material using BAPI SAVE REPLICA'.&lt;/P&gt;&lt;P&gt;  APPEND it_makt.&lt;/P&gt;&lt;P&gt;  CLEAR it_makt.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CALL FUNCTION 'BAPI_MATERIAL_SAVEREPLICA'&lt;/P&gt;&lt;P&gt;    EXPORTING&lt;/P&gt;&lt;P&gt;      noappllog           = space&lt;/P&gt;&lt;P&gt;      nochangedoc         = space&lt;/P&gt;&lt;P&gt;      testrun             = space&lt;/P&gt;&lt;P&gt;      inpfldcheck         = space&lt;/P&gt;&lt;P&gt;    TABLES&lt;/P&gt;&lt;P&gt;      headdata            = it_headdata&lt;/P&gt;&lt;P&gt;      clientdata          = it_clntdata&lt;/P&gt;&lt;P&gt;      clientdatax         = it_clntdatax&lt;/P&gt;&lt;P&gt;      plantdata           = it_plntdata&lt;/P&gt;&lt;P&gt;      plantdatax          = it_plntdatax&lt;/P&gt;&lt;P&gt;      materialdescription = it_makt&lt;/P&gt;&lt;P&gt;      returnmessages      = it_ret.&lt;/P&gt;&lt;P&gt;&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;&lt;/P&gt;&lt;P&gt;  LOOP AT it_ret INTO wa_ret.&lt;/P&gt;&lt;P&gt;    WRITE / wa_ret-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;Regards&lt;/P&gt;&lt;P&gt;ANJI&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 25 Oct 2007 12:52:33 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/reg-bapi-material-savedata/m-p/3004664#M709976</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-10-25T12:52:33Z</dc:date>
    </item>
    <item>
      <title>Re: Reg BAPI_MATERIAL_SAVEDATA</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/reg-bapi-material-savedata/m-p/3004665#M709977</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;did you append the line to the internal table?&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 25 Oct 2007 13:10:53 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/reg-bapi-material-savedata/m-p/3004665#M709977</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-10-25T13:10:53Z</dc:date>
    </item>
    <item>
      <title>Re: Reg BAPI_MATERIAL_SAVEDATA</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/reg-bapi-material-savedata/m-p/3004666#M709978</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;hi&lt;/P&gt;&lt;P&gt;good&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;pls check this code&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; Report ZMMR_DELETEPO                                               *&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;  Author                    : Bikash Agarwal&lt;/P&gt;&lt;P&gt;*&amp;amp;  Description               : VTLS PO Change&lt;/P&gt;&lt;P&gt;*&amp;amp;  Program Objective         : Places a DELETION indicator for the PO&lt;/P&gt;&lt;P&gt;*&amp;amp;                              items given in the VTLS data&lt;/P&gt;&lt;P&gt;*&amp;amp;  Remarks                   : NA&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;P&gt;REPORT ZMMR_DELETEPO NO STANDARD PAGE HEADING 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;*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;        ebeln(10),&lt;/P&gt;&lt;P&gt;        ebelp type ekpo-ebelp,&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_sapdata occurs 0,&lt;/P&gt;&lt;P&gt;       po like zvtls_sap-posap,&lt;/P&gt;&lt;P&gt;       item like zvtls_sap-itemsap,&lt;/P&gt;&lt;P&gt;       end of t_sapdata.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data : begin of t_flatfile_vtls1 occurs 0,&lt;/P&gt;&lt;P&gt;       po(10),&lt;/P&gt;&lt;P&gt;       item like zvtls_sap-itemsap,&lt;/P&gt;&lt;P&gt;       end of t_flatfile_vtls1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data : begin of t_update 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_update.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data : begin of t_poheader occurs 0,&lt;/P&gt;&lt;P&gt;       po like zvtls_sap-posap,&lt;/P&gt;&lt;P&gt;       end of t_poheader.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data : begin of t_poitem occurs 0,&lt;/P&gt;&lt;P&gt;       po like zvtls_sap-posap,&lt;/P&gt;&lt;P&gt;       item like zvtls_sap-itemsap,&lt;/P&gt;&lt;P&gt;       end of t_poitem.&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;       item like zvtls_sap-itemvtls,&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_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;*=====================================================================&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;      w_povtls(10),&lt;/P&gt;&lt;P&gt;      w_count 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;*=====================================================================&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;&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;&lt;/P&gt;&lt;P&gt;CONSTANTS : 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_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;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;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 chosen&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;  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;    CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'&lt;/P&gt;&lt;P&gt;      EXPORTING&lt;/P&gt;&lt;P&gt;        input  = t_flatfile_vtls-ebeln&lt;/P&gt;&lt;P&gt;      IMPORTING&lt;/P&gt;&lt;P&gt;        output = t_flatfile_vtls1-po.&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_flatfile_vtls-ebelp&lt;/P&gt;&lt;P&gt;      IMPORTING&lt;/P&gt;&lt;P&gt;        output = t_flatfile_vtls1-item.&lt;/P&gt;&lt;P&gt;    append t_flatfile_vtls1.&lt;/P&gt;&lt;P&gt;    clear t_flatfile_vtls1.&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;  perform get_podata.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  loop at t_poheader.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    perform move_to_bapi.&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.&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;*&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;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-ebeln&lt;/P&gt;&lt;P&gt;                                           wa_data_file-ebelp.&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  get_podata&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 get_podata.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  select *&lt;/P&gt;&lt;P&gt;  into table t_update&lt;/P&gt;&lt;P&gt;  from zvtls_sap&lt;/P&gt;&lt;P&gt;  for all entries in t_flatfile_vtls1&lt;/P&gt;&lt;P&gt;   where itemvtls = t_flatfile_vtls1-item&lt;/P&gt;&lt;P&gt;  and povtls = t_flatfile_vtls1-po.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  sort t_update by posap itemsap.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  loop at t_update.&lt;/P&gt;&lt;P&gt;    at new posap.&lt;/P&gt;&lt;P&gt;      t_poheader-po = t_update-posap.&lt;/P&gt;&lt;P&gt;      append t_poheader.&lt;/P&gt;&lt;P&gt;      clear t_poheader.&lt;/P&gt;&lt;P&gt;    endat.&lt;/P&gt;&lt;P&gt;    t_poitem-po = t_update-posap.&lt;/P&gt;&lt;P&gt;    t_poitem-item = t_update-itemsap.&lt;/P&gt;&lt;P&gt;    append t_poitem.&lt;/P&gt;&lt;P&gt;    clear t_poitem.&lt;/P&gt;&lt;P&gt;    t_update-paedt = sy-datum.&lt;/P&gt;&lt;P&gt;    t_update-loekz = 'X'.&lt;/P&gt;&lt;P&gt;    modify t_update.&lt;/P&gt;&lt;P&gt;  endloop.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  modify zvtls_sap from table t_update.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;endform.                    "get_podata&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  move_to_bapi&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 move_to_bapi.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  t_bapi_poheader-po_number = t_poheader-po.&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;  refresh : t_bapi_poitem,t_bapi_poitemx.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  loop at t_poitem where po = t_poheader-po.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    clear t_bapi_poitem.&lt;/P&gt;&lt;P&gt;    t_bapi_poitem-po_item = t_poitem-item.&lt;/P&gt;&lt;P&gt;    t_bapi_poitem-delete_ind = 'X'.&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;    t_bapi_poitemx-po_item = t_poitem-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;    clear t_bapi_poitem.&lt;/P&gt;&lt;P&gt;    clear t_bapi_poitemx.&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;endform.                    "move_to_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  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;STRONG&gt;----&lt;/STRONG&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;  CALL FUNCTION 'BAPI_PO_CHANGE'&lt;/P&gt;&lt;P&gt;    EXPORTING&lt;/P&gt;&lt;P&gt;      PURCHASEORDER = T_POHEADER-PO&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;    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;&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;  ENDIF.&lt;/P&gt;&lt;P&gt;*C-- Write messages&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  WRITE: / 'PO Number', t_poheader-po.&lt;/P&gt;&lt;P&gt;  clear : t_update,w_povtls.&lt;/P&gt;&lt;P&gt;  read table t_update with key posap = t_poheader-po.&lt;/P&gt;&lt;P&gt;  w_povtls = t_update-povtls.&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;    if l_msgtx cs t_poheader-po.&lt;/P&gt;&lt;P&gt;      w_count = w_count + 1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      loop at t_update.&lt;/P&gt;&lt;P&gt;        if sy-tabix = w_count.&lt;/P&gt;&lt;P&gt;          t_message-item = t_update-itemvtls.&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;    endif.&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 = w_povtls.&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  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;  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;&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/POCHANGE/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;P&gt;&lt;/P&gt;&lt;P&gt;reward point if helpful.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;thanks&lt;/P&gt;&lt;P&gt;mrutyun^&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 25 Oct 2007 13:20:34 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/reg-bapi-material-savedata/m-p/3004666#M709978</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-10-25T13:20:34Z</dc:date>
    </item>
    <item>
      <title>Re: Reg BAPI_MATERIAL_SAVEDATA</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/reg-bapi-material-savedata/m-p/3004667#M709979</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;hi&lt;/P&gt;&lt;P&gt;good&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;check this code&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; Report ZMMR_DELETEPO                                               *&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;  Author                    : Bikash Agarwal&lt;/P&gt;&lt;P&gt;*&amp;amp;  Description               : VTLS PO Change&lt;/P&gt;&lt;P&gt;*&amp;amp;  Program Objective         : Places a DELETION indicator for the PO&lt;/P&gt;&lt;P&gt;*&amp;amp;                              items given in the VTLS data&lt;/P&gt;&lt;P&gt;*&amp;amp;  Remarks                   : NA&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;P&gt;REPORT ZMMR_DELETEPO NO STANDARD PAGE HEADING 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;*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;        ebeln(10),&lt;/P&gt;&lt;P&gt;        ebelp type ekpo-ebelp,&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_sapdata occurs 0,&lt;/P&gt;&lt;P&gt;       po like zvtls_sap-posap,&lt;/P&gt;&lt;P&gt;       item like zvtls_sap-itemsap,&lt;/P&gt;&lt;P&gt;       end of t_sapdata.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data : begin of t_flatfile_vtls1 occurs 0,&lt;/P&gt;&lt;P&gt;       po(10),&lt;/P&gt;&lt;P&gt;       item like zvtls_sap-itemsap,&lt;/P&gt;&lt;P&gt;       end of t_flatfile_vtls1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data : begin of t_update 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_update.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data : begin of t_poheader occurs 0,&lt;/P&gt;&lt;P&gt;       po like zvtls_sap-posap,&lt;/P&gt;&lt;P&gt;       end of t_poheader.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data : begin of t_poitem occurs 0,&lt;/P&gt;&lt;P&gt;       po like zvtls_sap-posap,&lt;/P&gt;&lt;P&gt;       item like zvtls_sap-itemsap,&lt;/P&gt;&lt;P&gt;       end of t_poitem.&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;       item like zvtls_sap-itemvtls,&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_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;*=====================================================================&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;      w_povtls(10),&lt;/P&gt;&lt;P&gt;      w_count 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;*=====================================================================&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;&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;&lt;/P&gt;&lt;P&gt;CONSTANTS : 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_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;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;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 chosen&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;  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;    CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'&lt;/P&gt;&lt;P&gt;      EXPORTING&lt;/P&gt;&lt;P&gt;        input  = t_flatfile_vtls-ebeln&lt;/P&gt;&lt;P&gt;      IMPORTING&lt;/P&gt;&lt;P&gt;        output = t_flatfile_vtls1-po.&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_flatfile_vtls-ebelp&lt;/P&gt;&lt;P&gt;      IMPORTING&lt;/P&gt;&lt;P&gt;        output = t_flatfile_vtls1-item.&lt;/P&gt;&lt;P&gt;    append t_flatfile_vtls1.&lt;/P&gt;&lt;P&gt;    clear t_flatfile_vtls1.&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;  perform get_podata.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  loop at t_poheader.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    perform move_to_bapi.&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.&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;*&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;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-ebeln&lt;/P&gt;&lt;P&gt;                                           wa_data_file-ebelp.&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  get_podata&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 get_podata.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  select *&lt;/P&gt;&lt;P&gt;  into table t_update&lt;/P&gt;&lt;P&gt;  from zvtls_sap&lt;/P&gt;&lt;P&gt;  for all entries in t_flatfile_vtls1&lt;/P&gt;&lt;P&gt;   where itemvtls = t_flatfile_vtls1-item&lt;/P&gt;&lt;P&gt;  and povtls = t_flatfile_vtls1-po.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  sort t_update by posap itemsap.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  loop at t_update.&lt;/P&gt;&lt;P&gt;    at new posap.&lt;/P&gt;&lt;P&gt;      t_poheader-po = t_update-posap.&lt;/P&gt;&lt;P&gt;      append t_poheader.&lt;/P&gt;&lt;P&gt;      clear t_poheader.&lt;/P&gt;&lt;P&gt;    endat.&lt;/P&gt;&lt;P&gt;    t_poitem-po = t_update-posap.&lt;/P&gt;&lt;P&gt;    t_poitem-item = t_update-itemsap.&lt;/P&gt;&lt;P&gt;    append t_poitem.&lt;/P&gt;&lt;P&gt;    clear t_poitem.&lt;/P&gt;&lt;P&gt;    t_update-paedt = sy-datum.&lt;/P&gt;&lt;P&gt;    t_update-loekz = 'X'.&lt;/P&gt;&lt;P&gt;    modify t_update.&lt;/P&gt;&lt;P&gt;  endloop.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  modify zvtls_sap from table t_update.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;endform.                    "get_podata&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  move_to_bapi&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 move_to_bapi.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  t_bapi_poheader-po_number = t_poheader-po.&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;  refresh : t_bapi_poitem,t_bapi_poitemx.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  loop at t_poitem where po = t_poheader-po.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    clear t_bapi_poitem.&lt;/P&gt;&lt;P&gt;    t_bapi_poitem-po_item = t_poitem-item.&lt;/P&gt;&lt;P&gt;    t_bapi_poitem-delete_ind = 'X'.&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;    t_bapi_poitemx-po_item = t_poitem-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;    clear t_bapi_poitem.&lt;/P&gt;&lt;P&gt;    clear t_bapi_poitemx.&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;endform.                    "move_to_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  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;STRONG&gt;----&lt;/STRONG&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;  CALL FUNCTION 'BAPI_PO_CHANGE'&lt;/P&gt;&lt;P&gt;    EXPORTING&lt;/P&gt;&lt;P&gt;      PURCHASEORDER = T_POHEADER-PO&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;    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;&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;  ENDIF.&lt;/P&gt;&lt;P&gt;*C-- Write messages&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  WRITE: / 'PO Number', t_poheader-po.&lt;/P&gt;&lt;P&gt;  clear : t_update,w_povtls.&lt;/P&gt;&lt;P&gt;  read table t_update with key posap = t_poheader-po.&lt;/P&gt;&lt;P&gt;  w_povtls = t_update-povtls.&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;    if l_msgtx cs t_poheader-po.&lt;/P&gt;&lt;P&gt;      w_count = w_count + 1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      loop at t_update.&lt;/P&gt;&lt;P&gt;        if sy-tabix = w_count.&lt;/P&gt;&lt;P&gt;          t_message-item = t_update-itemvtls.&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;    endif.&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 = w_povtls.&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  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;  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;&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/POCHANGE/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;P&gt;&lt;/P&gt;&lt;P&gt;reward point if helpful.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;thanks&lt;/P&gt;&lt;P&gt;mrutyun^&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 25 Oct 2007 13:21:00 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/reg-bapi-material-savedata/m-p/3004667#M709979</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-10-25T13:21:00Z</dc:date>
    </item>
  </channel>
</rss>

