<?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: Outbound interface in Application Development and Automation Discussions</title>
    <link>https://community.sap.com/t5/application-development-and-automation-discussions/outbound-interface/m-p/1179760#M125429</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;check this link...&lt;/P&gt;&lt;P&gt;&lt;A href="http://www.sap-img.com/ab011.htm" target="test_blank"&gt;http://www.sap-img.com/ab011.htm&lt;/A&gt;&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="225245"&gt;&lt;/A&gt;&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="707513"&gt;&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;A href="http://www.sapdevelopment.co.uk/file/file_uptabpc.htm" target="test_blank"&gt;http://www.sapdevelopment.co.uk/file/file_uptabpc.htm&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;thanks&lt;/P&gt;&lt;P&gt;vijay&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Wed, 04 Jan 2006 06:32:33 GMT</pubDate>
    <dc:creator>Former Member</dc:creator>
    <dc:date>2006-01-04T06:32:33Z</dc:date>
    <item>
      <title>Outbound interface</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/outbound-interface/m-p/1179759#M125428</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;Iam doing outbound interface,from sap i have to download contents to CSV file,both application and presentation server,can anyone help me by providing sample code.&lt;/P&gt;&lt;P&gt;my email id: pj_swaminathan@hotmail.com&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 04 Jan 2006 06:18:33 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/outbound-interface/m-p/1179759#M125428</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2006-01-04T06:18:33Z</dc:date>
    </item>
    <item>
      <title>Re: Outbound interface</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/outbound-interface/m-p/1179760#M125429</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;check this link...&lt;/P&gt;&lt;P&gt;&lt;A href="http://www.sap-img.com/ab011.htm" target="test_blank"&gt;http://www.sap-img.com/ab011.htm&lt;/A&gt;&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="225245"&gt;&lt;/A&gt;&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="707513"&gt;&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;A href="http://www.sapdevelopment.co.uk/file/file_uptabpc.htm" target="test_blank"&gt;http://www.sapdevelopment.co.uk/file/file_uptabpc.htm&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;thanks&lt;/P&gt;&lt;P&gt;vijay&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 04 Jan 2006 06:32:33 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/outbound-interface/m-p/1179760#M125429</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2006-01-04T06:32:33Z</dc:date>
    </item>
    <item>
      <title>Re: Outbound interface</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/outbound-interface/m-p/1179761#M125430</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;    Refer to the below specified code.For ur requirement refer to this perform   &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;lt;b&amp;gt;perform f_download_error_file.&amp;lt;/b&amp;gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;In my case i have to download error file which is of CSV file format.&lt;/P&gt;&lt;P&gt;Refer to this internal table population it_error. &lt;/P&gt;&lt;P&gt;Only this is different from other files. Rest of the code is same .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;----&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;                   TABLES&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;TABLES : BGR00,    " Batch Input Structure for Session Data&lt;/P&gt;&lt;P&gt;         BBKPF,    " Doc Hdr for Accntng Doc (Batch Input Structure)&lt;/P&gt;&lt;P&gt;         BBSEG.    " Accounting Document Segment (Batch Input Structure)&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 y p e s         D e c l a r a t i o n s                 *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;************************************************************************&lt;/P&gt;&lt;P&gt;*-- Types for Input file&lt;/P&gt;&lt;P&gt;TYPES:BEGIN OF T_INFILE,&lt;/P&gt;&lt;P&gt;        DATA(120) TYPE C,              " Data Record&lt;/P&gt;&lt;P&gt;      END OF T_INFILE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*-- Types for Downloded Error file&lt;/P&gt;&lt;P&gt;TYPES:BEGIN OF T_ERROR,&lt;/P&gt;&lt;P&gt;        DATA(120) TYPE C,              " Data Record&lt;/P&gt;&lt;P&gt;      END OF T_ERROR.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*-- Types to hold vendor data&lt;/P&gt;&lt;P&gt;TYPES:BEGIN OF T_LFA1,&lt;/P&gt;&lt;P&gt;        LIFNR TYPE LIFNR,              " Vendor no&lt;/P&gt;&lt;P&gt;        BUKRS TYPE BUKRS,              " Company code&lt;/P&gt;&lt;P&gt;      END OF T_LFA1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*-- Types to hold cost center data&lt;/P&gt;&lt;P&gt;TYPES : BEGIN OF t_csks,&lt;/P&gt;&lt;P&gt;           kostl TYPE kostl,           " Cost Center&lt;/P&gt;&lt;P&gt;           bukrs TYPE bukrs,           " Company Code&lt;/P&gt;&lt;P&gt;         END OF t_csks.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*-- Types to hold internal order number&lt;/P&gt;&lt;P&gt;TYPES : BEGIN OF t_coas,&lt;/P&gt;&lt;P&gt;          aufnr   TYPE   aufnr,        " Internal Order no.&lt;/P&gt;&lt;P&gt;          bukrs   TYPE   bukrs,        " Company Code&lt;/P&gt;&lt;P&gt;        END OF t_coas.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*-- Types to hold G/L account master (company code)&lt;/P&gt;&lt;P&gt;TYPES : BEGIN OF t_skb1,&lt;/P&gt;&lt;P&gt;          bukrs   TYPE   bukrs,        " Company Code&lt;/P&gt;&lt;P&gt;          saknr   TYPE   saknr,        " GL Account number&lt;/P&gt;&lt;P&gt;        END OF t_skb1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*-- Types to hold company code currency data&lt;/P&gt;&lt;P&gt;TYPES: BEGIN OF T_T001,&lt;/P&gt;&lt;P&gt;         BUKRS  TYPE T001-BUKRS,       " Company code&lt;/P&gt;&lt;P&gt;         WAERS  TYPE T001-WAERS,       " Currency&lt;/P&gt;&lt;P&gt;       END OF T_T001.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*-- Types to hold Company Codes&lt;/P&gt;&lt;P&gt;TYPES: BEGIN OF T_COMCODE,&lt;/P&gt;&lt;P&gt;         BUKRS TYPE LFB1-BUKRS,        " Company Code&lt;/P&gt;&lt;P&gt;       END OF T_COMCODE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*-- Types to hold Vendor Numbers&lt;/P&gt;&lt;P&gt;TYPES: BEGIN OF T_VEND,&lt;/P&gt;&lt;P&gt;         LIFNR TYPE LFA1-LIFNR,        " GL Account number&lt;/P&gt;&lt;P&gt;       END OF T_VEND.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*-- Types to hold GL Accounts&lt;/P&gt;&lt;P&gt;TYPES: BEGIN OF T_GL,&lt;/P&gt;&lt;P&gt;         HKONT TYPE BSEG-SAKNR,        " GL Account number&lt;/P&gt;&lt;P&gt;       END OF T_GL.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*-- Types to hold Cost Centers Accounts&lt;/P&gt;&lt;P&gt;TYPES: BEGIN OF T_CC,&lt;/P&gt;&lt;P&gt;         KOSTL TYPE CSKS-KOSTL,        " Cost Center&lt;/P&gt;&lt;P&gt;       END OF T_CC.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*-- Types to hold Internal Orders&lt;/P&gt;&lt;P&gt;TYPES: BEGIN OF T_IO,&lt;/P&gt;&lt;P&gt;         AUFNR TYPE AUFK-AUFNR,        " Internal Order&lt;/P&gt;&lt;P&gt;       END OF T_IO.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*-- Structure declaration for Header record type data&lt;/P&gt;&lt;P&gt;DATA:BEGIN OF T_INVHEADER,&lt;/P&gt;&lt;P&gt;       RECTYPE(1)   TYPE C,            " Record Type&lt;/P&gt;&lt;P&gt;       BUKRS(4)     TYPE C,            " Company Code&lt;/P&gt;&lt;P&gt;       BLDAT(8)     TYPE C,            " Document Date&lt;/P&gt;&lt;P&gt;       XBLNR(16)    TYPE C,            " CT Reference Number&lt;/P&gt;&lt;P&gt;       BKTXT(25)    TYPE C,            " SAP Invoice Header Text&lt;/P&gt;&lt;P&gt;     END OF T_INVHEADER.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*-- Structure declaration for Vendor record type data&lt;/P&gt;&lt;P&gt;DATA:BEGIN OF T_VENDOR,&lt;/P&gt;&lt;P&gt;       LIFNR(15)    TYPE C,            " Vendor Number&lt;/P&gt;&lt;P&gt;       WRBTR(16)    TYPE C,            " Check Request Total Amount&lt;/P&gt;&lt;P&gt;       WMWST(16)    TYPE C,            " Check Request Tax Amount&lt;/P&gt;&lt;P&gt;       ZLSCH(1)     TYPE C,            " Payment Method&lt;/P&gt;&lt;P&gt;       SGTXT(50)    TYPE C,            " Text Description&lt;/P&gt;&lt;P&gt;     END OF T_VENDOR.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*-- Structure declaration for Line Item record type data&lt;/P&gt;&lt;P&gt;DATA:BEGIN OF T_LINEITEM,&lt;/P&gt;&lt;P&gt;       HKONT(10)   TYPE C,             " SAP GL Account Number&lt;/P&gt;&lt;P&gt;       KOSTL(10)   TYPE C,             " SAP Cost Center&lt;/P&gt;&lt;P&gt;       AUFNR(10)   TYPE C,             " SAP Internal Order&lt;/P&gt;&lt;P&gt;     END OF T_LINEITEM.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*-- Types to hold input data fields&lt;/P&gt;&lt;P&gt;TYPES: BEGIN OF T_INDATA.&lt;/P&gt;&lt;P&gt;types:  counter(9)  type n.            " Counter Number for a Doc&lt;/P&gt;&lt;P&gt;        INCLUDE STRUCTURE T_INVHEADER. " Structure for Header Record&lt;/P&gt;&lt;P&gt;        INCLUDE STRUCTURE T_VENDOR.    " Structure for VendorItem Record&lt;/P&gt;&lt;P&gt;        INCLUDE STRUCTURE T_LINEITEM.  " Structure for LineItem Record&lt;/P&gt;&lt;P&gt;TYPES:  errmsg(100) type c,            " Error Message&lt;/P&gt;&lt;P&gt;        errflag(1)  type c.            " Error Flag&lt;/P&gt;&lt;P&gt;types:       END OF T_INDATA.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*-- Types to store a Header and Trailer records&lt;/P&gt;&lt;P&gt;types: BEGIN OF T_HEAD_TRAI,&lt;/P&gt;&lt;P&gt;         rectype(1)   type c,          " Record Type&lt;/P&gt;&lt;P&gt;         intname(6)   type c,          " Interface Number&lt;/P&gt;&lt;P&gt;         datetime(12) type c,          " File Create Date &amp;amp; Time&lt;/P&gt;&lt;P&gt;       END OF T_HEAD_TRAI.&lt;/P&gt;&lt;P&gt;&lt;/P&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;Internal Table and structure Declarations                           *&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;*-- Internal table to input data&lt;/P&gt;&lt;P&gt;DATA:&lt;/P&gt;&lt;P&gt;  it_INFILE TYPE STANDARD TABLE OF t_INFILE WITH HEADER LINE,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*-- Internal table to hold input file separated data&lt;/P&gt;&lt;P&gt;  IT_INDATA TYPE STANDARD TABLE OF t_INDATA WITH HEADER LINE,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*-- Internal table to hold Error file data&lt;/P&gt;&lt;P&gt;  it_ERROR TYPE STANDARD TABLE OF t_ERROR WITH HEADER LINE,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*-- Internal table to hold Error report data&lt;/P&gt;&lt;P&gt;  IT_ERR_REP TYPE STANDARD TABLE OF t_INDATA WITH HEADER LINE,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*-- Internal table to hold only Header and Trailer records&lt;/P&gt;&lt;P&gt;  IT_HEAD_TRAI TYPE STANDARD TABLE OF T_HEAD_TRAI WITH HEADER LINE,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*-- Internal table to hold company code with currency&lt;/P&gt;&lt;P&gt;  it_T001 TYPE STANDARD TABLE OF t_T001 WITH HEADER LINE,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*-- Internal table to hold Company Code&lt;/P&gt;&lt;P&gt;  it_COMCODE TYPE STANDARD TABLE OF t_COMCODE WITH HEADER LINE,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*-- Internal table to hold Vendor Numbers&lt;/P&gt;&lt;P&gt;  it_GL TYPE STANDARD TABLE OF t_GL WITH HEADER LINE,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*-- Internal table to hold G/L account master (company code)&lt;/P&gt;&lt;P&gt;  it_vend TYPE STANDARD TABLE OF t_vend WITH HEADER LINE,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*-- Internal table to hold CostCenter data&lt;/P&gt;&lt;P&gt;  it_CC TYPE STANDARD TABLE OF t_CC WITH HEADER LINE,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*-- Internal table to hold Internal Orders&lt;/P&gt;&lt;P&gt;  it_IO TYPE STANDARD TABLE OF t_IO WITH HEADER LINE,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*-- Internal table to hold vendor data&lt;/P&gt;&lt;P&gt;  IT_LFA1 TYPE STANDARD TABLE OF t_LFA1 WITH HEADER LINE,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*-- Internal table to hold cost center data&lt;/P&gt;&lt;P&gt;  it_csks TYPE STANDARD TABLE OF t_csks WITH HEADER LINE,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*-- Internal table to hold internal order number&lt;/P&gt;&lt;P&gt;  it_coas TYPE STANDARD TABLE OF t_coas WITH HEADER LINE,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*-- Internal table to hold G/L account master (company code)&lt;/P&gt;&lt;P&gt;  it_skb1 TYPE STANDARD TABLE OF t_skb1 WITH HEADER LINE,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*-- work area for input file data&lt;/P&gt;&lt;P&gt;  wa_indata type t_indata.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*-- internal table to initialise structures&lt;/P&gt;&lt;P&gt;  DATA:    BEGIN OF it_nametab OCCURS 120.&lt;/P&gt;&lt;P&gt;            INCLUDE STRUCTURE dntab.  " DD interface: nametab definition&lt;/P&gt;&lt;P&gt;                                      " for GET_NAMETAB&lt;/P&gt;&lt;P&gt;  DATA:    END OF it_nametab.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*-- Internal table to hold sessions data&lt;/P&gt;&lt;P&gt;  DATA:BEGIN OF IT_LIST OCCURS 0.&lt;/P&gt;&lt;P&gt;      INCLUDE STRUCTURE ABAPLIST.     " Structure for Internal Table as&lt;/P&gt;&lt;P&gt;                                      " List Container&lt;/P&gt;&lt;P&gt;  DATA:END OF IT_LIST.&lt;/P&gt;&lt;P&gt;&lt;/P&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;Global Variables                                                     *&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;DATA:&lt;/P&gt;&lt;P&gt;  V_PGM_ID         TYPE SY-REPID,                " Program id&lt;/P&gt;&lt;P&gt;  V_COUNT_INFILE   TYPE I,                       " Counter&lt;/P&gt;&lt;P&gt;  v_file           TYPE rlgrap-filename,         " File name&lt;/P&gt;&lt;P&gt;  v_sess           TYPE APQ_GRPN,                " Session name&lt;/P&gt;&lt;P&gt;  v_char(61)       TYPE c,                       " Field name&lt;/P&gt;&lt;P&gt;  v_bukrs          TYPE t001-bukrs,              " Company Code&lt;/P&gt;&lt;P&gt;  V_MSG            TYPE STRING,                  " Message Info&lt;/P&gt;&lt;P&gt;  V_RC             TYPE SYST-SUBRC.              " SY-SUBRC Number&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*-- Field symbols&lt;/P&gt;&lt;P&gt;  FIELD-SYMBOLS: &amp;lt;f1&amp;gt; .                          " Field Symbol&lt;/P&gt;&lt;P&gt;&lt;/P&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;Constants.                                                           *&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;CONSTANTS:&lt;/P&gt;&lt;P&gt;  C_H(1)        TYPE C VALUE 'H',            " Header Rec Type&lt;/P&gt;&lt;P&gt;  C_I(1)        TYPE C VALUE 'I',            " Inv Header Rec Type&lt;/P&gt;&lt;P&gt;  C_V(1)        TYPE C VALUE 'V',            " Vendor Rec Type&lt;/P&gt;&lt;P&gt;  C_L(1)        TYPE C VALUE 'L',            " Lineitem Rec Type&lt;/P&gt;&lt;P&gt;  C_X(1)        TYPE C VALUE 'X',            " For Flag&lt;/P&gt;&lt;P&gt;  C_T(1)        TYPE C VALUE 'T',            " Trailer Rec Type&lt;/P&gt;&lt;P&gt;  C_TCODE(4)    TYPE C VALUE 'FB01',         " Transaction Code&lt;/P&gt;&lt;P&gt;  C_COMMA(1)    TYPE C VALUE ',',            " Comma&lt;/P&gt;&lt;P&gt;  C_DOCTYPE(2)  TYPE C VALUE 'KU',           " Doc type&lt;/P&gt;&lt;P&gt;  C_NODATA(1)   TYPE C VALUE '/',            " NODATA&lt;/P&gt;&lt;P&gt;  C_SESS        LIKE APQI-GROUPID VALUE 'CT2SAP'. "Session&lt;/P&gt;&lt;P&gt;&lt;/P&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;Selection Screen&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;SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-001.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;PARAMETERS :&lt;/P&gt;&lt;P&gt;  p_file  TYPE rlgrap-filename OBLIGATORY,&lt;/P&gt;&lt;P&gt;  p_error TYPE rlgrap-filename OBLIGATORY,&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; p_path  TYPE filepath-pathintern&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                   DEFAULT 'Z0FI_AP_INT_SAPAP_TO_CT' MODIF ID z1,&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; p_path1  TYPE filepath-pathintern&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                   DEFAULT 'Z0FI_AP_INT_CT_TO_SAPAP' MODIF ID z1,&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  r_pc  RADIOBUTTON GROUP file DEFAULT   'X' USER-COMMAND rad, " PC&lt;/P&gt;&lt;P&gt;  r_aix RADIOBUTTON GROUP file.                            " App server&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN END OF BLOCK B1.&lt;/P&gt;&lt;P&gt;&lt;/P&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; INITIALIZATION&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;INITIALIZATION.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  V_PGM_ID = SY-REPID.           " Program Name&lt;/P&gt;&lt;P&gt;&lt;/P&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;            A T  S E L E C T I O N   S C R E E N&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;AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_file.&lt;/P&gt;&lt;P&gt;*-- Provide input help for PC file&lt;/P&gt;&lt;P&gt;  PERFORM f_validate_file USING p_file r_aix.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_error.&lt;/P&gt;&lt;P&gt;*-- Provide input help for PC error file download&lt;/P&gt;&lt;P&gt;  PERFORM f_validate_error_file USING p_error r_aix.&lt;/P&gt;&lt;P&gt;&lt;/P&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;A T  S E L E C T I O N   S C R E E N  O U T P U T&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;*-- For modifying the selection screen layout&lt;/P&gt;&lt;P&gt;AT SELECTION-SCREEN OUTPUT.&lt;/P&gt;&lt;P&gt;  PERFORM f_modify_screen.&lt;/P&gt;&lt;P&gt;&lt;/P&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; START-OF-SELECTION                                                  *&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;START-OF-SELECTION.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*-- Get the file name for Application server&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; IF NOT r_aix IS INITIAL.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;**-- Using default Logical Path if no logical path mentioned&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   IF p_path IS INITIAL.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     p_path = 'Z0FI_AP_INT_CT_TO_SAPAP'.&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;**-- Using default Logical Path if no logical path mentioned&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   IF p_path1 IS INITIAL.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     p_path1 = 'Z0FI_AP_INT_SAPAP_TO_CT'.&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;*-- Get Input file name using logical path&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   CLEAR: V_FILE.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   PERFORM f_get_file_name_path USING    p_path p_file&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                              CHANGING v_file.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   p_file = v_file.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;**-- Get Error file name using logical path&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   CLEAR: V_FILE.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   PERFORM f_get_file_name_path USING    p_path1 p_error&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                              CHANGING v_file.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   p_error = v_file.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   CLEAR: V_FILE.&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;*-- If sequential file is selected&lt;/P&gt;&lt;P&gt;  IF R_AIX = 'X'.&lt;/P&gt;&lt;P&gt;*-- Form to get  data for apllication server&lt;/P&gt;&lt;P&gt;    PERFORM F_GET_INPUT_DATA.&lt;/P&gt;&lt;P&gt;*-- if local file&lt;/P&gt;&lt;P&gt;  ELSE.&lt;/P&gt;&lt;P&gt;*-- Form to get data for presentation server&lt;/P&gt;&lt;P&gt;    PERFORM F_GET_LOCAL_DATA.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*-- Perfrom to Split the record at Comma and arrange accordingly.&lt;/P&gt;&lt;P&gt;if not it_infile[] is initial.&lt;/P&gt;&lt;P&gt;  PERFORM F_SPLIT_DATA.&lt;/P&gt;&lt;P&gt;endif.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;if not it_indata[] is initial.&lt;/P&gt;&lt;P&gt;*-- Perform to fetch Company Code Currency, Cost Centers, GL Account's,&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  Internal Orders and Vendor Numbers&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  PERFORM F_SELECT_DATA.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*-- Perform to validate for Company Code Currency, Cost Centers,&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  GL Account's, Internal Orders, Vendor Numbers and amounts&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  perform f_validate_data.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*-- Perform to seperate error records to error internal table and delete&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  error records form the orginal internal table&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  perform f_separate_data.&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;if not it_indata[] is initial.&lt;/P&gt;&lt;P&gt;*-- Perform to pass the data to different RFBIBL00 structures&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  accordingly&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  perform f_populate_RFBIBL00.&lt;/P&gt;&lt;P&gt;endif.&lt;/P&gt;&lt;P&gt;&lt;/P&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;END-OF-SELECTION&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;END-OF-SELECTION.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;if not it_indata[] is initial.&lt;/P&gt;&lt;P&gt;*-- For submitting the program to rfbibloo&lt;/P&gt;&lt;P&gt;  PERFORM F_SUBMIT_RFBIBLOO.&lt;/P&gt;&lt;P&gt;endif.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;if not it_error[] is initial.&lt;/P&gt;&lt;P&gt;*-- Download error file to application server or presentation server&lt;/P&gt;&lt;P&gt;  perform f_download_error_file.&lt;/P&gt;&lt;P&gt;endif.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*-- Form to display the error report&lt;/P&gt;&lt;P&gt;  PERFORM F_DISPLAY_REPORT.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*--Standard footer&lt;/P&gt;&lt;P&gt;  PERFORM STD_END_OF_REPORT.&lt;/P&gt;&lt;P&gt;&lt;/P&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; TOP OF PAGE                                                         *&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;TOP-OF-PAGE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*---Standard header&lt;/P&gt;&lt;P&gt;  PERFORM STD_TOP_OF_PAGE CHANGING SY-TITLE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  F_GET_INPUT_DATA&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM F_GET_INPUT_DATA .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*-- Opening Dataset&lt;/P&gt;&lt;P&gt;    PERFORM F_FILE_IO&lt;/P&gt;&lt;P&gt;      USING p_file 'I'.&lt;/P&gt;&lt;P&gt;    IF SY-SUBRC = 0 AND V_RC = 0.&lt;/P&gt;&lt;P&gt;*--  Read legacy input file into internal table for furthing processing&lt;/P&gt;&lt;P&gt;      DO.&lt;/P&gt;&lt;P&gt;        CLEAR IT_INFILE.&lt;/P&gt;&lt;P&gt;        READ DATASET p_file INTO IT_INFILE.&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;&lt;/P&gt;&lt;P&gt;          APPEND IT_INFILE.&lt;/P&gt;&lt;P&gt;          CLEAR IT_INFILE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        ENDIF.&lt;/P&gt;&lt;P&gt;        ADD 1 TO V_COUNT_INFILE.&lt;/P&gt;&lt;P&gt;      ENDDO.&lt;/P&gt;&lt;P&gt;*-- Determine if input file has data&lt;/P&gt;&lt;P&gt;    IF V_COUNT_INFILE EQ 0.&lt;/P&gt;&lt;P&gt;      MESSAGE A001(ZFI).&lt;/P&gt;&lt;P&gt;      EXIT.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;*-- Closing dataset&lt;/P&gt;&lt;P&gt;    PERFORM F_FILE_IO&lt;/P&gt;&lt;P&gt;      USING p_file 'C'.&lt;/P&gt;&lt;P&gt;    IF SY-SUBRC &amp;lt;&amp;gt; 0 OR V_RC &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;P&gt;      MESSAGE I014 WITH V_MSG.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;  ELSE.&lt;/P&gt;&lt;P&gt;    MESSAGE I014 WITH V_MSG.&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;ENDFORM.                    " F_GET_INPUT_DATA&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  F_GET_LOCAL_DATA&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM F_GET_LOCAL_DATA .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  DATA:LV_FILNAM TYPE STRING.     "File name&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  LV_FILNAM = P_FILE.&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                = LV_FILNAM&lt;/P&gt;&lt;P&gt;            FILETYPE                = 'ASC'&lt;/P&gt;&lt;P&gt;       TABLES&lt;/P&gt;&lt;P&gt;            DATA_TAB                = IT_INFILE&lt;/P&gt;&lt;P&gt;       EXCEPTIONS&lt;/P&gt;&lt;P&gt;            FILE_OPEN_ERROR         = 1&lt;/P&gt;&lt;P&gt;            FILE_READ_ERROR         = 2&lt;/P&gt;&lt;P&gt;            NO_BATCH                = 3&lt;/P&gt;&lt;P&gt;            GUI_REFUSE_FILETRANSFER = 4&lt;/P&gt;&lt;P&gt;            INVALID_TYPE            = 5&lt;/P&gt;&lt;P&gt;            NO_AUTHORITY            = 6&lt;/P&gt;&lt;P&gt;            UNKNOWN_ERROR           = 7&lt;/P&gt;&lt;P&gt;            BAD_DATA_FORMAT         = 8&lt;/P&gt;&lt;P&gt;            HEADER_NOT_ALLOWED      = 9&lt;/P&gt;&lt;P&gt;            SEPARATOR_NOT_ALLOWED   = 10&lt;/P&gt;&lt;P&gt;            HEADER_TOO_LONG         = 11&lt;/P&gt;&lt;P&gt;            UNKNOWN_DP_ERROR        = 12&lt;/P&gt;&lt;P&gt;            ACCESS_DENIED           = 13&lt;/P&gt;&lt;P&gt;            DP_OUT_OF_MEMORY        = 14&lt;/P&gt;&lt;P&gt;            DISK_FULL               = 15&lt;/P&gt;&lt;P&gt;            DP_TIMEOUT              = 16&lt;/P&gt;&lt;P&gt;            OTHERS                  = 17.&lt;/P&gt;&lt;P&gt;  IF SY-SUBRC &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;P&gt;    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO&lt;/P&gt;&lt;P&gt;            WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;  CLEAR V_COUNT_INFILE.&lt;/P&gt;&lt;P&gt;  DESCRIBE TABLE IT_INFILE LINES V_COUNT_INFILE.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Determine if input file has data&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  IF V_COUNT_INFILE EQ 0.&lt;/P&gt;&lt;P&gt;    MESSAGE A001(ZFI).&lt;/P&gt;&lt;P&gt;    EXIT.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " F_GET_LOCAL_DATA&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  F_SPLIT_DATA&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM F_SPLIT_DATA .&lt;/P&gt;&lt;P&gt;  data lv_counter(9) type n.   " Counter Variable&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  LOOP AT IT_INFILE.&lt;/P&gt;&lt;P&gt;  IF IT_INFILE+0(1) = C_H.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    SPLIT IT_INFILE AT ',' INTO IT_HEAD_TRAI-rectype&lt;/P&gt;&lt;P&gt;                                IT_HEAD_TRAI-intname&lt;/P&gt;&lt;P&gt;                                IT_HEAD_TRAI-datetime.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    APPEND it_head_trai.&lt;/P&gt;&lt;P&gt;    CLEAR it_head_trai.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    IF IT_INFILE+0(1) = C_I.&lt;/P&gt;&lt;P&gt;      SPLIT IT_INFILE AT ',' INTO IT_INDATA-RECTYPE&lt;/P&gt;&lt;P&gt;                                  IT_INDATA-BUKRS&lt;/P&gt;&lt;P&gt;                                  IT_INDATA-BLDAT&lt;/P&gt;&lt;P&gt;                                  IT_INDATA-XBLNR&lt;/P&gt;&lt;P&gt;                                  IT_INDATA-BKTXT.&lt;/P&gt;&lt;P&gt;      lv_counter = ( lv_counter + 1 ).&lt;/P&gt;&lt;P&gt;      move lv_counter to it_indata-counter.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*-- Move Company Codes into Company Code Internal table IT_COMCODE&lt;/P&gt;&lt;P&gt;      IF NOT IT_INDATA-BUKRS IS INITIAL.&lt;/P&gt;&lt;P&gt;        MOVE IT_INDATA-BUKRS TO IT_COMCODE-BUKRS.&lt;/P&gt;&lt;P&gt;        APPEND IT_COMCODE.&lt;/P&gt;&lt;P&gt;        CLEAR IT_COMCODE.&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      APPEND IT_INDATA.&lt;/P&gt;&lt;P&gt;      CLEAR IT_INDATA.&lt;/P&gt;&lt;P&gt;&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;    IF IT_INFILE+0(1) = C_V.&lt;/P&gt;&lt;P&gt;      SPLIT IT_INFILE AT ',' INTO IT_INDATA-RECTYPE&lt;/P&gt;&lt;P&gt;                                  IT_INDATA-LIFNR&lt;/P&gt;&lt;P&gt;                                  IT_INDATA-WRBTR&lt;/P&gt;&lt;P&gt;                                  IT_INDATA-WMWST&lt;/P&gt;&lt;P&gt;                                  IT_INDATA-ZLSCH&lt;/P&gt;&lt;P&gt;                                  IT_INDATA-SGTXT.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*-- Move Vendor Numbers into Vendor number Internal table IT_VEND&lt;/P&gt;&lt;P&gt;      IF NOT IT_INDATA-LIFNR IS INITIAL.&lt;/P&gt;&lt;P&gt;        MOVE IT_INDATA-LIFNR+0(10) TO IT_VEND-LIFNR.&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         = IT_VEND-LIFNR&lt;/P&gt;&lt;P&gt;         IMPORTING&lt;/P&gt;&lt;P&gt;           OUTPUT        = IT_VEND-LIFNR.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        APPEND IT_VEND.&lt;/P&gt;&lt;P&gt;        CLEAR IT_VEND.&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      move lv_counter to it_indata-counter.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      APPEND IT_INDATA.&lt;/P&gt;&lt;P&gt;      CLEAR IT_INDATA.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    IF IT_INFILE+0(1) = C_L.&lt;/P&gt;&lt;P&gt;      SPLIT IT_INFILE AT ',' INTO IT_INDATA-RECTYPE&lt;/P&gt;&lt;P&gt;                                  IT_INDATA-HKONT&lt;/P&gt;&lt;P&gt;                                  IT_INDATA-WRBTR&lt;/P&gt;&lt;P&gt;                                  IT_INDATA-KOSTL&lt;/P&gt;&lt;P&gt;                                  IT_INDATA-AUFNR&lt;/P&gt;&lt;P&gt;                                  IT_INDATA-SGTXT.&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         = IT_INDATA-HKONT&lt;/P&gt;&lt;P&gt;     IMPORTING&lt;/P&gt;&lt;P&gt;       OUTPUT        = IT_INDATA-HKONT.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      move lv_counter to it_indata-counter.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*-- Move GL Accounts into GL Account Internal table IT_GL&lt;/P&gt;&lt;P&gt;      IF NOT IT_INDATA-HKONT IS INITIAL.&lt;/P&gt;&lt;P&gt;        MOVE IT_INDATA-HKONT TO IT_GL-HKONT.&lt;/P&gt;&lt;P&gt;        APPEND IT_GL.&lt;/P&gt;&lt;P&gt;        CLEAR IT_GL.&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*-- Move Cost Centers into Cost Center Internal table IT_CC&lt;/P&gt;&lt;P&gt;      IF NOT IT_INDATA-KOSTL IS INITIAL.&lt;/P&gt;&lt;P&gt;        MOVE IT_INDATA-KOSTL TO IT_CC-KOSTL.&lt;/P&gt;&lt;P&gt;        APPEND IT_CC.&lt;/P&gt;&lt;P&gt;        CLEAR IT_CC.&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*-- Move Internal Orders into Internal Order Internal table IT_IO&lt;/P&gt;&lt;P&gt;      IF NOT IT_INDATA-AUFNR IS INITIAL.&lt;/P&gt;&lt;P&gt;        MOVE IT_INDATA-AUFNR TO IT_IO-AUFNR.&lt;/P&gt;&lt;P&gt;        APPEND IT_IO.&lt;/P&gt;&lt;P&gt;        CLEAR IT_IO.&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      APPEND IT_INDATA.&lt;/P&gt;&lt;P&gt;      CLEAR IT_INDATA.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  IF IT_INFILE+0(1) = C_T.&lt;/P&gt;&lt;P&gt;    SPLIT IT_INFILE AT ',' INTO IT_HEAD_TRAI-rectype&lt;/P&gt;&lt;P&gt;                                IT_HEAD_TRAI-intname&lt;/P&gt;&lt;P&gt;                                IT_HEAD_TRAI-datetime.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    APPEND it_head_trai.&lt;/P&gt;&lt;P&gt;    CLEAR it_head_trai.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt;ENDFORM.                    " F_SPLIT_DATA&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  F_SELECT_DATA&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM F_SELECT_DATA .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*-- Fetch compnay codes based on the internal table IT_COMCODE&lt;/P&gt;&lt;P&gt;    IF NOT IT_COMCODE[] IS INITIAL.&lt;/P&gt;&lt;P&gt;      DELETE ADJACENT DUPLICATES FROM IT_COMCODE COMPARING BUKRS.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      SELECT BUKRS&lt;/P&gt;&lt;P&gt;             WAERS&lt;/P&gt;&lt;P&gt;        INTO TABLE IT_T001&lt;/P&gt;&lt;P&gt;        FROM T001&lt;/P&gt;&lt;P&gt;        FOR ALL ENTRIES IN IT_COMCODE&lt;/P&gt;&lt;P&gt;        WHERE BUKRS = IT_COMCODE-BUKRS.&lt;/P&gt;&lt;P&gt;      IF SY-SUBRC &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;P&gt;        MESSAGE I014 WITH 'Invalid Company code'(E01).&lt;/P&gt;&lt;P&gt;      ELSE.&lt;/P&gt;&lt;P&gt;        SORT IT_T001 BY BUKRS.&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;*-- Fetch Cost Centers based on the internal table IT_CC&lt;/P&gt;&lt;P&gt;    if not it_cc[] is initial.&lt;/P&gt;&lt;P&gt;      DELETE ADJACENT DUPLICATES FROM IT_CC COMPARING KOSTL.&lt;/P&gt;&lt;P&gt;      SELECT kostl&lt;/P&gt;&lt;P&gt;             bukrs&lt;/P&gt;&lt;P&gt;        FROM csks&lt;/P&gt;&lt;P&gt;        INTO TABLE it_csks&lt;/P&gt;&lt;P&gt;        for all entries in it_cc&lt;/P&gt;&lt;P&gt;        WHERE kostl = it_cc-kostl.&lt;/P&gt;&lt;P&gt;      if sy-subrc = 0.&lt;/P&gt;&lt;P&gt;        sort it_csks by kostl bukrs.&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;*-- Fetch Internal Orders based on the internal table IT_IO&lt;/P&gt;&lt;P&gt;    IF NOT IT_IO[] IS INITIAL.&lt;/P&gt;&lt;P&gt;      DELETE ADJACENT DUPLICATES FROM IT_IO COMPARING AUFNR.&lt;/P&gt;&lt;P&gt;      SELECT aufnr&lt;/P&gt;&lt;P&gt;             bukrs&lt;/P&gt;&lt;P&gt;        FROM coas&lt;/P&gt;&lt;P&gt;        INTO TABLE it_coas&lt;/P&gt;&lt;P&gt;        FOR ALL ENTRIES IN IT_IO&lt;/P&gt;&lt;P&gt;        WHERE AUFNR = IT_IO-AUFNR.&lt;/P&gt;&lt;P&gt;      if sy-subrc = 0.&lt;/P&gt;&lt;P&gt;        sort it_coas by aufnr bukrs.&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;*-- Fetch G/L accounts based on the internal table IT_GL&lt;/P&gt;&lt;P&gt;    IF NOT IT_GL[] IS INITIAL.&lt;/P&gt;&lt;P&gt;      DELETE ADJACENT DUPLICATES FROM IT_GL COMPARING HKONT.&lt;/P&gt;&lt;P&gt;      select bukrs&lt;/P&gt;&lt;P&gt;             saknr&lt;/P&gt;&lt;P&gt;        from skb1&lt;/P&gt;&lt;P&gt;        into table it_skb1&lt;/P&gt;&lt;P&gt;        for all entries in it_gl&lt;/P&gt;&lt;P&gt;        where saknr = it_gl-HKONT.&lt;/P&gt;&lt;P&gt;      if sy-subrc = 0.&lt;/P&gt;&lt;P&gt;        sort it_skb1 by bukrs saknr.&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;*-- Selecting vendor numbers based on the internal table IT_VEND&lt;/P&gt;&lt;P&gt;  IF NOT IT_VEND[] IS INITIAL.&lt;/P&gt;&lt;P&gt;    SORT IT_VEND BY LIFNR.&lt;/P&gt;&lt;P&gt;    DELETE ADJACENT DUPLICATES FROM IT_VEND COMPARING LIFNR.&lt;/P&gt;&lt;P&gt;      SELECT A~LIFNR&lt;/P&gt;&lt;P&gt;             B~BUKRS&lt;/P&gt;&lt;P&gt;         FROM LFA1 AS A JOIN LFB1 AS B&lt;/P&gt;&lt;P&gt;         ON A&lt;SUB&gt;LIFNR = B&lt;/SUB&gt;LIFNR&lt;/P&gt;&lt;P&gt;         INTO TABLE IT_LFA1&lt;/P&gt;&lt;P&gt;         FOR ALL ENTRIES IN IT_VEND&lt;/P&gt;&lt;P&gt;         WHERE a~LIFNR = IT_VEND-LIFNR.&lt;/P&gt;&lt;P&gt;      if sy-subrc = 0.&lt;/P&gt;&lt;P&gt;        sort it_lfa1 by LIFNR BUKRS.&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.                    " F_SELECT_DATA&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  f_validate_data&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM f_validate_data .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  data:&lt;/P&gt;&lt;P&gt;        lv_vend_amt(17)     type c,          " For Vendor Amount&lt;/P&gt;&lt;P&gt;        lv_lineitem_amt(17) type c,          " For Line Item Amount&lt;/P&gt;&lt;P&gt;        l_vend_amt          type wrbtr,&lt;/P&gt;&lt;P&gt;        l_lineitem_amt      type wrbtr,&lt;/P&gt;&lt;P&gt;        Lv_ERRFLAG          TYPE C,          " Error flag&lt;/P&gt;&lt;P&gt;        lv_head_error       type c,          " Header Error Flag&lt;/P&gt;&lt;P&gt;        lv_tabix            type sy-tabix,   " local sy-tabix&lt;/P&gt;&lt;P&gt;        lv_header_tabix     type sy-tabix,   " sy-tabix for header rec&lt;/P&gt;&lt;P&gt;        LV_BUKRS            TYPE T001-BUKRS. " for Company code&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  loop at it_indata.&lt;/P&gt;&lt;P&gt;    LV_TABIX = SY-TABIX.&lt;/P&gt;&lt;P&gt;    at new counter.&lt;/P&gt;&lt;P&gt;      READ TABLE it_indata INDEX LV_TABIX.&lt;/P&gt;&lt;P&gt;      CLEAR IT_T001.&lt;/P&gt;&lt;P&gt;      read table it_t001 with key bukrs = it_indata-bukrs binary search.&lt;/P&gt;&lt;P&gt;      IF SY-SUBRC &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;P&gt;        it_indata-errmsg = text-006.&lt;/P&gt;&lt;P&gt;        Lv_ERRFLAG = C_X.&lt;/P&gt;&lt;P&gt;        lv_head_error = C_X.&lt;/P&gt;&lt;P&gt;*-- Modify thge workarea record with the error message&lt;/P&gt;&lt;P&gt;        MODIFY IT_INDATA index LV_TABIX TRANSPORTING errmsg.&lt;/P&gt;&lt;P&gt;      ELSE.&lt;/P&gt;&lt;P&gt;        MOVE it_indata-bukrs TO LV_BUKRS.&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;P&gt;    endat.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*-- If the record type is vendor 'V'&lt;/P&gt;&lt;P&gt;    if it_indata-rectype = c_v.&lt;/P&gt;&lt;P&gt;      if lv_head_error &amp;lt;&amp;gt; c_x.&lt;/P&gt;&lt;P&gt;*-- Check for Record type "V" if the vendor line item amount is not&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  equal to zero or negative.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;       lv_vend_amt = ( it_indata-wrbtr + it_indata-wmwst ).&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;        lv_vend_amt = it_indata-wrbtr.&lt;/P&gt;&lt;P&gt;        if lv_vend_amt is initial or lv_vend_amt cs '-'.&lt;/P&gt;&lt;P&gt;          Lv_ERRFLAG = c_x.&lt;/P&gt;&lt;P&gt;          it_indata-errmsg = text-007.&lt;/P&gt;&lt;P&gt;          MODIFY IT_INDATA index LV_TABIX TRANSPORTING errmsg.&lt;/P&gt;&lt;P&gt;        endif.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        clear it_lfa1.&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         = it_indata-LIFNR+0(10)&lt;/P&gt;&lt;P&gt;         IMPORTING&lt;/P&gt;&lt;P&gt;           OUTPUT        = it_indata-LIFNR+0(10).&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*-- Check for the vendor number&lt;/P&gt;&lt;P&gt;        read table it_lfa1 with key LIFNR = it_indata-LIFNR+0(10)&lt;/P&gt;&lt;P&gt;                                    bukrs = lv_bukrs&lt;/P&gt;&lt;P&gt;                                    binary search.&lt;/P&gt;&lt;P&gt;        if sy-subrc &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;P&gt;          Lv_ERRFLAG = c_x.&lt;/P&gt;&lt;P&gt;          it_indata-errmsg = text-008.&lt;/P&gt;&lt;P&gt;          MODIFY IT_INDATA index LV_TABIX TRANSPORTING errmsg.&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;*-- If the record type is line item 'L'&lt;/P&gt;&lt;P&gt;    if it_indata-rectype = c_l.&lt;/P&gt;&lt;P&gt;      if lv_head_error &amp;lt;&amp;gt; c_x.&lt;/P&gt;&lt;P&gt;*-- Add the line item amounts&lt;/P&gt;&lt;P&gt;      lv_lineitem_amt = ( lv_lineitem_amt + it_indata-wrbtr ).&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*-- Check for the cost center&lt;/P&gt;&lt;P&gt;      clear it_csks.&lt;/P&gt;&lt;P&gt;      IF NOT it_indata-kostl IS INITIAL.&lt;/P&gt;&lt;P&gt;        read table it_csks with key kostl = it_indata-kostl&lt;/P&gt;&lt;P&gt;                                    bukrs = LV_BUKRS&lt;/P&gt;&lt;P&gt;                                    binary search.&lt;/P&gt;&lt;P&gt;        if sy-subrc &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;P&gt;          Lv_ERRFLAG = c_x.&lt;/P&gt;&lt;P&gt;        it_indata-errmsg = text-009.&lt;/P&gt;&lt;P&gt;        MODIFY IT_INDATA index LV_TABIX TRANSPORTING errmsg.&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;*-- Check for the Internal Order&lt;/P&gt;&lt;P&gt;      clear it_coas.&lt;/P&gt;&lt;P&gt;      IF NOT it_indata-aufnr IS INITIAL.&lt;/P&gt;&lt;P&gt;        read table it_coas with key aufnr = it_indata-aufnr&lt;/P&gt;&lt;P&gt;                                    bukrs = LV_BUKRS&lt;/P&gt;&lt;P&gt;                                    binary search.&lt;/P&gt;&lt;P&gt;        if sy-subrc &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;P&gt;          Lv_ERRFLAG = c_x.&lt;/P&gt;&lt;P&gt;          it_indata-errmsg = text-010.&lt;/P&gt;&lt;P&gt;          MODIFY IT_INDATA index LV_TABIX TRANSPORTING errmsg.&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;*-- Check for the GL Account&lt;/P&gt;&lt;P&gt;      clear it_skb1.&lt;/P&gt;&lt;P&gt;      read table it_skb1 with key bukrs = LV_BUKRS&lt;/P&gt;&lt;P&gt;                                  saknr = it_indata-hkont&lt;/P&gt;&lt;P&gt;                                  binary search.&lt;/P&gt;&lt;P&gt;      if sy-subrc &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;P&gt;        Lv_ERRFLAG = c_x.&lt;/P&gt;&lt;P&gt;        it_indata-errmsg = text-011.&lt;/P&gt;&lt;P&gt;        MODIFY IT_INDATA index LV_TABIX TRANSPORTING errmsg.&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;    at end of counter.&lt;/P&gt;&lt;P&gt;      READ TABLE it_indata INDEX LV_TABIX.&lt;/P&gt;&lt;P&gt;*-- Check for the Vendor amount and total Line Item Amounts, if not same&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  modify with error message&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      condense lv_vend_amt.&lt;/P&gt;&lt;P&gt;      condense lv_lineitem_amt.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     if lv_vend_amt &amp;lt;&amp;gt; lv_lineitem_amt.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;        l_vend_amt = lv_vend_amt.&lt;/P&gt;&lt;P&gt;        l_lineitem_amt = lv_lineitem_amt.&lt;/P&gt;&lt;P&gt;      if l_vend_amt &amp;lt;&amp;gt; l_lineitem_amt.&lt;/P&gt;&lt;P&gt;        Lv_ERRFLAG = c_x.&lt;/P&gt;&lt;P&gt;        it_indata-errmsg = text-012.&lt;/P&gt;&lt;P&gt;        MODIFY IT_INDATA index LV_TABIX TRANSPORTING errmsg.&lt;/P&gt;&lt;P&gt;      endif.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*-- At end of counter field modify the header record with the error flag&lt;/P&gt;&lt;P&gt;      if lv_errflag = c_x.&lt;/P&gt;&lt;P&gt;        READ TABLE IT_INDATA WITH KEY COUNTER = IT_INDATA-COUNTER.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        it_indata-errflag = lv_errflag.&lt;/P&gt;&lt;P&gt;        MODIFY IT_INDATA INDEX SY-TABIX.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      endif.&lt;/P&gt;&lt;P&gt;      CLEAR: Lv_ERRFLAG, lv_vend_amt, lv_lineitem_amt, lv_bukrs,&lt;/P&gt;&lt;P&gt;             lv_head_error,&lt;/P&gt;&lt;P&gt;             l_vend_amt, l_lineitem_amt.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    endat.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    clear: it_indata, LV_TABIX.&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.                    " f_validate_data&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  f_populate_RFBIBL00&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 f_populate_RFBIBL00 .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data: LV_TABIX       TYPE SY-TABIX.     " Variable dor SY-TABIX&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CONCATENATE '/int/' sy-sysid '/' sy-mandt '/in/REQ1231_CT_SAPAP.dat'&lt;/P&gt;&lt;P&gt;                                                        INTO v_file.&lt;/P&gt;&lt;P&gt;  CONDENSE v_file NO-GAPS.&lt;/P&gt;&lt;P&gt;*--  OPEN DATASET v_file FOR OUTPUT IN TEXT MODE ENCODING DEFAULT.&lt;/P&gt;&lt;P&gt;    PERFORM F_FILE_IO&lt;/P&gt;&lt;P&gt;      USING v_file 'O'.&lt;/P&gt;&lt;P&gt;  IF V_RC IS INITIAL AND SYST-SUBRC IS INITIAL.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    LOOP AT IT_INDATA.&lt;/P&gt;&lt;P&gt;     lv_tabix = sy-tabix.&lt;/P&gt;&lt;P&gt;     at first.&lt;/P&gt;&lt;P&gt;*-- To populate BGR00 structure&lt;/P&gt;&lt;P&gt;       PERFORM f_populate_bgr00.&lt;/P&gt;&lt;P&gt;       TRANSFER bgr00 TO v_file.&lt;/P&gt;&lt;P&gt;     endat.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;     at new counter.&lt;/P&gt;&lt;P&gt;       read table it_indata index lv_tabix.&lt;/P&gt;&lt;P&gt;       clear v_bukrs.&lt;/P&gt;&lt;P&gt;       wa_indata = it_indata.&lt;/P&gt;&lt;P&gt;       move wa_indata-bukrs to v_bukrs.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*-- To populate BBKPF structure&lt;/P&gt;&lt;P&gt;        PERFORM f_populate_bbkpf.&lt;/P&gt;&lt;P&gt;        TRANSFER bbkpf TO v_file.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;     endat.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      wa_indata = it_indata.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*-- To populate BBSEG structure for vendor line item&lt;/P&gt;&lt;P&gt;      if it_indata-rectype = c_v.&lt;/P&gt;&lt;P&gt;        PERFORM f_populate_vend_bbseg.&lt;/P&gt;&lt;P&gt;        TRANSFER bbseg TO v_file.&lt;/P&gt;&lt;P&gt;      endif.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*-- To populate BBSEG structure for GL line item&lt;/P&gt;&lt;P&gt;      if it_indata-rectype = c_l.&lt;/P&gt;&lt;P&gt;        PERFORM f_populate_lineitem_bbseg.&lt;/P&gt;&lt;P&gt;        TRANSFER bbseg TO v_file.&lt;/P&gt;&lt;P&gt;      endif.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    ENDLOOP.&lt;/P&gt;&lt;P&gt;*-- Closing the dataset&lt;/P&gt;&lt;P&gt;    PERFORM F_FILE_IO&lt;/P&gt;&lt;P&gt;      USING v_file 'C'.&lt;/P&gt;&lt;P&gt;    IF NOT V_RC IS INITIAL OR NOT SYST-SUBRC IS INITIAL.&lt;/P&gt;&lt;P&gt;      MESSAGE I014 WITH V_MSG.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;  ELSE.&lt;/P&gt;&lt;P&gt;    MESSAGE I014 WITH V_MSG.&lt;/P&gt;&lt;P&gt;  endif.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " f_populate_RFBIBL00&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  f_populate_bgr00&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;      Populate BGR00&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 f_populate_bgr00 .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  PERFORM f_init_structures USING 'BGR00' c_nodata.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CLEAR v_sess.&lt;/P&gt;&lt;P&gt;  CONCATENATE c_sess sy-datum+4(4) INTO v_sess SEPARATED BY '-'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  bgr00-stype  = '0'.&lt;/P&gt;&lt;P&gt;  bgr00-group  = v_sess.&lt;/P&gt;&lt;P&gt;  bgr00-mandt  = sy-mandt.&lt;/P&gt;&lt;P&gt;  bgr00-usnam  = sy-uname.&lt;/P&gt;&lt;P&gt;  bgr00-start  = space.&lt;/P&gt;&lt;P&gt;  bgr00-xkeep  = 'X'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " f_populate_bgr00&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  f_init_structures&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;      Init Structures&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM f_init_structures  USING tabname  LIKE dntab-tabname&lt;/P&gt;&lt;P&gt;                             i_nodata LIKE c_nodata.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    REFRESH it_nametab.&lt;/P&gt;&lt;P&gt;    CLEAR it_nametab.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    CALL FUNCTION 'NAMETAB_GET'&lt;/P&gt;&lt;P&gt;         EXPORTING&lt;/P&gt;&lt;P&gt;              langu          = sy-langu&lt;/P&gt;&lt;P&gt;              tabname        = tabname&lt;/P&gt;&lt;P&gt;         TABLES&lt;/P&gt;&lt;P&gt;              nametab        = it_nametab&lt;/P&gt;&lt;P&gt;         EXCEPTIONS&lt;/P&gt;&lt;P&gt;              no_texts_found = 1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    IF sy-subrc = 0.&lt;/P&gt;&lt;P&gt;      LOOP AT it_nametab.&lt;/P&gt;&lt;P&gt;        CLEAR v_char.&lt;/P&gt;&lt;P&gt;     CONCATENATE  it_nametab-tabname '-' it_nametab-fieldname INTO&lt;/P&gt;&lt;P&gt;v_char.&lt;/P&gt;&lt;P&gt;        ASSIGN (v_char) TO &amp;lt;f1&amp;gt;.&lt;/P&gt;&lt;P&gt;        &amp;lt;f1&amp;gt; = i_nodata.&lt;/P&gt;&lt;P&gt;      ENDLOOP.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " f_init_structures&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  f_populate_bbkpf&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;      Populate BBKPF&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 f_populate_bbkpf .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data: lv_bldat(8) type c.      " For Document Date&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  PERFORM f_init_structures USING 'BBKPF' c_nodata.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  read table it_t001 with key bukrs = wa_indata-bukrs binary search.&lt;/P&gt;&lt;P&gt;  if sy-subrc = 0.&lt;/P&gt;&lt;P&gt;    bbkpf-waers = it_t001-waers.&lt;/P&gt;&lt;P&gt;  endif.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*-- To post Header record.&lt;/P&gt;&lt;P&gt;    bbkpf-stype = '1'.&lt;/P&gt;&lt;P&gt;    bbkpf-tcode = C_TCODE.&lt;/P&gt;&lt;P&gt;    WRITE sy-datum TO BBKPF-BUDAT.&lt;/P&gt;&lt;P&gt;    concatenate&lt;/P&gt;&lt;P&gt;                wa_indata-bldat+0(2)&lt;/P&gt;&lt;P&gt;                wa_indata-bldat+2(2)&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;               wa_indata-bldat+0(2)&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;                wa_indata-bldat+4(4) into lv_bldat.&lt;/P&gt;&lt;P&gt;    WRITE lv_bldat TO BBKPF-BLDAT.&lt;/P&gt;&lt;P&gt;    bbkpf-blart = C_DOCTYPE.&lt;/P&gt;&lt;P&gt;    bbkpf-bukrs = wa_indata-bukrs.&lt;/P&gt;&lt;P&gt;    bbkpf-xblnr = wa_indata-xblnr+0(12).&lt;/P&gt;&lt;P&gt;    bbkpf-bktxt = wa_indata-bktxt.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " f_populate_bbkpf&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  f_populate_vend_bbseg&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;      Populate BBSEG for Vendor Line Item&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 f_populate_vend_bbseg .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  PERFORM f_init_structures USING 'BBSEG' c_nodata.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  bbseg-stype = '2'.&lt;/P&gt;&lt;P&gt;  bbseg-tbnam = 'BBSEG'.&lt;/P&gt;&lt;P&gt;  bbseg-newbs = '31'.          " Credit Entry&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  bbseg-newko = wa_indata-lifnr.&lt;/P&gt;&lt;P&gt;  BBSEG-WRBTR = wa_indata-WRBTR.&lt;/P&gt;&lt;P&gt;*-- Remove the below comment line if mapping is needed&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; BBSEG-WMWST = wa_indata-WMWST.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  BBSEG-WMWST = ' '.&lt;/P&gt;&lt;P&gt;  BBSEG-ZLSCH = 'C'.&lt;/P&gt;&lt;P&gt;  BBSEG-SGTXT = ''.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " f_populate_vend_bbseg&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  f_populate_lineitem_bbseg&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;      Populate BBSEG for GL Line Item&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 f_populate_lineitem_bbseg .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  PERFORM F_INIT_STRUCTURES USING 'BBSEG' C_NODATA.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  BBSEG-STYPE = '2'.&lt;/P&gt;&lt;P&gt;  BBSEG-TBNAM = 'BBSEG'.&lt;/P&gt;&lt;P&gt;  BBSEG-NEWBS = '40'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  BBSEG-NEWKO = wa_indata-HKONT.&lt;/P&gt;&lt;P&gt;  BBSEG-WRBTR = wa_indata-WRBTR.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  if not wa_indata-KOSTL is initial.&lt;/P&gt;&lt;P&gt;    BBSEG-KOSTL = wa_indata-KOSTL.&lt;/P&gt;&lt;P&gt;  endif.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  if not wa_indata-aufnr is initial.&lt;/P&gt;&lt;P&gt;    BBSEG-AUFNR = wa_indata-aufnr.&lt;/P&gt;&lt;P&gt;  endif.&lt;/P&gt;&lt;P&gt;*-- Remove the below comment line if mapping is needed&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; BBSEG-SGTXT = wa_indata-SGTXT.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " f_populate_lineitem_bbseg&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  F_SUBMIT_RFBIBL00&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;      Submit RFBIBL00 program&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 F_SUBMIT_RFBIBLOO .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*-- Submitting the file for RFBIBL00&lt;/P&gt;&lt;P&gt;  SUBMIT RFBIBL00 WITH DS_NAME = V_FILE&lt;/P&gt;&lt;P&gt;                  WITH CALLMODE = 'B'&lt;/P&gt;&lt;P&gt;                  WITH MAX_COMM = '9999'&lt;/P&gt;&lt;P&gt;                  WITH XINF = 'X'&lt;/P&gt;&lt;P&gt;                  AND RETURN.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*-- Process the session if created successfully&lt;/P&gt;&lt;P&gt;  IF SY-SUBRC = 0.&lt;/P&gt;&lt;P&gt;    SUBMIT RSBDCSUB  WITH MAPPE    = V_SESS&lt;/P&gt;&lt;P&gt;                     WITH Z_VERARB = 'X'&lt;/P&gt;&lt;P&gt;                     WITH FEHLER = ''&lt;/P&gt;&lt;P&gt;                     EXPORTING LIST TO MEMORY&lt;/P&gt;&lt;P&gt;                     AND RETURN.&lt;/P&gt;&lt;P&gt;    IF SY-SUBRC  = 0.&lt;/P&gt;&lt;P&gt;*-- Displaying the sessions data&lt;/P&gt;&lt;P&gt;      PERFORM F_SESSION_LIST.&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.                    " F_SUBMIT_RFBIBLOO&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  F_SESSION_LIST&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;      To process Session List&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 F_SESSION_LIST .&lt;/P&gt;&lt;P&gt;  DATA:LV_UCOMM LIKE SY-UCOMM. "usercommand&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CALL FUNCTION 'LIST_FROM_MEMORY'&lt;/P&gt;&lt;P&gt;       TABLES&lt;/P&gt;&lt;P&gt;            LISTOBJECT = IT_LIST&lt;/P&gt;&lt;P&gt;       EXCEPTIONS&lt;/P&gt;&lt;P&gt;            NOT_FOUND  = 1&lt;/P&gt;&lt;P&gt;            OTHERS     = 2.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  IF NOT IT_LIST[] IS INITIAL.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    CALL FUNCTION 'DISPLAY_LIST'&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;EXPORTING&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  FULLSCREEN                  = 'X'&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  CALLER_HANDLES_EVENTS       =&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;     IMPORTING&lt;/P&gt;&lt;P&gt;       USER_COMMAND                =  LV_UCOMM&lt;/P&gt;&lt;P&gt;      TABLES&lt;/P&gt;&lt;P&gt;        LISTOBJECT                  = IT_LIST&lt;/P&gt;&lt;P&gt;   EXCEPTIONS&lt;/P&gt;&lt;P&gt;     EMPTY_LIST                  = 1&lt;/P&gt;&lt;P&gt;     OTHERS                      = 2&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;ENDFORM.                    " F_SESSION_LIST&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  f_download_error_file&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;      Download Error File&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 f_download_error_file .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*-- If sequential file is selected&lt;/P&gt;&lt;P&gt;  IF R_AIX = 'X'.&lt;/P&gt;&lt;P&gt;*-- Form to get  data for apllication server&lt;/P&gt;&lt;P&gt;    PERFORM F_DOWNLOAD_TO_APP.&lt;/P&gt;&lt;P&gt;  ELSE.&lt;/P&gt;&lt;P&gt;*-- Form to get data for presentation server&lt;/P&gt;&lt;P&gt;    PERFORM F_DOWNLOAD_TO_PRE.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " f_download_error_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  F_DOWNLOAD_TO_PRE&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;      Download to Presentation Server&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 F_DOWNLOAD_TO_PRE .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  DATA:LV_FILNAM TYPE STRING.     "File name&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  LV_FILNAM = P_ERROR.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CALL FUNCTION 'GUI_DOWNLOAD'&lt;/P&gt;&lt;P&gt;  EXPORTING&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  BIN_FILESIZE                    =&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    FILENAME                        = LV_FILNAM&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  FILETYPE                        = 'ASC'&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  TABLES&lt;/P&gt;&lt;P&gt;    DATA_TAB                        = IT_ERROR&lt;/P&gt;&lt;P&gt; EXCEPTIONS&lt;/P&gt;&lt;P&gt;   FILE_WRITE_ERROR                = 1&lt;/P&gt;&lt;P&gt;   NO_BATCH                        = 2&lt;/P&gt;&lt;P&gt;   GUI_REFUSE_FILETRANSFER         = 3&lt;/P&gt;&lt;P&gt;   INVALID_TYPE                    = 4&lt;/P&gt;&lt;P&gt;   NO_AUTHORITY                    = 5&lt;/P&gt;&lt;P&gt;   UNKNOWN_ERROR                   = 6&lt;/P&gt;&lt;P&gt;   HEADER_NOT_ALLOWED              = 7&lt;/P&gt;&lt;P&gt;   SEPARATOR_NOT_ALLOWED           = 8&lt;/P&gt;&lt;P&gt;   FILESIZE_NOT_ALLOWED            = 9&lt;/P&gt;&lt;P&gt;   HEADER_TOO_LONG                 = 10&lt;/P&gt;&lt;P&gt;   DP_ERROR_CREATE                 = 11&lt;/P&gt;&lt;P&gt;   DP_ERROR_SEND                   = 12&lt;/P&gt;&lt;P&gt;   DP_ERROR_WRITE                  = 13&lt;/P&gt;&lt;P&gt;   UNKNOWN_DP_ERROR                = 14&lt;/P&gt;&lt;P&gt;   ACCESS_DENIED                   = 15&lt;/P&gt;&lt;P&gt;   DP_OUT_OF_MEMORY                = 16&lt;/P&gt;&lt;P&gt;   DISK_FULL                       = 17&lt;/P&gt;&lt;P&gt;   DP_TIMEOUT                      = 18&lt;/P&gt;&lt;P&gt;   FILE_NOT_FOUND                  = 19&lt;/P&gt;&lt;P&gt;   DATAPROVIDER_EXCEPTION          = 20&lt;/P&gt;&lt;P&gt;   CONTROL_FLUSH_ERROR             = 21&lt;/P&gt;&lt;P&gt;   OTHERS                          = 22&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 ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO&lt;/P&gt;&lt;P&gt;         WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " F_DOWNLOAD_TO_PRE&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  f_modify_screen&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;      Modify Screen&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 f_modify_screen .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*-- Use default values&lt;/P&gt;&lt;P&gt;  IF sy-slset IS INITIAL.&lt;/P&gt;&lt;P&gt;    IF r_aix = 'X'.&lt;/P&gt;&lt;P&gt;      p_file  = '/int/D01/030/in/LPAD1231SAP'.&lt;/P&gt;&lt;P&gt;      p_error = '/int/D01/030/out/REQ1231_ERRORS'.&lt;/P&gt;&lt;P&gt;    ELSE.&lt;/P&gt;&lt;P&gt;      p_file  = 'C:\LPAD1231SAP.TXT'.&lt;/P&gt;&lt;P&gt;      p_error = 'C:\REQ1231_ERRORS.TXT'.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;*-- modify the screen&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; IF r_pc = 'X'.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   LOOP AT SCREEN.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     IF screen-group1 = 'Z1' .&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     p_file  = 'C:\LPAD1231SAP.TXT'.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     p_error = 'C:\REQ1231_ERRORS.TXT'.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     ELSE.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     p_file  = 'LPAD1231SAP.TXT'.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     p_error = 'REQ1231_ERRORS.TXT'.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     ENDIF.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     MODIFY SCREEN.&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; ENDIF.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " f_modify_screen&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  f_validate_file&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;      Validate File&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;     f_file&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     f_aix&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 f_validate_file  USING    f_file TYPE rlgrap-filename&lt;/P&gt;&lt;P&gt;                               f_aix TYPE any.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*-- Get the current value for the parameter&lt;/P&gt;&lt;P&gt;  PERFORM f_get_current_value USING f_aix.&lt;/P&gt;&lt;P&gt;  IF f_aix IS INITIAL.&lt;/P&gt;&lt;P&gt;    PERFORM f_get_local_file_name USING f_file .&lt;/P&gt;&lt;P&gt;  ELSE.&lt;/P&gt;&lt;P&gt;    MESSAGE i000 WITH&lt;/P&gt;&lt;P&gt;    'File Browsing not supported for Application server'(m09).&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " f_validate_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  f_get_current_value&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;      Get Current values&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;P_F_AIX  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 f_get_current_value  USING    f_unix TYPE any.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  DATA: BEGIN OF i_dynpfields OCCURS 0.&lt;/P&gt;&lt;P&gt;          INCLUDE STRUCTURE dynpread.&lt;/P&gt;&lt;P&gt;  DATA: END OF i_dynpfields.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CLEAR i_dynpfields.&lt;/P&gt;&lt;P&gt;  REFRESH i_dynpfields.&lt;/P&gt;&lt;P&gt;  i_dynpfields-fieldname = 'R_AIX'.&lt;/P&gt;&lt;P&gt;  APPEND i_dynpfields.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CALL FUNCTION 'DYNP_VALUES_READ'&lt;/P&gt;&lt;P&gt;    EXPORTING&lt;/P&gt;&lt;P&gt;      dyname               = sy-cprog&lt;/P&gt;&lt;P&gt;      dynumb               = sy-dynnr&lt;/P&gt;&lt;P&gt;    TABLES&lt;/P&gt;&lt;P&gt;      dynpfields           = i_dynpfields&lt;/P&gt;&lt;P&gt;    EXCEPTIONS&lt;/P&gt;&lt;P&gt;      invalid_abapworkarea = 1&lt;/P&gt;&lt;P&gt;      invalid_dynprofield  = 2&lt;/P&gt;&lt;P&gt;      invalid_dynproname   = 3&lt;/P&gt;&lt;P&gt;      invalid_dynpronummer = 4&lt;/P&gt;&lt;P&gt;      invalid_request      = 5&lt;/P&gt;&lt;P&gt;      no_fielddescription  = 6&lt;/P&gt;&lt;P&gt;      invalid_parameter    = 7&lt;/P&gt;&lt;P&gt;      undefind_error       = 8&lt;/P&gt;&lt;P&gt;      double_conversion    = 9&lt;/P&gt;&lt;P&gt;      stepl_not_found      = 10&lt;/P&gt;&lt;P&gt;      OTHERS               = 11.&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 i000 WITH 'Unable to read the selection screen values'(m08).&lt;/P&gt;&lt;P&gt;  ELSE.&lt;/P&gt;&lt;P&gt;    READ TABLE i_dynpfields INDEX 1.&lt;/P&gt;&lt;P&gt;    IF sy-subrc = 0.&lt;/P&gt;&lt;P&gt;      MOVE i_dynpfields-fieldvalue TO r_aix.&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.                    " f_get_current_value&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  f_get_local_file_name&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;      get local file name&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM f_get_local_file_name  USING    f_file TYPE rlgrap-filename.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CALL FUNCTION 'KD_GET_FILENAME_ON_F4'&lt;/P&gt;&lt;P&gt;    CHANGING&lt;/P&gt;&lt;P&gt;      file_name     = f_file&lt;/P&gt;&lt;P&gt;    EXCEPTIONS&lt;/P&gt;&lt;P&gt;      mask_too_long = 1&lt;/P&gt;&lt;P&gt;      OTHERS        = 2.&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 i000 WITH 'Error in getting filename'(m07).&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;ENDFORM.                    " f_get_local_file_name&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  f_validate_error_file&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;      Validate error file&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 f_validate_error_file  USING    f_error TYPE rlgrap-filename&lt;/P&gt;&lt;P&gt;                                     f_aix TYPE any.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*get the current value for the parameter&lt;/P&gt;&lt;P&gt;  PERFORM f_get_current_value USING f_aix.&lt;/P&gt;&lt;P&gt;  IF f_aix IS INITIAL.&lt;/P&gt;&lt;P&gt;    PERFORM f_get_local_error_file_name USING f_error .&lt;/P&gt;&lt;P&gt;  ELSE.&lt;/P&gt;&lt;P&gt;    MESSAGE i000 WITH&lt;/P&gt;&lt;P&gt;    'File Browsing not supported for Application server'(m09).&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " f_validate_error_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  f_get_local_error_file_name&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;      Get Error file name&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     --&amp;gt;P_F_ERROR  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 f_get_local_error_file_name  USING    f_error TYPE rlgrap-filename.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CALL FUNCTION 'KD_GET_FILENAME_ON_F4'&lt;/P&gt;&lt;P&gt;    CHANGING&lt;/P&gt;&lt;P&gt;      file_name     = f_error&lt;/P&gt;&lt;P&gt;    EXCEPTIONS&lt;/P&gt;&lt;P&gt;      mask_too_long = 1&lt;/P&gt;&lt;P&gt;      OTHERS        = 2.&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 i000 WITH 'Error in getting filename'(m07).&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " f_get_local_error_file_name&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  f_get_file_name_path&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;      Get Physical Path name&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     --&amp;gt;P_P_PATH  text&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     --&amp;gt;P_P_FILE  text&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     &amp;lt;--P_V_FILE  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 f_get_file_name_path  USING p_logicalpath TYPE filepath-pathintern&lt;/P&gt;&lt;P&gt;                                 p_file      TYPE any&lt;/P&gt;&lt;P&gt;                        CHANGING v_file      TYPE any.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CALL FUNCTION 'FILE_GET_NAME_USING_PATH'&lt;/P&gt;&lt;P&gt;    EXPORTING&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  CLIENT                           = SY-MANDT&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      logical_path                     = p_logicalpath&lt;/P&gt;&lt;P&gt;      operating_system                 = sy-opsys&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  PARAMETER_1                      = ' '&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  PARAMETER_2                      = ' '&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  PARAMETER_3                      = ' '&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  USE_BUFFER                       = ' '&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      file_name                      = p_file&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  USE_PRESENTATION_SERVER          = ' '&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  ELEMINATE_BLANKS                 = 'X'&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    IMPORTING&lt;/P&gt;&lt;P&gt;      file_name_with_path            = v_file&lt;/P&gt;&lt;P&gt; EXCEPTIONS&lt;/P&gt;&lt;P&gt;   path_not_found                   = 1&lt;/P&gt;&lt;P&gt;   missing_parameter                = 2&lt;/P&gt;&lt;P&gt;   operating_system_not_found       = 3&lt;/P&gt;&lt;P&gt;   file_system_not_found            = 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 i000&lt;/P&gt;&lt;P&gt;        WITH 'Logical Path Not Found for the given File name'(m10).&lt;/P&gt;&lt;P&gt;    STOP.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " f_get_file_name_path&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  F_DOWNLOAD_TO_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;      Download to Application Server&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 F_DOWNLOAD_TO_APP .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*-- Open the dataset&lt;/P&gt;&lt;P&gt;  PERFORM F_FILE_IO&lt;/P&gt;&lt;P&gt;       USING p_error 'O'.&lt;/P&gt;&lt;P&gt;  IF V_RC IS INITIAL AND SYST-SUBRC IS INITIAL.&lt;/P&gt;&lt;P&gt;    LOOP AT it_error.&lt;/P&gt;&lt;P&gt;      TRANSFER it_error TO p_error.&lt;/P&gt;&lt;P&gt;    ENDLOOP.&lt;/P&gt;&lt;P&gt;*-- Close the data set&lt;/P&gt;&lt;P&gt;  PERFORM F_FILE_IO&lt;/P&gt;&lt;P&gt;       USING p_error 'C'.&lt;/P&gt;&lt;P&gt;    IF NOT V_RC IS INITIAL OR NOT SYST-SUBRC IS INITIAL.&lt;/P&gt;&lt;P&gt;      MESSAGE I014 WITH V_MSG.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;  ELSE.&lt;/P&gt;&lt;P&gt;    MESSAGE I014 WITH V_MSG.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " F_DOWNLOAD_TO_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;P&gt;*&amp;amp;      Form  F_DISPLAY_REPORT&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;      Display Report&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 F_DISPLAY_REPORT .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA: LV_DETAIL TYPE I,        " Counter for Detail records&lt;/P&gt;&lt;P&gt;      LV_ERROR TYPE I,         " Counter for Error records&lt;/P&gt;&lt;P&gt;      LV_SUCC TYPE I.          " Counter for Success records&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  DESCRIBE TABLE IT_INFILE LINES LV_DETAIL.&lt;/P&gt;&lt;P&gt;  LV_DETAIL = LV_DETAIL - 2.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  DESCRIBE TABLE IT_ERR_REP LINES LV_ERROR.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  LV_SUCC = LV_DETAIL - LV_ERROR.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  WRITE:/ 'Number of Detail records:', LV_DETAIL.&lt;/P&gt;&lt;P&gt;  WRITE:/ 'Number of success records passed to Session:', LV_SUCC.&lt;/P&gt;&lt;P&gt;  WRITE:/ 'Number of error records before processing Session:',&lt;/P&gt;&lt;P&gt;           LV_ERROR.&lt;/P&gt;&lt;P&gt;  SKIP 1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;if not it_err_rep[] is initial.&lt;/P&gt;&lt;P&gt;  FORMAT COLOR 1 INTENSIFIED OFF.&lt;/P&gt;&lt;P&gt;  SKIP 2.&lt;/P&gt;&lt;P&gt;  WRITE:/1(174) 'ERROR REPORT'(H01) CENTERED.&lt;/P&gt;&lt;P&gt;  ULINE /1(174).&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  WRITE:/1 SY-VLINE,&lt;/P&gt;&lt;P&gt;         (8) TEXT-013,&lt;/P&gt;&lt;P&gt;          SY-VLINE,&lt;/P&gt;&lt;P&gt;         (16) TEXT-014,&lt;/P&gt;&lt;P&gt;          SY-VLINE,&lt;/P&gt;&lt;P&gt;         (17) TEXT-015,&lt;/P&gt;&lt;P&gt;         SY-VLINE,&lt;/P&gt;&lt;P&gt;         (15) TEXT-016,&lt;/P&gt;&lt;P&gt;         SY-VLINE,&lt;/P&gt;&lt;P&gt;         (16) ' ',&lt;/P&gt;&lt;P&gt;         SY-VLINE,&lt;/P&gt;&lt;P&gt;         (50) TEXT-017,&lt;/P&gt;&lt;P&gt;         SY-VLINE,&lt;/P&gt;&lt;P&gt;         (30) TEXT-018,&lt;/P&gt;&lt;P&gt;         SY-VLINE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  WRITE:/1 SY-VLINE,&lt;/P&gt;&lt;P&gt;         (8) ' ',&lt;/P&gt;&lt;P&gt;          SY-VLINE,&lt;/P&gt;&lt;P&gt;         (16) TEXT-019,&lt;/P&gt;&lt;P&gt;          SY-VLINE,&lt;/P&gt;&lt;P&gt;         (17) TEXT-020,&lt;/P&gt;&lt;P&gt;         SY-VLINE,&lt;/P&gt;&lt;P&gt;         (15) TEXT-021,&lt;/P&gt;&lt;P&gt;         SY-VLINE,&lt;/P&gt;&lt;P&gt;         (16) TEXT-022,&lt;/P&gt;&lt;P&gt;         SY-VLINE,&lt;/P&gt;&lt;P&gt;         (50) TEXT-023,&lt;/P&gt;&lt;P&gt;         SY-VLINE,&lt;/P&gt;&lt;P&gt;         (30) ' ',&lt;/P&gt;&lt;P&gt;         SY-VLINE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  WRITE:/1 SY-VLINE,&lt;/P&gt;&lt;P&gt;         (8) ' ',&lt;/P&gt;&lt;P&gt;          SY-VLINE,&lt;/P&gt;&lt;P&gt;         (16) TEXT-024,&lt;/P&gt;&lt;P&gt;          SY-VLINE,&lt;/P&gt;&lt;P&gt;         (17) TEXT-025,&lt;/P&gt;&lt;P&gt;         SY-VLINE,&lt;/P&gt;&lt;P&gt;         (15) TEXT-026,&lt;/P&gt;&lt;P&gt;         SY-VLINE,&lt;/P&gt;&lt;P&gt;         (16) TEXT-027,&lt;/P&gt;&lt;P&gt;         SY-VLINE,&lt;/P&gt;&lt;P&gt;         (50) TEXT-028,&lt;/P&gt;&lt;P&gt;         SY-VLINE,&lt;/P&gt;&lt;P&gt;         (30) ' ',&lt;/P&gt;&lt;P&gt;         SY-VLINE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    ULINE /1(174).&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  LOOP AT IT_ERR_REP.&lt;/P&gt;&lt;P&gt;    IF IT_ERR_REP-RECTYPE = 'I'.&lt;/P&gt;&lt;P&gt;      WRITE:/1 SY-VLINE,&lt;/P&gt;&lt;P&gt;           (8) IT_ERR_REP-RECTYPE,&lt;/P&gt;&lt;P&gt;             SY-VLINE,&lt;/P&gt;&lt;P&gt;           (16) IT_ERR_REP-BUKRS,&lt;/P&gt;&lt;P&gt;             SY-VLINE,&lt;/P&gt;&lt;P&gt;           (17) IT_ERR_REP-BLDAT,&lt;/P&gt;&lt;P&gt;             SY-VLINE,&lt;/P&gt;&lt;P&gt;           (15) IT_ERR_REP-XBLNR,&lt;/P&gt;&lt;P&gt;             SY-VLINE,&lt;/P&gt;&lt;P&gt;           (16) ' ',&lt;/P&gt;&lt;P&gt;             SY-VLINE,&lt;/P&gt;&lt;P&gt;           (50) IT_ERR_REP-BKTXT,&lt;/P&gt;&lt;P&gt;             SY-VLINE,&lt;/P&gt;&lt;P&gt;           (30) IT_ERR_REP-ERRMSG,&lt;/P&gt;&lt;P&gt;             SY-VLINE.&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;    IF IT_ERR_REP-RECTYPE = 'V'.&lt;/P&gt;&lt;P&gt;      WRITE:/1 SY-VLINE,&lt;/P&gt;&lt;P&gt;           (8) IT_ERR_REP-RECTYPE,&lt;/P&gt;&lt;P&gt;             SY-VLINE,&lt;/P&gt;&lt;P&gt;           (16) IT_ERR_REP-LIFNR,&lt;/P&gt;&lt;P&gt;             SY-VLINE,&lt;/P&gt;&lt;P&gt;           (17) IT_ERR_REP-WRBTR,&lt;/P&gt;&lt;P&gt;             SY-VLINE,&lt;/P&gt;&lt;P&gt;           (15) IT_ERR_REP-WMWST,&lt;/P&gt;&lt;P&gt;             SY-VLINE,&lt;/P&gt;&lt;P&gt;           (16) IT_ERR_REP-ZLSCH,&lt;/P&gt;&lt;P&gt;             SY-VLINE,&lt;/P&gt;&lt;P&gt;           (50) IT_ERR_REP-SGTXT,&lt;/P&gt;&lt;P&gt;             SY-VLINE,&lt;/P&gt;&lt;P&gt;           (30) IT_ERR_REP-ERRMSG,&lt;/P&gt;&lt;P&gt;             SY-VLINE.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    IF IT_ERR_REP-RECTYPE = 'L'.&lt;/P&gt;&lt;P&gt;      WRITE:/1 SY-VLINE,&lt;/P&gt;&lt;P&gt;           (8) IT_ERR_REP-RECTYPE,&lt;/P&gt;&lt;P&gt;             SY-VLINE,&lt;/P&gt;&lt;P&gt;           (16) IT_ERR_REP-HKONT,&lt;/P&gt;&lt;P&gt;             SY-VLINE,&lt;/P&gt;&lt;P&gt;           (17) IT_ERR_REP-WRBTR,&lt;/P&gt;&lt;P&gt;             SY-VLINE,&lt;/P&gt;&lt;P&gt;           (15) IT_ERR_REP-KOSTL,&lt;/P&gt;&lt;P&gt;             SY-VLINE,&lt;/P&gt;&lt;P&gt;           (16) IT_ERR_REP-AUFNR,&lt;/P&gt;&lt;P&gt;             SY-VLINE,&lt;/P&gt;&lt;P&gt;           (50) IT_ERR_REP-SGTXT,&lt;/P&gt;&lt;P&gt;             SY-VLINE,&lt;/P&gt;&lt;P&gt;           (30) IT_ERR_REP-ERRMSG,&lt;/P&gt;&lt;P&gt;             SY-VLINE.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt;  ULINE /1(174).&lt;/P&gt;&lt;P&gt;  endif.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " F_DISPLAY_REPORT&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  f_separate_data&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      Separate 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 f_separate_data .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data: lv_errflag     type c,         " For Error Flag&lt;/P&gt;&lt;P&gt;      LV_ERRNUM      TYPE I,         " For Error Counter&lt;/P&gt;&lt;P&gt;      LV_ERRNUM_TEMP TYPE STRING,    " For Error Temp Counter&lt;/P&gt;&lt;P&gt;      LV_TABIX       TYPE SY-TABIX.  " For SY-TABIX&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    LOOP AT IT_INDATA.&lt;/P&gt;&lt;P&gt;      LV_TABIX = SY-TABIX.&lt;/P&gt;&lt;P&gt;*-- At new of counter field check for error flag is set and move all the&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  counter fields to error internal table IT_ERROR&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      AT NEW COUNTER.&lt;/P&gt;&lt;P&gt;        READ TABLE IT_INDATA INDEX LV_TABIX.&lt;/P&gt;&lt;P&gt;        IF IT_INDATA-ERRFLAG = 'X'.&lt;/P&gt;&lt;P&gt;          if not it_indata-errmsg is initial.&lt;/P&gt;&lt;P&gt;            concatenate IT_INDATA-rectype&lt;/P&gt;&lt;P&gt;                        IT_INDATA-bukrs&lt;/P&gt;&lt;P&gt;                        IT_INDATA-bldat&lt;/P&gt;&lt;P&gt;                        IT_INDATA-xblnr&lt;/P&gt;&lt;P&gt;                        IT_INDATA-bktxt&lt;/P&gt;&lt;P&gt;                        IT_INDATA-errmsg into it_error&lt;/P&gt;&lt;P&gt;                        separated by c_comma.&lt;/P&gt;&lt;P&gt;          else.&lt;/P&gt;&lt;P&gt;            concatenate IT_INDATA-rectype&lt;/P&gt;&lt;P&gt;                        IT_INDATA-bukrs&lt;/P&gt;&lt;P&gt;                        IT_INDATA-bldat&lt;/P&gt;&lt;P&gt;                        IT_INDATA-xblnr&lt;/P&gt;&lt;P&gt;                        IT_INDATA-bktxt into it_error&lt;/P&gt;&lt;P&gt;                        separated by c_comma.&lt;/P&gt;&lt;P&gt;          endif.&lt;/P&gt;&lt;P&gt;*-- Move the error record to IT_ERR_REP internal field for output list&lt;/P&gt;&lt;P&gt;            MOVE: IT_INDATA-rectype TO IT_ERR_REP-rectype,&lt;/P&gt;&lt;P&gt;                  IT_INDATA-bukrs   TO IT_ERR_REP-bukrs,&lt;/P&gt;&lt;P&gt;                  IT_INDATA-bldat   TO IT_ERR_REP-bldat,&lt;/P&gt;&lt;P&gt;                  IT_INDATA-xblnr   TO IT_ERR_REP-xblnr,&lt;/P&gt;&lt;P&gt;                  IT_INDATA-bktxt   TO IT_ERR_REP-bktxt,&lt;/P&gt;&lt;P&gt;                  IT_INDATA-errmsg  TO IT_ERR_REP-errmsg.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;            append it_err_rep.&lt;/P&gt;&lt;P&gt;            clear it_err_rep.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;            append it_error.&lt;/P&gt;&lt;P&gt;            clear it_error.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;          LV_ERRNUM = LV_ERRNUM + 1.&lt;/P&gt;&lt;P&gt;          lv_errflag = 'X'.&lt;/P&gt;&lt;P&gt;        ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      ENDAT.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*-- Check for the vendor record type and error flag is set and move all&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  the records to error internal table IT_ERROR&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      if it_indata-rectype = c_v.&lt;/P&gt;&lt;P&gt;        if lv_errflag = 'X'.&lt;/P&gt;&lt;P&gt;          LV_ERRNUM = LV_ERRNUM + 1.&lt;/P&gt;&lt;P&gt;          if not it_indata-errmsg is initial.&lt;/P&gt;&lt;P&gt;            concatenate IT_INDATA-rectype&lt;/P&gt;&lt;P&gt;                        IT_INDATA-lifnr&lt;/P&gt;&lt;P&gt;                        IT_INDATA-wrbtr&lt;/P&gt;&lt;P&gt;                        IT_INDATA-wmwst&lt;/P&gt;&lt;P&gt;                        IT_INDATA-zlsch&lt;/P&gt;&lt;P&gt;                        IT_INDATA-sgtxt&lt;/P&gt;&lt;P&gt;                        IT_INDATA-errmsg into it_error&lt;/P&gt;&lt;P&gt;                        separated by c_comma.&lt;/P&gt;&lt;P&gt;          else.&lt;/P&gt;&lt;P&gt;            concatenate IT_INDATA-rectype&lt;/P&gt;&lt;P&gt;                        IT_INDATA-lifnr&lt;/P&gt;&lt;P&gt;                        IT_INDATA-wrbtr&lt;/P&gt;&lt;P&gt;                        IT_INDATA-wmwst&lt;/P&gt;&lt;P&gt;                        IT_INDATA-zlsch&lt;/P&gt;&lt;P&gt;                        IT_INDATA-sgtxt into it_error&lt;/P&gt;&lt;P&gt;                        separated by c_comma.&lt;/P&gt;&lt;P&gt;          endif.&lt;/P&gt;&lt;P&gt;*-- Move the error record to IT_ERR_REP internal field for output list&lt;/P&gt;&lt;P&gt;          MOVE: IT_INDATA-rectype TO IT_ERR_REP-rectype,&lt;/P&gt;&lt;P&gt;                IT_INDATA-lifnr   TO IT_ERR_REP-lifnr,&lt;/P&gt;&lt;P&gt;                IT_INDATA-wrbtr   TO IT_ERR_REP-wrbtr,&lt;/P&gt;&lt;P&gt;                IT_INDATA-wmwst   TO IT_ERR_REP-wmwst,&lt;/P&gt;&lt;P&gt;                IT_INDATA-zlsch   TO IT_ERR_REP-zlsch,&lt;/P&gt;&lt;P&gt;                IT_INDATA-sgtxt   TO IT_ERR_REP-sgtxt,&lt;/P&gt;&lt;P&gt;                IT_INDATA-errmsg  TO IT_ERR_REP-errmsg.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;            append it_err_rep.&lt;/P&gt;&lt;P&gt;            clear it_err_rep.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;            append it_error.&lt;/P&gt;&lt;P&gt;            clear it_error.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;            it_indata-errflag = 'X'.&lt;/P&gt;&lt;P&gt;            modify it_indata transporting ERRFLAG.&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;*-- Check for the line item record type and error flag is set and move&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  all the records to error internal table IT_ERROR&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      if it_indata-rectype = c_l.&lt;/P&gt;&lt;P&gt;        if lv_errflag = 'X'.&lt;/P&gt;&lt;P&gt;          LV_ERRNUM = LV_ERRNUM + 1.&lt;/P&gt;&lt;P&gt;          if not it_indata-errmsg is initial.&lt;/P&gt;&lt;P&gt;            concatenate IT_INDATA-rectype&lt;/P&gt;&lt;P&gt;                        IT_INDATA-hkont&lt;/P&gt;&lt;P&gt;                        IT_INDATA-wrbtr&lt;/P&gt;&lt;P&gt;                        IT_INDATA-kostl&lt;/P&gt;&lt;P&gt;                        IT_INDATA-aufnr&lt;/P&gt;&lt;P&gt;                        IT_INDATA-sgtxt&lt;/P&gt;&lt;P&gt;                        IT_INDATA-errmsg into it_error&lt;/P&gt;&lt;P&gt;                        separated by c_comma.&lt;/P&gt;&lt;P&gt;          else.&lt;/P&gt;&lt;P&gt;            concatenate IT_INDATA-rectype&lt;/P&gt;&lt;P&gt;                        IT_INDATA-hkont&lt;/P&gt;&lt;P&gt;                        IT_INDATA-wrbtr&lt;/P&gt;&lt;P&gt;                        IT_INDATA-kostl&lt;/P&gt;&lt;P&gt;                        IT_INDATA-aufnr&lt;/P&gt;&lt;P&gt;                        IT_INDATA-sgtxt into it_error&lt;/P&gt;&lt;P&gt;                        separated by c_comma.&lt;/P&gt;&lt;P&gt;          endif.&lt;/P&gt;&lt;P&gt;*-- Move the error record to IT_ERR_REP internal field for output list&lt;/P&gt;&lt;P&gt;          MOVE: IT_INDATA-rectype TO IT_ERR_REP-rectype,&lt;/P&gt;&lt;P&gt;                IT_INDATA-hkont   TO IT_ERR_REP-hkont,&lt;/P&gt;&lt;P&gt;                IT_INDATA-wrbtr   TO IT_ERR_REP-wrbtr,&lt;/P&gt;&lt;P&gt;                IT_INDATA-kostl   TO IT_ERR_REP-kostl,&lt;/P&gt;&lt;P&gt;                IT_INDATA-aufnr   TO IT_ERR_REP-aufnr,&lt;/P&gt;&lt;P&gt;                IT_INDATA-sgtxt   TO IT_ERR_REP-sgtxt,&lt;/P&gt;&lt;P&gt;                IT_INDATA-errmsg  TO IT_ERR_REP-errmsg.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;            append it_err_rep.&lt;/P&gt;&lt;P&gt;            clear it_err_rep.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;            append it_error.&lt;/P&gt;&lt;P&gt;            clear it_error.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;            it_indata-errflag = 'X'.&lt;/P&gt;&lt;P&gt;            modify it_indata transporting ERRFLAG.&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;      AT END OF COUNTER.&lt;/P&gt;&lt;P&gt;        READ TABLE IT_INDATA INDEX LV_TABIX.&lt;/P&gt;&lt;P&gt;        CLEAR LV_ERRFLAG.&lt;/P&gt;&lt;P&gt;      ENDAT.&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;*-- Delete all the error records from the internal table IT_INDATA&lt;/P&gt;&lt;P&gt;  delete it_indata where ERRFLAG = 'X'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*-- For the error internal table IT_ERROR add the Header and Trailer&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  records to download the same&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    IF NOT IT_ERROR[] IS INITIAL.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*-- Insert Header record at Index 1&lt;/P&gt;&lt;P&gt;      read table it_head_trai index 1.&lt;/P&gt;&lt;P&gt;      if sy-subrc = 0.&lt;/P&gt;&lt;P&gt;        concatenate it_head_trai-rectype&lt;/P&gt;&lt;P&gt;                    it_head_trai-intname&lt;/P&gt;&lt;P&gt;                    it_head_trai-datetime into it_error&lt;/P&gt;&lt;P&gt;                    separated by c_comma.&lt;/P&gt;&lt;P&gt;        INSERT it_error index 1.&lt;/P&gt;&lt;P&gt;        clear it_error.&lt;/P&gt;&lt;P&gt;      endif.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*-- Append Trailer record&lt;/P&gt;&lt;P&gt;      read table it_head_trai index 2.&lt;/P&gt;&lt;P&gt;      if sy-subrc = 0.&lt;/P&gt;&lt;P&gt;        MOVE LV_ERRNUM TO LV_ERRNUM_TEMP.&lt;/P&gt;&lt;P&gt;        concatenate it_head_trai-rectype&lt;/P&gt;&lt;P&gt;                    it_head_trai-intname&lt;/P&gt;&lt;P&gt;                    it_head_trai-datetime&lt;/P&gt;&lt;P&gt;                    LV_ERRNUM_TEMP into it_error&lt;/P&gt;&lt;P&gt;                    separated by c_comma.&lt;/P&gt;&lt;P&gt;        append it_error.&lt;/P&gt;&lt;P&gt;        clear it_error.&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.                    " f_separate_data&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  F_FILE_IO&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;U_FILE               file on appln. server&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     --&amp;gt;V_OPRN               file operation (i.e. Close,Open,Input..)&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 F_FILE_IO&lt;/P&gt;&lt;P&gt;  USING U_FILE                         TYPE rlgrap-filename	&lt;/P&gt;&lt;P&gt;        VALUE(V_OPRN)                  TYPE CHAR1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CALL FUNCTION 'Z01_UT_UNICODE_FILE_IO'&lt;/P&gt;&lt;P&gt;    EXPORTING&lt;/P&gt;&lt;P&gt;      I_FILE                      = U_FILE&lt;/P&gt;&lt;P&gt;      I_IO_OPRN                   = V_OPRN&lt;/P&gt;&lt;P&gt;    IMPORTING&lt;/P&gt;&lt;P&gt;      E_RC                        = V_RC&lt;/P&gt;&lt;P&gt;      E_MSG                       = V_MSG&lt;/P&gt;&lt;P&gt;    EXCEPTIONS&lt;/P&gt;&lt;P&gt;      FILENAME_NOT_SUPPLIED       = 1&lt;/P&gt;&lt;P&gt;      INVALID_FILE_IO_OPRN        = 2&lt;/P&gt;&lt;P&gt;      OTHERS                      = 3.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " F_FILE_IO&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Reward with points if this is useful.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards,&lt;/P&gt;&lt;P&gt;savitha.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 04 Jan 2006 09:52:14 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/outbound-interface/m-p/1179761#M125430</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2006-01-04T09:52:14Z</dc:date>
    </item>
  </channel>
</rss>

