<?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: Hi in Application Development and Automation Discussions</title>
    <link>https://community.sap.com/t5/application-development-and-automation-discussions/hi/m-p/3887588#M933869</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; Please check this link&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="5051725"&gt;&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Best regards,&lt;/P&gt;&lt;P&gt;raam&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Wed, 28 May 2008 07:14:32 GMT</pubDate>
    <dc:creator>Former Member</dc:creator>
    <dc:date>2008-05-28T07:14:32Z</dc:date>
    <item>
      <title>Hi</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/hi/m-p/3887586#M933867</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;How to do the BDC for Tcode me31k&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 28 May 2008 06:53:33 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/hi/m-p/3887586#M933867</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2008-05-28T06:53:33Z</dc:date>
    </item>
    <item>
      <title>Re: Hi</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/hi/m-p/3887587#M933868</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 code&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;REPORT ZMCG047CONTR NO STANDARD PAGE HEADING&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;                               LINE-SIZE 255&lt;/P&gt;&lt;P&gt;                               MESSAGE-ID ZM.&lt;/P&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;*&amp;amp;----&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;*&amp;amp;       Table declarations&lt;/P&gt;&lt;P&gt;*&amp;amp;----&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;TABLES : T001W,     "Plants/Branches&lt;/P&gt;&lt;P&gt;         T024E,     "Purchasing Organizations&lt;/P&gt;&lt;P&gt;         T001.      "Company Codes&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;             TYPE-POOLS  DECLARATION&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;TYPE-POOLS : SLIS.&lt;/P&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                      Types  Declaration                            *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;TYPES: BEGIN OF T_RECORD,    "record storing contract info&lt;/P&gt;&lt;P&gt;        LIFNR(010),      "Vendor Number&lt;/P&gt;&lt;P&gt;        EVART(004),      "Agreement Type&lt;/P&gt;&lt;P&gt;        EKORG(004),      "Purchasing Organization&lt;/P&gt;&lt;P&gt;        EKGRP(003),      "Purchasing Group&lt;/P&gt;&lt;P&gt;        WERKS(004),      "Plant&lt;/P&gt;&lt;P&gt;        LGORT(004),      "Storage Location&lt;/P&gt;&lt;P&gt;        KDATB(010),      "Valid start Date&lt;/P&gt;&lt;P&gt;        KDATE(010),      "Valid End Date&lt;/P&gt;&lt;P&gt;        ZTERM(004),      "Payment Terms&lt;/P&gt;&lt;P&gt;        KTWRT(020),      "Target Value&lt;/P&gt;&lt;P&gt;        EPSTP(001),      "Item Category&lt;/P&gt;&lt;P&gt;        EMATN(018),      "Material Number&lt;/P&gt;&lt;P&gt;        KTMNG(017),      "Target Quantity&lt;/P&gt;&lt;P&gt;        NETPR(014),      "Net Price&lt;/P&gt;&lt;P&gt;        PEINH(006),      "Net Price Unit&lt;/P&gt;&lt;P&gt;        BPRME(003),      "Net Price Order Price Unit&lt;/P&gt;&lt;P&gt;        IDNLF(035),      "Vendor Material number&lt;/P&gt;&lt;P&gt;        WEBRE(001),      "GR Based-IV&lt;/P&gt;&lt;P&gt;        MEPRF(001),      "Pricing Date Category&lt;/P&gt;&lt;P&gt;        LTEX1(040),      "Info Text&lt;/P&gt;&lt;P&gt;        DATAB(010),      "Valid From&lt;/P&gt;&lt;P&gt;        DATBI(010),      "Valid To&lt;/P&gt;&lt;P&gt;        KSCHL(004),      "Condition Type&lt;/P&gt;&lt;P&gt;        KBETR(016),      "Condition Rate if scale is not given&lt;/P&gt;&lt;P&gt;        KONWA(005),      "Currency&lt;/P&gt;&lt;P&gt;        KPEIN(005),      "Condition Pricing Unit&lt;/P&gt;&lt;P&gt;        KMEIN(003),      "Condition Unit of Measure&lt;/P&gt;&lt;P&gt;        KSTBM(019),      "Scale&lt;/P&gt;&lt;P&gt;        KBETR_01(016),   "Scale Rate&lt;/P&gt;&lt;P&gt;        DEL_FLAG,        "Delete Flag Indicator&lt;/P&gt;&lt;P&gt;        ERR_MSG(100),    "Error Message&lt;/P&gt;&lt;P&gt;      END OF T_RECORD,&lt;/P&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;      BEGIN OF T_ERR_RECORD,   "to have error records stored&lt;/P&gt;&lt;P&gt;         LIFNR(010),      "Vendor Number&lt;/P&gt;&lt;P&gt;         EVART(004),      "Agreement Type&lt;/P&gt;&lt;P&gt;         EKORG(004),      "Purchasing Organization&lt;/P&gt;&lt;P&gt;         EKGRP(003),      "Purchasing Group&lt;/P&gt;&lt;P&gt;         WERKS(004),      "Plant&lt;/P&gt;&lt;P&gt;         LGORT(004),      "Storage Location&lt;/P&gt;&lt;P&gt;         KDATB(010),      "Valid start Date&lt;/P&gt;&lt;P&gt;         KDATE(010),      "Valid End Date&lt;/P&gt;&lt;P&gt;         ZTERM(004),      "Payment Terms&lt;/P&gt;&lt;P&gt;         KTWRT(020),      "Target Value&lt;/P&gt;&lt;P&gt;         EPSTP(001),      "Item Category&lt;/P&gt;&lt;P&gt;         EMATN(018),      "Material Number&lt;/P&gt;&lt;P&gt;         KTMNG(017),      "Target Quantity&lt;/P&gt;&lt;P&gt;         NETPR(014),      "Net Price&lt;/P&gt;&lt;P&gt;         PEINH(006),      "Net Price Unit&lt;/P&gt;&lt;P&gt;         BPRME(003),      "Net Price Order Price Unit&lt;/P&gt;&lt;P&gt;         IDNLF(035),      "Vendor Material number&lt;/P&gt;&lt;P&gt;         WEBRE(001),      "GR Based-IV&lt;/P&gt;&lt;P&gt;         MEPRF(001),      "Pricing Date Category&lt;/P&gt;&lt;P&gt;         LTEX1(040),      "Info Text&lt;/P&gt;&lt;P&gt;         DATAB(010),      "Valid From&lt;/P&gt;&lt;P&gt;         DATBI(010),      "Valid To&lt;/P&gt;&lt;P&gt;         KSCHL(004),      "Condition Type&lt;/P&gt;&lt;P&gt;         KBETR(016),      "Condition Rate if scale is not given&lt;/P&gt;&lt;P&gt;         KONWA(005),      "Currency&lt;/P&gt;&lt;P&gt;         KPEIN(005),      "Condition Pricing Unit&lt;/P&gt;&lt;P&gt;         KMEIN(003),      "Condition Unit of Measure&lt;/P&gt;&lt;P&gt;         KSTBM(019),      "Scale&lt;/P&gt;&lt;P&gt;         KBETR_01(016),   "Scale Rate&lt;/P&gt;&lt;P&gt;         DEL_FLAG,        "Delete Flag Indicator&lt;/P&gt;&lt;P&gt;         ERR_MSG(100),    "Error Message&lt;/P&gt;&lt;P&gt;      END OF T_ERR_RECORD,&lt;/P&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;      BEGIN OF T_LOEKZ,    "To have deletion indicators for materials&lt;/P&gt;&lt;P&gt;          LOEKZ(001),    "Deletion indicator in purchasing document&lt;/P&gt;&lt;P&gt;          EMATN(018),    "Material Number&lt;/P&gt;&lt;P&gt;          WERKS(004),    "Plant&lt;/P&gt;&lt;P&gt;          LGORT(004),    "Storage Location&lt;/P&gt;&lt;P&gt;          BSTYP(001),    "Purchasing document category&lt;/P&gt;&lt;P&gt;      END OF T_LOEKZ,&lt;/P&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;      BEGIN OF T_MATNR,  " Type definition to store details of materials&lt;/P&gt;&lt;P&gt;           MATNR(018),    "Material Number&lt;/P&gt;&lt;P&gt;      END OF T_MATNR,&lt;/P&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;      BEGIN OF T_T001,   " Type definition for company codes&lt;/P&gt;&lt;P&gt;          BUKRS(004),    " Company Code&lt;/P&gt;&lt;P&gt;      END OF T_T001,&lt;/P&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;      BEGIN OF T_ZMVXREF,   "Cross-Reference table type&lt;/P&gt;&lt;P&gt;          D_ALTKN(10),      "Legacy Vendor Number&lt;/P&gt;&lt;P&gt;          D_BUKRS(4),       "Legacy Company Code&lt;/P&gt;&lt;P&gt;          M_ALTKN(10),      "SAP Company Code&lt;/P&gt;&lt;P&gt;      END OF T_ZMVXREF,&lt;/P&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;      BEGIN OF T_LFA1,    "Master data of vendors&lt;/P&gt;&lt;P&gt;          LIFNR(10),      "Vendor Number&lt;/P&gt;&lt;P&gt;      END OF T_LFA1,&lt;/P&gt;&lt;P&gt;*&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; Type Declaration for T024E (Company Codes)&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;       BEGIN OF T_T024E,&lt;/P&gt;&lt;P&gt;         EKORG   LIKE   T024E-EKORG, "Purchasing organization&lt;/P&gt;&lt;P&gt;         BUKRS   LIKE   T024E-BUKRS, "Company Code&lt;/P&gt;&lt;P&gt;       END OF T_T024E,&lt;/P&gt;&lt;P&gt;*&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; Type Declaration for t001w (Plant)&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;       BEGIN OF T_T001W,&lt;/P&gt;&lt;P&gt;         WERKS  LIKE  T001W-WERKS,        "Plant&lt;/P&gt;&lt;P&gt;       END OF T_T001W,&lt;/P&gt;&lt;P&gt;*&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; Type Declatation for String Line&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;       BEGIN OF T_STR1,                                     "#EC NEEDED&lt;/P&gt;&lt;P&gt;         SLINE(6000) TYPE C,&lt;/P&gt;&lt;P&gt;       END OF T_STR1.&lt;/P&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;TYPES:  BEGIN OF T_BDCDATA.  "BDC Data&lt;/P&gt;&lt;P&gt;        INCLUDE STRUCTURE BDCDATA.&lt;/P&gt;&lt;P&gt;TYPES:  END OF T_BDCDATA.&lt;/P&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      Internal Tables  Declaration                                  *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;DATA:&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     Internal table to store input file data&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;       I_RECORD TYPE STANDARD TABLE OF T_RECORD INITIAL SIZE 0,&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     Internal table to capture errors&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;       I_ERR_REC TYPE STANDARD TABLE OF T_ERR_RECORD INITIAL SIZE 0,&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     Internal table to check for deletion indicators&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;       I_LOEKZ TYPE STANDARD TABLE OF T_LOEKZ INITIAL SIZE 0,&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     Internal table to check for material numbers&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;       I_MATNR TYPE STANDARD TABLE OF T_MATNR INITIAL SIZE 0,&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     Internal table used for storing Cross-Reference data of Vendor&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;       I_ZMVXREF TYPE STANDARD TABLE OF T_ZMVXREF INITIAL SIZE 0,&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     Internal table for holding Vendor Numbers from Master table&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;       I_LFA1 TYPE STANDARD TABLE OF T_LFA1 INITIAL SIZE 0,&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     Internal table for holding Purchase Org and Company Codes&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;       I_T024E TYPE STANDARD TABLE OF T_T024E INITIAL SIZE 0,&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     Internal table for holding Plants&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;       I_T001W TYPE STANDARD TABLE OF T_T001W INITIAL SIZE 0,&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     Internal table for storing a list of Company Codes&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;       I_T001 TYPE STANDARD TABLE OF T_T001 INITIAL SIZE 0,&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     Internal table used for ALV Reporting&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;       I_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV,&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     Internal table used for holding List Header&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;       I_LISTHEADER TYPE SLIS_T_LISTHEADER,    "EC NEEDED&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     Internal table to hold ALV Event&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;       I_ALV_EVENT TYPE SLIS_T_EVENT,&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     Internal table to hold Sort Info for ALV Report&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;       I_SORT TYPE SLIS_T_SORTINFO_ALV,&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     Internal table for BDC Data&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;       I_BDCDATA TYPE STANDARD TABLE OF T_BDCDATA INITIAL SIZE 0,&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     Internal table for messages&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;       I_MESSTAB TYPE TABLE OF BDCMSGCOLL,&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     Internal table for String line&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;       I_STR1 TYPE STANDARD TABLE OF T_STR1 INITIAL SIZE 0.&lt;/P&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      Work Area Declaration                                         *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;DATA:&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; Work Area to hold data for the Open Contract&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      WA_RECORD TYPE T_RECORD,&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; Work Area to hold previous record data&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      WA_RECORDPREV TYPE T_RECORD,&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; Work Area to hold errors&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      WA_ERR_REC TYPE T_ERR_RECORD,&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; Work Area to hold the Deletion Indicator of materials&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      WA_LOEKZ TYPE T_LOEKZ,&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; Work Area to hold Material numbers of required materials&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      WA_MATNR TYPE T_MATNR,      "EC NEEDED&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; Work Area to hold errors occured while performing BDC&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      WA_MESSTAB TYPE BDCMSGCOLL,&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; Work Area to hold field catalog for ALV Reports&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      WA_FIELDCAT TYPE SLIS_FIELDCAT_ALV,&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; Work Area to hold list header data for ALV reports&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      WA_LISTHEADER TYPE SLIS_LISTHEADER,&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; Work Area to hold ALV Event&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      WA_ALV_EVENT LIKE LINE OF I_ALV_EVENT,  "EC NEEDED&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; Work Area to hold Layout of ALV Report&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      WA_LAYOUT TYPE SLIS_LAYOUT_ALV,&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; Work Area to hold Cross-Reference data of Vendor&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      WA_ZMVXREF TYPE T_ZMVXREF,&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; Work Area to hold Vendor Numbers from Master table&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      WA_LFA1 TYPE T_LFA1,    "EC NEEDED&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; Work Area to hold Purchase Org and Company Codes&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      WA_T024E TYPE T_T024E,&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; Work Area to hold Company Codes&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      WA_T001 TYPE T_T001,&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; Work Area to hold Plants&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      WA_T001W TYPE T_T001W,&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; Work Area to hold Sort Info for ALV Report&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      WA_SORT TYPE SLIS_SORTINFO_ALV,&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; Work Area to hold BDC Data&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      WA_BDCDATA TYPE T_BDCDATA,&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; Work Area for String line&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      WA_STR1 TYPE T_STR1.&lt;/P&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      Variables  Declaration                                        *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;DATA: V_ERRMSG(500),           "To temporarily store the error message&lt;/P&gt;&lt;P&gt;      V_CONV_DATE(10) TYPE C,  "To capture the converted date format&lt;/P&gt;&lt;P&gt;      V_DATE LIKE SY-DATUM,&lt;/P&gt;&lt;P&gt;      V_REPID LIKE SY-REPID,   "holds report id&lt;/P&gt;&lt;P&gt;      V_CROSS_REFERENCE_ERROR TYPE I,  " cross-reference error&lt;/P&gt;&lt;P&gt;      V_INPUTERROR_FLAG VALUE '',      " input error status&lt;/P&gt;&lt;P&gt;      V_FILENAME TYPE STRING,          " File Name&lt;/P&gt;&lt;P&gt;      VEN_FLAG(1),                       " at new status&lt;/P&gt;&lt;P&gt;      MAT_FLAG(1),                      " at new status&lt;/P&gt;&lt;P&gt;      V_IND(2) TYPE N,                 " index of table control&lt;/P&gt;&lt;P&gt;      V_IND2(2) TYPE N,                " index of table control&lt;/P&gt;&lt;P&gt;      V_IND3(2) TYPE N,                " index of table control&lt;/P&gt;&lt;P&gt;      V_EVRTP1(20),&lt;/P&gt;&lt;P&gt;      V_EPSTP1(20),&lt;/P&gt;&lt;P&gt;      V_EMATN1(20),&lt;/P&gt;&lt;P&gt;      V_KTMNG1(20),&lt;/P&gt;&lt;P&gt;      V_NETPR1(20),&lt;/P&gt;&lt;P&gt;      V_PEINH1(20),&lt;/P&gt;&lt;P&gt;      V_BPRME1(20),&lt;/P&gt;&lt;P&gt;      V_TCSELFLAG1(20),&lt;/P&gt;&lt;P&gt;      V_KSCHL2(20),&lt;/P&gt;&lt;P&gt;      V_KBETR2(20),&lt;/P&gt;&lt;P&gt;      V_KONWA2(20),&lt;/P&gt;&lt;P&gt;      V_KPEIN2(20),&lt;/P&gt;&lt;P&gt;      V_KMEIN2(20),&lt;/P&gt;&lt;P&gt;      V_SELKZ2(20),&lt;/P&gt;&lt;P&gt;      V_KBETR3(20),&lt;/P&gt;&lt;P&gt;      V_KSTBM3(20),&lt;/P&gt;&lt;P&gt;      V_LINE TYPE I,&lt;/P&gt;&lt;P&gt;      V_STR TYPE X VALUE '09',&lt;/P&gt;&lt;P&gt;      V_EXIST TYPE C,&lt;/P&gt;&lt;P&gt;      V_EXIST1 TYPE C,&lt;/P&gt;&lt;P&gt;      V_ISDIR TYPE C,&lt;/P&gt;&lt;P&gt;      V_ISDIR1 TYPE C.&lt;/P&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      Constants  Declaration                                        *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;CONSTANTS: C_TCODE(5) VALUE 'ME31K', "Trx code - Open Contract Creation&lt;/P&gt;&lt;P&gt;           C_TRUE     VALUE 'X',       " Del_Flag indicator&lt;/P&gt;&lt;P&gt;           C_LOEKZ_MARKED VALUE 'X',   "Deletion indicator for material&lt;/P&gt;&lt;P&gt;           C_INPUTERROR_FLAG_YES VALUE 'X',  "Input File Indicator&lt;/P&gt;&lt;P&gt;           C_VEN_ERR1 VALUE 1,    "Error Indicator&lt;/P&gt;&lt;P&gt;           C_16(2)    VALUE '16',&lt;/P&gt;&lt;P&gt;           C_VEN_ERR2 VALUE 2,    "Error Indicator&lt;/P&gt;&lt;P&gt;           C_VEN_ERR3 VALUE 3,    "Error Indicator&lt;/P&gt;&lt;P&gt;           C_VEN_SUCS VALUE 0,    "Success Indicator&lt;/P&gt;&lt;P&gt;           C_SUCCESS  LIKE SY-SUBRC VALUE '0',&lt;/P&gt;&lt;P&gt;           C_STRUE    VALUE 'S',  "Del_flag for SAP Errors&lt;/P&gt;&lt;P&gt;           C_YTRUE    VALUE 'Y',  "Del_flag for Success Records&lt;/P&gt;&lt;P&gt;           C_MSGTYP_E VALUE 'E',  "holds error message type&lt;/P&gt;&lt;P&gt;           C_MSGTYP_S VALUE 'S',  "holds success message type&lt;/P&gt;&lt;P&gt;           C_BSTYP    VALUE 'K',  "Purchasing Document type is Contract&lt;/P&gt;&lt;P&gt;           C_BACKGROUND VALUE 'N', "Background mode&lt;/P&gt;&lt;P&gt;           C_FOREGROUND VALUE 'A', "All Screen mode&lt;/P&gt;&lt;P&gt;           C_ERRORS   VALUE 'E',   "Error screen mode&lt;/P&gt;&lt;P&gt;           C_WK(2)    VALUE 'WK'. "Value Contract&lt;/P&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;       Selection Screen                                             *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN BEGIN OF BLOCK B2 WITH FRAME TITLE TEXT-033.&lt;/P&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN SKIP.&lt;/P&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;SELECT-OPTIONS:&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;             Plant&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;               S_WERKS FOR T001W-WERKS OBLIGATORY,&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;             Purchase Organization&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;               S_EKORG FOR T024E-EKORG OBLIGATORY.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;             Company Code&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;PARAMETER      P_BUKRS LIKE T001-BUKRS OBLIGATORY.&lt;/P&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN SKIP.&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN ULINE.&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN BEGIN OF LINE.&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN POSITION 3.&lt;/P&gt;&lt;P&gt;PARAMETER RB_SERVE RADIOBUTTON GROUP RBX DEFAULT 'X' USER-COMMAND U1.&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN COMMENT 6(19)  TEXT-036.&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN POSITION 37.&lt;/P&gt;&lt;P&gt;PARAMETER RB_LOCAL RADIOBUTTON GROUP RBX.&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN COMMENT 40(13) TEXT-035.&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN END OF LINE.&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN SKIP.&lt;/P&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;PARAMETERS:&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   Parameter holding Input File name&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;          P_FILE LIKE RLGRAP-FILENAME&lt;/P&gt;&lt;P&gt;                 OBLIGATORY&lt;/P&gt;&lt;P&gt;                 LOWER CASE&lt;/P&gt;&lt;P&gt;                 DEFAULT 'C:\'&lt;/P&gt;&lt;P&gt;                 MODIF ID G1,&lt;/P&gt;&lt;P&gt;          P_FILE1 LIKE RLGRAP-FILENAME&lt;/P&gt;&lt;P&gt;                  OBLIGATORY&lt;/P&gt;&lt;P&gt;                  LOWER CASE&lt;/P&gt;&lt;P&gt;                  DEFAULT '/celestica/interface/corp/in/work/'&lt;/P&gt;&lt;P&gt;                  MODIF ID G2,&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   Parameter specifying Mode of calling the Transaction.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;          P_MODE DEFAULT 'N' OBLIGATORY,&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   Check box used to test the input file.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;          P_TEST AS CHECKBOX DEFAULT 'X',&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   Parameter holding Filename for holding Input File Errors&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;          P_IPERR LIKE RLGRAP-FILENAME&lt;/P&gt;&lt;P&gt;                  OBLIGATORY&lt;/P&gt;&lt;P&gt;                  LOWER CASE&lt;/P&gt;&lt;P&gt;                  DEFAULT 'C:\'&lt;/P&gt;&lt;P&gt;                  MODIF ID G1,&lt;/P&gt;&lt;P&gt;          P_IPERR1 LIKE RLGRAP-FILENAME&lt;/P&gt;&lt;P&gt;                 OBLIGATORY&lt;/P&gt;&lt;P&gt;                 LOWER CASE&lt;/P&gt;&lt;P&gt;                 DEFAULT '/celestica/interface/corp/in/work/047_Err.txt'&lt;/P&gt;&lt;P&gt;                 MODIF ID G2.&lt;/P&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN END OF BLOCK B2.&lt;/P&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;       AT Selection Screen  Events                                  *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; Loop the screen to activate relative paths&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;AT SELECTION-SCREEN OUTPUT.&lt;/P&gt;&lt;P&gt;  LOOP AT SCREEN.&lt;/P&gt;&lt;P&gt;    IF RB_SERVE = C_TRUE AND SCREEN-GROUP1 = 'G1'.&lt;/P&gt;&lt;P&gt;      SCREEN-OUTPUT = 0.&lt;/P&gt;&lt;P&gt;      SCREEN-ACTIVE = 0.&lt;/P&gt;&lt;P&gt;      SCREEN-INPUT = 0.&lt;/P&gt;&lt;P&gt;    ELSEIF RB_LOCAL = C_TRUE AND SCREEN-GROUP1 = 'G2'.&lt;/P&gt;&lt;P&gt;      SCREEN-OUTPUT = 0.&lt;/P&gt;&lt;P&gt;      SCREEN-ACTIVE = 0.&lt;/P&gt;&lt;P&gt;      SCREEN-INPUT = 0.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;    MODIFY SCREEN.&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;AT SELECTION-SCREEN ON BLOCK B2.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; Checking Access Authorization for the user&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  CALL FUNCTION 'ZU_DATA_ACCESS_AUTH_CHECK'&lt;/P&gt;&lt;P&gt;       EXPORTING&lt;/P&gt;&lt;P&gt;            ACTVT        = C_16&lt;/P&gt;&lt;P&gt;            P_BUKRS      = P_BUKRS&lt;/P&gt;&lt;P&gt;       TABLES&lt;/P&gt;&lt;P&gt;            S_WERKS      = S_WERKS&lt;/P&gt;&lt;P&gt;            S_EKORG      = S_EKORG&lt;/P&gt;&lt;P&gt;       EXCEPTIONS&lt;/P&gt;&lt;P&gt;            BUKRS_FAILED = 1&lt;/P&gt;&lt;P&gt;            VKORG_FAILED = 2&lt;/P&gt;&lt;P&gt;            VTWEG_FAILED = 3&lt;/P&gt;&lt;P&gt;            EKORG_FAILED = 4&lt;/P&gt;&lt;P&gt;            WERKS_FAILED = 5&lt;/P&gt;&lt;P&gt;            LGNUM_FAILED = 6&lt;/P&gt;&lt;P&gt;            OTHERS       = 7.&lt;/P&gt;&lt;P&gt;  IF SY-SUBRC  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;AT SELECTION-SCREEN ON P_BUKRS.&lt;/P&gt;&lt;P&gt;  IF NOT P_BUKRS IS INITIAL.&lt;/P&gt;&lt;P&gt;    SELECT SINGLE BUKRS INTO T001&lt;/P&gt;&lt;P&gt;                        FROM T001&lt;/P&gt;&lt;P&gt;                        WHERE BUKRS EQ P_BUKRS.&lt;/P&gt;&lt;P&gt;    IF SY-SUBRC NE 0.&lt;/P&gt;&lt;P&gt;      MESSAGE I000 WITH TEXT-089.&lt;/P&gt;&lt;P&gt;      STOP.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;  ENDIF.*&lt;/P&gt;&lt;P&gt;AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_FILE.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Search Help to select Input File path.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  PERFORM GET_FILE_NAME USING P_FILE.&lt;/P&gt;&lt;P&gt;*&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Check for the existence of the file.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  IF RB_LOCAL EQ C_TRUE.&lt;/P&gt;&lt;P&gt;    CALL FUNCTION 'TMP_GUI_GET_FILE_EXIST'&lt;/P&gt;&lt;P&gt;         EXPORTING&lt;/P&gt;&lt;P&gt;              FNAME          = P_FILE&lt;/P&gt;&lt;P&gt;         IMPORTING&lt;/P&gt;&lt;P&gt;              EXIST          = V_EXIST&lt;/P&gt;&lt;P&gt;              ISDIR          = V_ISDIR&lt;/P&gt;&lt;P&gt;         EXCEPTIONS&lt;/P&gt;&lt;P&gt;              FILEINFO_ERROR = 1&lt;/P&gt;&lt;P&gt;              OTHERS         = 2.&lt;/P&gt;&lt;P&gt;    IF SY-SUBRC  0.&lt;/P&gt;&lt;P&gt;      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;    IF V_ISDIR IS INITIAL.&lt;/P&gt;&lt;P&gt;      IF V_EXIST IS INITIAL.&lt;/P&gt;&lt;P&gt;        MESSAGE I000 WITH TEXT-018.&lt;/P&gt;&lt;P&gt;        STOP.&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;P&gt;    ELSEIF V_ISDIR EQ C_TRUE.&lt;/P&gt;&lt;P&gt;      MESSAGE I000 WITH TEXT-068.&lt;/P&gt;&lt;P&gt;      STOP.&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 SELECTION-SCREEN ON VALUE-REQUEST FOR P_IPERR.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Search Help to select Input Error File path.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  PERFORM GET_FILE_NAME USING P_IPERR.&lt;/P&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;AT SELECTION-SCREEN.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Validate Transaction Mode&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  IF  P_MODE  C_BACKGROUND AND&lt;/P&gt;&lt;P&gt;      P_MODE  C_FOREGROUND AND&lt;/P&gt;&lt;P&gt;      P_MODE  C_ERRORS.&lt;/P&gt;&lt;P&gt;    MESSAGE I000 WITH TEXT-034.&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;START-OF-SELECTION.&lt;/P&gt;&lt;P&gt;*&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Get the Input File Data&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  V_FILENAME = P_FILE.&lt;/P&gt;&lt;P&gt;  PERFORM UPLOAD_FLATFILE_DATA TABLES I_RECORD&lt;/P&gt;&lt;P&gt;                               USING V_FILENAME.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Sorting the data by all fields&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  SORT I_RECORD.* Ensuring the padding of the empty spaces before the vendor No  CLEAR WA_RECORD.&lt;/P&gt;&lt;P&gt;  LOOP AT I_RECORD INTO WA_RECORD.&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  = WA_RECORD-LIFNR&lt;/P&gt;&lt;P&gt;         IMPORTING&lt;/P&gt;&lt;P&gt;              OUTPUT = WA_RECORD-LIFNR.&lt;/P&gt;&lt;P&gt;    MODIFY I_RECORD FROM WA_RECORD&lt;/P&gt;&lt;P&gt;                    INDEX SY-TABIX&lt;/P&gt;&lt;P&gt;                    TRANSPORTING LIFNR.&lt;/P&gt;&lt;P&gt;    CLEAR WA_RECORD.&lt;/P&gt;&lt;P&gt;  ENDLOOP.* Input file validation&lt;/P&gt;&lt;P&gt;  PERFORM VALIDATE_FLATFILE_DATA.  IF P_TEST = C_TRUE.&lt;/P&gt;&lt;P&gt;    IF I_ERR_REC[] IS INITIAL.&lt;/P&gt;&lt;P&gt;      MESSAGE I000 WITH TEXT-032.&lt;/P&gt;&lt;P&gt;      STOP.&lt;/P&gt;&lt;P&gt;    ELSE.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; Display all the error records at the input level.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      PERFORM DISPLAY_INPERR_RECORDS.&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;      PERFORM DOWNLOAD_ERROR_FILE.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;  ELSE.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Build BDC Data&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    PERFORM BUILD_BDC_DATA.&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;    PERFORM DOWNLOAD_ERROR_FILE.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Display the status report.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    PERFORM DISPLAY_PROCESSED_RECORDS.&lt;/P&gt;&lt;P&gt;  ENDIF.END-OF-SELECTION.  REFRESH:  I_RECORD,&lt;/P&gt;&lt;P&gt;            I_ERR_REC,&lt;/P&gt;&lt;P&gt;            I_LOEKZ,&lt;/P&gt;&lt;P&gt;            I_MATNR,&lt;/P&gt;&lt;P&gt;            I_ZMVXREF,&lt;/P&gt;&lt;P&gt;            I_LFA1,&lt;/P&gt;&lt;P&gt;            I_T024E,&lt;/P&gt;&lt;P&gt;            I_FIELDCAT,&lt;/P&gt;&lt;P&gt;            I_LISTHEADER,&lt;/P&gt;&lt;P&gt;            I_ALV_EVENT,&lt;/P&gt;&lt;P&gt;            I_SORT,&lt;/P&gt;&lt;P&gt;            I_BDCDATA,&lt;/P&gt;&lt;P&gt;            I_MESSTAB,&lt;/P&gt;&lt;P&gt;            I_STR1.  FREE: I_RECORD,&lt;/P&gt;&lt;P&gt;        I_ERR_REC,&lt;/P&gt;&lt;P&gt;        I_LOEKZ,&lt;/P&gt;&lt;P&gt;        I_MATNR,&lt;/P&gt;&lt;P&gt;        I_ZMVXREF,&lt;/P&gt;&lt;P&gt;        I_LFA1,&lt;/P&gt;&lt;P&gt;        I_T024E,&lt;/P&gt;&lt;P&gt;        I_FIELDCAT,&lt;/P&gt;&lt;P&gt;        I_LISTHEADER,&lt;/P&gt;&lt;P&gt;        I_ALV_EVENT,&lt;/P&gt;&lt;P&gt;        I_SORT,&lt;/P&gt;&lt;P&gt;        I_BDCDATA,&lt;/P&gt;&lt;P&gt;        I_MESSTAB,&lt;/P&gt;&lt;P&gt;        I_STR1.*&amp;amp;----&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;*&amp;amp;      Form  GET_file_name&lt;/P&gt;&lt;P&gt;*&amp;amp;----&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      Fetches the file and path from the presentation system&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; --&amp;gt;  p1        Path along with the file name&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;FORM GET_FILE_NAME USING L_FILE LIKE RLGRAP-FILENAME.  CALL FUNCTION 'WS_FILENAME_GET'&lt;/P&gt;&lt;P&gt;       EXPORTING&lt;/P&gt;&lt;P&gt;            MASK             = ',&lt;STRONG&gt;.TXT,&lt;/STRONG&gt;.txt.'&lt;/P&gt;&lt;P&gt;            MODE             = 'O'&lt;/P&gt;&lt;P&gt;            TITLE            = TEXT-011&lt;/P&gt;&lt;P&gt;       IMPORTING&lt;/P&gt;&lt;P&gt;            FILENAME         = L_FILE&lt;/P&gt;&lt;P&gt;       EXCEPTIONS&lt;/P&gt;&lt;P&gt;            INV_WINSYS       = 1&lt;/P&gt;&lt;P&gt;            NO_BATCH         = 2&lt;/P&gt;&lt;P&gt;            SELECTION_CANCEL = 3&lt;/P&gt;&lt;P&gt;            SELECTION_ERROR  = 4&lt;/P&gt;&lt;P&gt;            OTHERS           = 5.&lt;/P&gt;&lt;P&gt;  CASE SY-SUBRC.&lt;/P&gt;&lt;P&gt;    WHEN 1.&lt;/P&gt;&lt;P&gt;      MESSAGE I000 WITH TEXT-084.&lt;/P&gt;&lt;P&gt;      STOP.&lt;/P&gt;&lt;P&gt;    WHEN 2.&lt;/P&gt;&lt;P&gt;      MESSAGE I000 WITH TEXT-085.&lt;/P&gt;&lt;P&gt;      STOP.&lt;/P&gt;&lt;P&gt;    WHEN 3.&lt;/P&gt;&lt;P&gt;      MESSAGE I000 WITH TEXT-086.&lt;/P&gt;&lt;P&gt;      STOP.&lt;/P&gt;&lt;P&gt;    WHEN 4.&lt;/P&gt;&lt;P&gt;      MESSAGE I000 WITH TEXT-087.&lt;/P&gt;&lt;P&gt;      STOP.&lt;/P&gt;&lt;P&gt;  ENDCASE.&lt;/P&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;ENDFORM.                    " GET_file_name&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  upload_flatfile_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;      Uploading data from Flat 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;*&lt;/P&gt;&lt;P&gt;FORM UPLOAD_FLATFILE_DATA&lt;/P&gt;&lt;P&gt;                      TABLES I_L_RECORD STRUCTURE WA_RECORD&lt;/P&gt;&lt;P&gt;                      USING L_FILENAME TYPE STRING.  DATA WA_L_RECORD TYPE T_RECORD.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Upload the Flat file data&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  IF RB_LOCAL EQ C_TRUE. "File is on the Local System&lt;/P&gt;&lt;P&gt;    CALL FUNCTION 'GUI_UPLOAD'&lt;/P&gt;&lt;P&gt;         EXPORTING&lt;/P&gt;&lt;P&gt;              FILENAME                = L_FILENAME&lt;/P&gt;&lt;P&gt;              FILETYPE                = 'ASC'&lt;/P&gt;&lt;P&gt;              HAS_FIELD_SEPARATOR     = 'X'&lt;/P&gt;&lt;P&gt;         TABLES&lt;/P&gt;&lt;P&gt;              DATA_TAB                = I_L_RECORD&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.    CASE SY-SUBRC.&lt;/P&gt;&lt;P&gt;      WHEN 0.&lt;/P&gt;&lt;P&gt;        DESCRIBE TABLE I_L_RECORD LINES V_LINE.&lt;/P&gt;&lt;P&gt;        IF V_LINE EQ 0.&lt;/P&gt;&lt;P&gt;          MESSAGE I000 WITH TEXT-065.&lt;/P&gt;&lt;P&gt;          STOP.&lt;/P&gt;&lt;P&gt;        ENDIF.&lt;/P&gt;&lt;P&gt;      WHEN 1.&lt;/P&gt;&lt;P&gt;        MESSAGE I000 WITH TEXT-068.&lt;/P&gt;&lt;P&gt;        STOP.&lt;/P&gt;&lt;P&gt;      WHEN 2.&lt;/P&gt;&lt;P&gt;        MESSAGE I000 WITH TEXT-069.&lt;/P&gt;&lt;P&gt;        STOP.&lt;/P&gt;&lt;P&gt;      WHEN 3.&lt;/P&gt;&lt;P&gt;        MESSAGE I000 WITH TEXT-070.&lt;/P&gt;&lt;P&gt;        STOP.&lt;/P&gt;&lt;P&gt;      WHEN 4.&lt;/P&gt;&lt;P&gt;        MESSAGE I000 WITH TEXT-071.&lt;/P&gt;&lt;P&gt;        STOP.&lt;/P&gt;&lt;P&gt;      WHEN 5.&lt;/P&gt;&lt;P&gt;        MESSAGE I000 WITH TEXT-072.&lt;/P&gt;&lt;P&gt;        STOP.&lt;/P&gt;&lt;P&gt;      WHEN 6.&lt;/P&gt;&lt;P&gt;        MESSAGE I000 WITH TEXT-073.&lt;/P&gt;&lt;P&gt;        STOP.&lt;/P&gt;&lt;P&gt;      WHEN 7.&lt;/P&gt;&lt;P&gt;        MESSAGE I000 WITH TEXT-074.&lt;/P&gt;&lt;P&gt;        STOP.&lt;/P&gt;&lt;P&gt;      WHEN 8.&lt;/P&gt;&lt;P&gt;        MESSAGE I000 WITH TEXT-075.&lt;/P&gt;&lt;P&gt;        STOP.&lt;/P&gt;&lt;P&gt;      WHEN 9.&lt;/P&gt;&lt;P&gt;        MESSAGE I000 WITH TEXT-076.&lt;/P&gt;&lt;P&gt;        STOP.&lt;/P&gt;&lt;P&gt;      WHEN 10.&lt;/P&gt;&lt;P&gt;        MESSAGE I000 WITH TEXT-077.&lt;/P&gt;&lt;P&gt;        STOP.&lt;/P&gt;&lt;P&gt;      WHEN 11.&lt;/P&gt;&lt;P&gt;        MESSAGE I000 WITH TEXT-078.&lt;/P&gt;&lt;P&gt;        STOP.&lt;/P&gt;&lt;P&gt;      WHEN 12.&lt;/P&gt;&lt;P&gt;        MESSAGE I000 WITH TEXT-079.&lt;/P&gt;&lt;P&gt;        STOP.&lt;/P&gt;&lt;P&gt;      WHEN 13.&lt;/P&gt;&lt;P&gt;        MESSAGE I000 WITH TEXT-080.&lt;/P&gt;&lt;P&gt;        STOP.&lt;/P&gt;&lt;P&gt;      WHEN 14.&lt;/P&gt;&lt;P&gt;        MESSAGE I000 WITH TEXT-081.&lt;/P&gt;&lt;P&gt;        STOP.&lt;/P&gt;&lt;P&gt;      WHEN 15.&lt;/P&gt;&lt;P&gt;        MESSAGE I000 WITH TEXT-082.&lt;/P&gt;&lt;P&gt;        STOP.&lt;/P&gt;&lt;P&gt;      WHEN 16.&lt;/P&gt;&lt;P&gt;        MESSAGE I000 WITH TEXT-083.&lt;/P&gt;&lt;P&gt;        STOP.&lt;/P&gt;&lt;P&gt;    ENDCASE.&lt;/P&gt;&lt;P&gt;    CLEAR V_LINE.&lt;/P&gt;&lt;P&gt;  ELSEIF RB_SERVE EQ C_TRUE. "File is on the Application Server&lt;/P&gt;&lt;P&gt;    P_MODE = C_BACKGROUND.&lt;/P&gt;&lt;P&gt;    OPEN DATASET P_FILE1 FOR INPUT IN TEXT MODE.&lt;/P&gt;&lt;P&gt;    CHECK SY-SUBRC EQ C_SUCCESS.&lt;/P&gt;&lt;P&gt;    CLEAR WA_STR1.&lt;/P&gt;&lt;P&gt;    DO.&lt;/P&gt;&lt;P&gt;      READ DATASET P_FILE1 INTO WA_STR1.&lt;/P&gt;&lt;P&gt;      IF SY-SUBRC  0.      " NE SUCCESS.&lt;/P&gt;&lt;P&gt;        EXIT.&lt;/P&gt;&lt;P&gt;      ELSEIF SY-SUBRC EQ C_SUCCESS.&lt;/P&gt;&lt;P&gt;        APPEND WA_STR1 TO I_STR1.&lt;/P&gt;&lt;P&gt;        CLEAR WA_STR1.&lt;/P&gt;&lt;P&gt;      ENDIF.                  " ENDIF on SY-SUBRC 0 Check.&lt;/P&gt;&lt;P&gt;    ENDDO.                    " ENDDO    DELETE I_STR1 WHERE SLINE EQ ' '.&lt;/P&gt;&lt;P&gt;    DESCRIBE TABLE I_STR1 LINES V_LINE.&lt;/P&gt;&lt;P&gt;    IF V_LINE EQ 0.&lt;/P&gt;&lt;P&gt;      MESSAGE S000 WITH TEXT-065.&lt;/P&gt;&lt;P&gt;      STOP.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;    LOOP AT I_STR1 INTO WA_STR1.&lt;/P&gt;&lt;P&gt;      CLEAR: WA_L_RECORD.&lt;/P&gt;&lt;P&gt;      SPLIT WA_STR1-SLINE AT V_STR&lt;/P&gt;&lt;P&gt;      INTO WA_L_RECORD-LIFNR&lt;/P&gt;&lt;P&gt;           WA_L_RECORD-EVART&lt;/P&gt;&lt;P&gt;           WA_L_RECORD-EKORG&lt;/P&gt;&lt;P&gt;           WA_L_RECORD-EKGRP&lt;/P&gt;&lt;P&gt;           WA_L_RECORD-WERKS&lt;/P&gt;&lt;P&gt;           WA_L_RECORD-LGORT&lt;/P&gt;&lt;P&gt;           WA_L_RECORD-KDATB&lt;/P&gt;&lt;P&gt;           WA_L_RECORD-KDATE&lt;/P&gt;&lt;P&gt;           WA_L_RECORD-ZTERM&lt;/P&gt;&lt;P&gt;           WA_L_RECORD-KTWRT&lt;/P&gt;&lt;P&gt;           WA_L_RECORD-EPSTP&lt;/P&gt;&lt;P&gt;           WA_L_RECORD-EMATN&lt;/P&gt;&lt;P&gt;           WA_L_RECORD-KTMNG&lt;/P&gt;&lt;P&gt;           WA_L_RECORD-NETPR&lt;/P&gt;&lt;P&gt;           WA_L_RECORD-PEINH&lt;/P&gt;&lt;P&gt;           WA_L_RECORD-BPRME&lt;/P&gt;&lt;P&gt;           WA_L_RECORD-IDNLF&lt;/P&gt;&lt;P&gt;           WA_L_RECORD-WEBRE&lt;/P&gt;&lt;P&gt;           WA_L_RECORD-MEPRF&lt;/P&gt;&lt;P&gt;           WA_L_RECORD-LTEX1&lt;/P&gt;&lt;P&gt;           WA_L_RECORD-DATAB&lt;/P&gt;&lt;P&gt;           WA_L_RECORD-DATBI&lt;/P&gt;&lt;P&gt;           WA_L_RECORD-KSCHL&lt;/P&gt;&lt;P&gt;           WA_L_RECORD-KBETR&lt;/P&gt;&lt;P&gt;           WA_L_RECORD-KONWA&lt;/P&gt;&lt;P&gt;           WA_L_RECORD-KPEIN&lt;/P&gt;&lt;P&gt;           WA_L_RECORD-KMEIN&lt;/P&gt;&lt;P&gt;           WA_L_RECORD-KSTBM&lt;/P&gt;&lt;P&gt;           WA_L_RECORD-KBETR_01&lt;/P&gt;&lt;P&gt;           WA_L_RECORD-DEL_FLAG&lt;/P&gt;&lt;P&gt;           WA_L_RECORD-ERR_MSG.&lt;/P&gt;&lt;P&gt;      APPEND WA_L_RECORD TO I_L_RECORD.&lt;/P&gt;&lt;P&gt;      CLEAR: WA_L_RECORD,&lt;/P&gt;&lt;P&gt;              WA_STR1.&lt;/P&gt;&lt;P&gt;    ENDLOOP.&lt;/P&gt;&lt;P&gt;    REFRESH I_STR1.&lt;/P&gt;&lt;P&gt;    CLOSE DATASET P_FILE1.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;ENDFORM.&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  BDC_DYNPRO&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;      Data populated into i_bdcdata table for 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 BDC_DYNPRO USING PROGRAM DYNPRO.&lt;/P&gt;&lt;P&gt;  CLEAR WA_BDCDATA.&lt;/P&gt;&lt;P&gt;  WA_BDCDATA-PROGRAM  = PROGRAM.&lt;/P&gt;&lt;P&gt;  WA_BDCDATA-DYNPRO   = DYNPRO.&lt;/P&gt;&lt;P&gt;  WA_BDCDATA-DYNBEGIN = C_TRUE.&lt;/P&gt;&lt;P&gt;  APPEND WA_BDCDATA TO I_BDCDATA.&lt;/P&gt;&lt;P&gt;ENDFORM.&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  BDC_FIELD&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;      Data populated into i_bdcdata table for fields&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 BDC_FIELD USING FNAM FVAL.&lt;/P&gt;&lt;P&gt;  CLEAR WA_BDCDATA.&lt;/P&gt;&lt;P&gt;  WA_BDCDATA-FNAM = FNAM.&lt;/P&gt;&lt;P&gt;  WA_BDCDATA-FVAL = FVAL.&lt;/P&gt;&lt;P&gt;  APPEND WA_BDCDATA TO I_BDCDATA.&lt;/P&gt;&lt;P&gt;ENDFORM.&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  convert_date&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;      Converting the data from the file format to mm/dd/yyyy format&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;lt;--P_wa_record_kdatb  Source Date&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     &amp;lt;--p_l_conv_date      Target Date&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 CONVERT_DATE USING L_DATE&lt;/P&gt;&lt;P&gt;                        L_TAR_DATE.&lt;/P&gt;&lt;P&gt;  CONCATENATE L_DATE+0(2)&lt;/P&gt;&lt;P&gt;              '/'&lt;/P&gt;&lt;P&gt;              L_DATE+3(2)&lt;/P&gt;&lt;P&gt;              '/'&lt;/P&gt;&lt;P&gt;              L_DATE+6(4)&lt;/P&gt;&lt;P&gt;              INTO L_TAR_DATE.&lt;/P&gt;&lt;P&gt;ENDFORM.                    " convert_date&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  validate_flatfile_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;      Validating the input 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 VALIDATE_FLATFILE_DATA.  DATA: L_TODAY LIKE SY-DATUM,&lt;/P&gt;&lt;P&gt;        L_STARTDATE_C LIKE SY-DATUM,&lt;/P&gt;&lt;P&gt;        L_ENDDATE_C LIKE SY-DATUM,&lt;/P&gt;&lt;P&gt;        L_ENDDATE_C1 LIKE SY-DATUM,&lt;/P&gt;&lt;P&gt;        L_STARTDATE_C1 LIKE SY-DATUM,&lt;/P&gt;&lt;P&gt;        L_STARTDATE(8),&lt;/P&gt;&lt;P&gt;        L_ENDDATE(8).* Fetch indicator for all records on the material, plant &amp;amp; storage&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;location combination.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  IF NOT I_RECORD[] IS INITIAL.&lt;/P&gt;&lt;P&gt;    REFRESH I_LOEKZ.&lt;/P&gt;&lt;P&gt;    SELECT EMATN            " Material Number&lt;/P&gt;&lt;P&gt;           WERKS            " Plant&lt;/P&gt;&lt;P&gt;           LGORT            " Storage Location&lt;/P&gt;&lt;P&gt;           BSTYP            " Purchasing Document Category&lt;/P&gt;&lt;P&gt;           LOEKZ            " Deletion indicator&lt;/P&gt;&lt;P&gt;      INTO TABLE I_LOEKZ&lt;/P&gt;&lt;P&gt;      FROM EKPO&lt;/P&gt;&lt;P&gt;      FOR ALL ENTRIES IN I_RECORD&lt;/P&gt;&lt;P&gt;      WHERE EMATN = I_RECORD-EMATN&lt;/P&gt;&lt;P&gt;        AND WERKS = I_RECORD-WERKS&lt;/P&gt;&lt;P&gt;        AND LGORT = I_RECORD-LGORT&lt;/P&gt;&lt;P&gt;        AND BSTYP = C_BSTYP&lt;/P&gt;&lt;P&gt;        AND LOEKZ = C_LOEKZ_MARKED.&lt;/P&gt;&lt;P&gt;    IF SY-SUBRC EQ 0.&lt;/P&gt;&lt;P&gt;      SORT I_LOEKZ BY EMATN WERKS LGORT BSTYP LOEKZ.&lt;/P&gt;&lt;P&gt;    ENDIF.* Fetching Plants for all entries in the selection screen&lt;/P&gt;&lt;P&gt;    REFRESH I_T001W.&lt;/P&gt;&lt;P&gt;    SELECT WERKS  "Plant&lt;/P&gt;&lt;P&gt;        INTO TABLE I_T001W&lt;/P&gt;&lt;P&gt;        FROM T001W&lt;/P&gt;&lt;P&gt;        WHERE WERKS IN S_WERKS.&lt;/P&gt;&lt;P&gt;    IF SY-SUBRC EQ 0.&lt;/P&gt;&lt;P&gt;      SORT I_T001W BY WERKS.&lt;/P&gt;&lt;P&gt;    ENDIF.* Fetching materials for the plants listed in flat file&lt;/P&gt;&lt;P&gt;    REFRESH I_MATNR.&lt;/P&gt;&lt;P&gt;    SELECT MATNR          " Material Number&lt;/P&gt;&lt;P&gt;      INTO TABLE I_MATNR&lt;/P&gt;&lt;P&gt;      FROM MARC&lt;/P&gt;&lt;P&gt;      FOR ALL ENTRIES IN I_RECORD&lt;/P&gt;&lt;P&gt;      WHERE WERKS = I_RECORD-WERKS.&lt;/P&gt;&lt;P&gt;    IF SY-SUBRC EQ 0.&lt;/P&gt;&lt;P&gt;      SORT I_MATNR BY MATNR.&lt;/P&gt;&lt;P&gt;    ENDIF.* Fetching Company Codes for repective Purchase Organizations&lt;/P&gt;&lt;P&gt;    REFRESH I_T024E.&lt;/P&gt;&lt;P&gt;    SELECT EKORG       "  Purchase Organization&lt;/P&gt;&lt;P&gt;           BUKRS       "  Company Code&lt;/P&gt;&lt;P&gt;        INTO TABLE I_T024E&lt;/P&gt;&lt;P&gt;        FROM T024E&lt;/P&gt;&lt;P&gt;        WHERE EKORG IN S_EKORG.&lt;/P&gt;&lt;P&gt;    IF SY-SUBRC EQ 0.&lt;/P&gt;&lt;P&gt;      SORT I_T024E BY EKORG.&lt;/P&gt;&lt;P&gt;    ENDIF.* Fetching SAP Data using Legacy Data.&lt;/P&gt;&lt;P&gt;    REFRESH I_ZMVXREF.&lt;/P&gt;&lt;P&gt;    SELECT D_ALTKN&lt;/P&gt;&lt;P&gt;           D_BUKRS&lt;/P&gt;&lt;P&gt;           M_ALTKN&lt;/P&gt;&lt;P&gt;        INTO TABLE I_ZMVXREF&lt;/P&gt;&lt;P&gt;        FROM ZMVXREF&lt;/P&gt;&lt;P&gt;        FOR ALL ENTRIES IN I_RECORD&lt;/P&gt;&lt;P&gt;        WHERE D_ALTKN = I_RECORD-LIFNR.&lt;/P&gt;&lt;P&gt;    IF SY-SUBRC EQ 0.&lt;/P&gt;&lt;P&gt;      SORT I_ZMVXREF BY D_ALTKN D_BUKRS.&lt;/P&gt;&lt;P&gt;    ENDIF.* Fetching Vendors from LFA1&lt;/P&gt;&lt;P&gt;    IF NOT I_ZMVXREF[] IS INITIAL.&lt;/P&gt;&lt;P&gt;      REFRESH I_LFA1.&lt;/P&gt;&lt;P&gt;      SELECT LIFNR&lt;/P&gt;&lt;P&gt;         INTO TABLE I_LFA1&lt;/P&gt;&lt;P&gt;         FROM LFA1&lt;/P&gt;&lt;P&gt;         FOR ALL ENTRIES IN I_ZMVXREF&lt;/P&gt;&lt;P&gt;         WHERE LIFNR = I_ZMVXREF-M_ALTKN.&lt;/P&gt;&lt;P&gt;      IF SY-SUBRC EQ 0.&lt;/P&gt;&lt;P&gt;        SORT I_LFA1 BY LIFNR.&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;P&gt;    ENDIF.* Start Validating the flat file&lt;/P&gt;&lt;P&gt;    CLEAR: WA_RECORD,&lt;/P&gt;&lt;P&gt;           WA_T024E,&lt;/P&gt;&lt;P&gt;           WA_ZMVXREF,&lt;/P&gt;&lt;P&gt;           WA_LFA1,&lt;/P&gt;&lt;P&gt;           WA_LOEKZ,&lt;/P&gt;&lt;P&gt;           WA_MATNR.    LOOP AT I_RECORD INTO WA_RECORD.&lt;/P&gt;&lt;P&gt;      L_TODAY = SY-DATUM.&lt;/P&gt;&lt;P&gt;      L_STARTDATE = WA_RECORD-KDATB.&lt;/P&gt;&lt;P&gt;      L_ENDDATE = WA_RECORD-KDATE.      IF WA_RECORD-DEL_FLAG IS INITIAL.&lt;/P&gt;&lt;P&gt;        READ TABLE I_T001W INTO WA_T001W&lt;/P&gt;&lt;P&gt;                           WITH KEY WERKS = WA_RECORD-WERKS&lt;/P&gt;&lt;P&gt;                           BINARY SEARCH.&lt;/P&gt;&lt;P&gt;        IF SY-SUBRC EQ 0.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  Cross-Reference check performed for the given Vendors&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;          READ TABLE I_T024E INTO WA_T024E&lt;/P&gt;&lt;P&gt;                             WITH KEY EKORG = WA_RECORD-EKORG&lt;/P&gt;&lt;P&gt;                             BINARY SEARCH.&lt;/P&gt;&lt;P&gt;          IF SY-SUBRC NE 0.&lt;/P&gt;&lt;P&gt;            V_CROSS_REFERENCE_ERROR = C_VEN_ERR3.&lt;/P&gt;&lt;P&gt;          ELSE.&lt;/P&gt;&lt;P&gt;            READ TABLE I_ZMVXREF INTO WA_ZMVXREF&lt;/P&gt;&lt;P&gt;                        WITH KEY D_ALTKN = WA_RECORD-LIFNR&lt;/P&gt;&lt;P&gt;                                 D_BUKRS = P_BUKRS&lt;/P&gt;&lt;P&gt;                        BINARY SEARCH.&lt;/P&gt;&lt;P&gt;            IF SY-SUBRC EQ 0.&lt;/P&gt;&lt;P&gt;              READ TABLE I_LFA1 INTO WA_LFA1&lt;/P&gt;&lt;P&gt;                         WITH KEY LIFNR = WA_ZMVXREF-M_ALTKN&lt;/P&gt;&lt;P&gt;                         BINARY SEARCH.&lt;/P&gt;&lt;P&gt;              IF SY-SUBRC EQ 0.&lt;/P&gt;&lt;P&gt;                V_CROSS_REFERENCE_ERROR = C_VEN_SUCS.&lt;/P&gt;&lt;P&gt;              ELSE.&lt;/P&gt;&lt;P&gt;                V_CROSS_REFERENCE_ERROR = C_VEN_ERR2.&lt;/P&gt;&lt;P&gt;              ENDIF.&lt;/P&gt;&lt;P&gt;            ELSE.&lt;/P&gt;&lt;P&gt;              V_CROSS_REFERENCE_ERROR = C_VEN_ERR1.&lt;/P&gt;&lt;P&gt;            ENDIF.&lt;/P&gt;&lt;P&gt;          ENDIF.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Legacy Vendor could not be mapped&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;          IF V_CROSS_REFERENCE_ERROR EQ C_VEN_ERR1.&lt;/P&gt;&lt;P&gt;        V_INPUTERROR_FLAG = C_INPUTERROR_FLAG_YES. "Inp.file err. occurd&lt;/P&gt;&lt;P&gt;            WA_RECORD-DEL_FLAG = C_TRUE.&lt;/P&gt;&lt;P&gt;            WA_RECORD-ERR_MSG = TEXT-007.&lt;/P&gt;&lt;P&gt;            MODIFY I_RECORD FROM WA_RECORD&lt;/P&gt;&lt;P&gt;                            TRANSPORTING DEL_FLAG&lt;/P&gt;&lt;P&gt;                                         ERR_MSG&lt;/P&gt;&lt;P&gt;                            WHERE LIFNR = WA_RECORD-LIFNR.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Legacy Vendor is mapped but the obtained SAP vendor doesn't exist.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;          ELSEIF V_CROSS_REFERENCE_ERROR EQ C_VEN_ERR2.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;          Inp.file err. occurd&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;            V_INPUTERROR_FLAG = C_INPUTERROR_FLAG_YES.&lt;/P&gt;&lt;P&gt;            WA_RECORD-DEL_FLAG = C_TRUE.&lt;/P&gt;&lt;P&gt;            WA_RECORD-ERR_MSG = TEXT-008.&lt;/P&gt;&lt;P&gt;            MODIFY I_RECORD FROM WA_RECORD&lt;/P&gt;&lt;P&gt;                            TRANSPORTING DEL_FLAG&lt;/P&gt;&lt;P&gt;                                         ERR_MSG&lt;/P&gt;&lt;P&gt;                            WHERE LIFNR = WA_RECORD-LIFNR.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Purchase Organization doesn't exist in T024E.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;          ELSEIF V_CROSS_REFERENCE_ERROR EQ C_VEN_ERR3.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;            Inp.file err. occurd&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;            V_INPUTERROR_FLAG = C_INPUTERROR_FLAG_YES.&lt;/P&gt;&lt;P&gt;            WA_RECORD-DEL_FLAG = C_TRUE.&lt;/P&gt;&lt;P&gt;            WA_RECORD-ERR_MSG = TEXT-014.&lt;/P&gt;&lt;P&gt;            MODIFY I_RECORD FROM WA_RECORD&lt;/P&gt;&lt;P&gt;                            TRANSPORTING DEL_FLAG&lt;/P&gt;&lt;P&gt;                                         ERR_MSG&lt;/P&gt;&lt;P&gt;                            WHERE EKORG = WA_RECORD-EKORG.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Vendor is mapped and validated successfully&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;          ELSEIF V_CROSS_REFERENCE_ERROR EQ C_VEN_SUCS.* Checking for the deletion indicator for that record&lt;/P&gt;&lt;P&gt;            CONCATENATE WA_RECORD-KDATB+6(4)&lt;/P&gt;&lt;P&gt;                        WA_RECORD-KDATB+3(2)&lt;/P&gt;&lt;P&gt;                        WA_RECORD-KDATB+0(2)&lt;/P&gt;&lt;P&gt;                        INTO&lt;/P&gt;&lt;P&gt;                        L_STARTDATE.&lt;/P&gt;&lt;P&gt;            MOVE L_STARTDATE TO L_STARTDATE_C.            CONCATENATE WA_RECORD-KDATB+6(4)&lt;/P&gt;&lt;P&gt;                        WA_RECORD-KDATB+0(2)&lt;/P&gt;&lt;P&gt;                        WA_RECORD-KDATB+3(2)&lt;/P&gt;&lt;P&gt;                        INTO&lt;/P&gt;&lt;P&gt;                        L_STARTDATE_C1.            CONCATENATE WA_RECORD-KDATE+6(4)&lt;/P&gt;&lt;P&gt;                        WA_RECORD-KDATE+3(2)&lt;/P&gt;&lt;P&gt;                        WA_RECORD-KDATE+0(2)&lt;/P&gt;&lt;P&gt;                        INTO&lt;/P&gt;&lt;P&gt;                        L_ENDDATE.&lt;/P&gt;&lt;P&gt;            MOVE L_ENDDATE TO L_ENDDATE_C.            CONCATENATE WA_RECORD-KDATE+6(4)&lt;/P&gt;&lt;P&gt;                        WA_RECORD-KDATE+0(2)&lt;/P&gt;&lt;P&gt;                        WA_RECORD-KDATE+3(2)&lt;/P&gt;&lt;P&gt;                        INTO&lt;/P&gt;&lt;P&gt;                        L_ENDDATE_C1.            READ TABLE I_LOEKZ INTO WA_LOEKZ WITH KEY&lt;/P&gt;&lt;P&gt;                                             EMATN = WA_RECORD-EMATN&lt;/P&gt;&lt;P&gt;                                             WERKS = WA_RECORD-WERKS&lt;/P&gt;&lt;P&gt;                                             LGORT = WA_RECORD-LGORT&lt;/P&gt;&lt;P&gt;                                             BINARY SEARCH.&lt;/P&gt;&lt;P&gt;            IF SY-SUBRC EQ 0.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;            Inpfle err.occured&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;              V_INPUTERROR_FLAG = C_INPUTERROR_FLAG_YES.&lt;/P&gt;&lt;P&gt;              WA_RECORD-ERR_MSG = TEXT-003.&lt;/P&gt;&lt;P&gt;              WA_RECORD-DEL_FLAG = C_TRUE.    "marking the record&lt;/P&gt;&lt;P&gt;              MODIFY I_RECORD FROM WA_RECORD&lt;/P&gt;&lt;P&gt;                              TRANSPORTING DEL_FLAG&lt;/P&gt;&lt;P&gt;                                            ERR_MSG&lt;/P&gt;&lt;P&gt;                              WHERE LIFNR = WA_RECORD-LIFNR&lt;/P&gt;&lt;P&gt;                                AND EVART = WA_RECORD-EVART&lt;/P&gt;&lt;P&gt;                                AND EKORG = WA_RECORD-EKORG&lt;/P&gt;&lt;P&gt;                                AND EKGRP = WA_RECORD-EKGRP&lt;/P&gt;&lt;P&gt;                                AND WERKS = WA_RECORD-WERKS&lt;/P&gt;&lt;P&gt;                                AND LGORT = WA_RECORD-LGORT&lt;/P&gt;&lt;P&gt;                                AND KDATB = WA_RECORD-KDATB&lt;/P&gt;&lt;P&gt;                                AND KDATE = WA_RECORD-KDATE&lt;/P&gt;&lt;P&gt;                                AND ZTERM = WA_RECORD-ZTERM&lt;/P&gt;&lt;P&gt;                                AND KTWRT = WA_RECORD-KTWRT&lt;/P&gt;&lt;P&gt;                                AND EPSTP = WA_RECORD-EPSTP&lt;/P&gt;&lt;P&gt;                                AND EMATN = WA_RECORD-EMATN.* Validating the Purchasing Organization for Blank/Null&lt;/P&gt;&lt;P&gt;            ELSEIF WA_RECORD-EKORG IS INITIAL.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;            Inpfle err.occured&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;              V_INPUTERROR_FLAG = C_INPUTERROR_FLAG_YES.&lt;/P&gt;&lt;P&gt;              WA_RECORD-ERR_MSG = TEXT-010.&lt;/P&gt;&lt;P&gt;              WA_RECORD-DEL_FLAG = C_TRUE.&lt;/P&gt;&lt;P&gt;              MODIFY I_RECORD FROM WA_RECORD&lt;/P&gt;&lt;P&gt;                              TRANSPORTING DEL_FLAG&lt;/P&gt;&lt;P&gt;                                           ERR_MSG&lt;/P&gt;&lt;P&gt;                              WHERE LIFNR = WA_RECORD-LIFNR&lt;/P&gt;&lt;P&gt;                                AND EVART = WA_RECORD-EVART&lt;/P&gt;&lt;P&gt;                                AND EKORG = WA_RECORD-EKORG&lt;/P&gt;&lt;P&gt;                                AND EKGRP = WA_RECORD-EKGRP&lt;/P&gt;&lt;P&gt;                                AND WERKS = WA_RECORD-WERKS&lt;/P&gt;&lt;P&gt;                                AND LGORT = WA_RECORD-LGORT&lt;/P&gt;&lt;P&gt;                                AND KDATB = WA_RECORD-KDATB&lt;/P&gt;&lt;P&gt;                                AND KDATE = WA_RECORD-KDATE&lt;/P&gt;&lt;P&gt;                                AND ZTERM = WA_RECORD-ZTERM&lt;/P&gt;&lt;P&gt;                                AND KTWRT = WA_RECORD-KTWRT&lt;/P&gt;&lt;P&gt;                                AND EPSTP = WA_RECORD-EPSTP&lt;/P&gt;&lt;P&gt;                                AND EMATN = WA_RECORD-EMATN.* Validating the Plant for Blank/Null&lt;/P&gt;&lt;P&gt;            ELSEIF WA_RECORD-WERKS IS INITIAL.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;            Inpfle err.occured&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;              V_INPUTERROR_FLAG = C_INPUTERROR_FLAG_YES.&lt;/P&gt;&lt;P&gt;              WA_RECORD-ERR_MSG = TEXT-039.&lt;/P&gt;&lt;P&gt;              WA_RECORD-DEL_FLAG = C_TRUE.&lt;/P&gt;&lt;P&gt;              MODIFY I_RECORD FROM WA_RECORD&lt;/P&gt;&lt;P&gt;                              TRANSPORTING DEL_FLAG&lt;/P&gt;&lt;P&gt;                                           ERR_MSG&lt;/P&gt;&lt;P&gt;                              WHERE LIFNR = WA_RECORD-LIFNR&lt;/P&gt;&lt;P&gt;                                AND EVART = WA_RECORD-EVART&lt;/P&gt;&lt;P&gt;                                AND EKORG = WA_RECORD-EKORG&lt;/P&gt;&lt;P&gt;                                AND EKGRP = WA_RECORD-EKGRP&lt;/P&gt;&lt;P&gt;                                AND WERKS = WA_RECORD-WERKS&lt;/P&gt;&lt;P&gt;                                AND LGORT = WA_RECORD-LGORT&lt;/P&gt;&lt;P&gt;                                AND KDATB = WA_RECORD-KDATB&lt;/P&gt;&lt;P&gt;                                AND KDATE = WA_RECORD-KDATE&lt;/P&gt;&lt;P&gt;                                AND ZTERM = WA_RECORD-ZTERM&lt;/P&gt;&lt;P&gt;                                AND KTWRT = WA_RECORD-KTWRT&lt;/P&gt;&lt;P&gt;                                AND EPSTP = WA_RECORD-EPSTP&lt;/P&gt;&lt;P&gt;                                AND EMATN = WA_RECORD-EMATN.* Validating the Contract Validity Start Date&lt;/P&gt;&lt;P&gt;            ELSEIF L_STARTDATE_C1 GT L_TODAY.             "#EC PORTABLE&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;            Inpfle err.occured&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;              V_INPUTERROR_FLAG = C_INPUTERROR_FLAG_YES.&lt;/P&gt;&lt;P&gt;              WA_RECORD-ERR_MSG = TEXT-004.&lt;/P&gt;&lt;P&gt;              WA_RECORD-DEL_FLAG = C_TRUE.      "marking the record&lt;/P&gt;&lt;P&gt;              MODIFY I_RECORD FROM WA_RECORD&lt;/P&gt;&lt;P&gt;                              TRANSPORTING DEL_FLAG&lt;/P&gt;&lt;P&gt;                                           ERR_MSG&lt;/P&gt;&lt;P&gt;                              WHERE LIFNR = WA_RECORD-LIFNR&lt;/P&gt;&lt;P&gt;                                AND EVART = WA_RECORD-EVART&lt;/P&gt;&lt;P&gt;                                AND EKORG = WA_RECORD-EKORG&lt;/P&gt;&lt;P&gt;                                AND EKGRP = WA_RECORD-EKGRP&lt;/P&gt;&lt;P&gt;                                AND WERKS = WA_RECORD-WERKS&lt;/P&gt;&lt;P&gt;                                AND LGORT = WA_RECORD-LGORT&lt;/P&gt;&lt;P&gt;                                AND KDATB = WA_RECORD-KDATB.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Validating the Contract Validity End Date&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;            ELSEIF L_ENDDATE_C1 LE L_TODAY.               "#EC PORTABLE&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;            Inpfle err.ocrd&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;              V_INPUTERROR_FLAG = C_INPUTERROR_FLAG_YES.&lt;/P&gt;&lt;P&gt;              WA_RECORD-ERR_MSG = TEXT-005.&lt;/P&gt;&lt;P&gt;              WA_RECORD-DEL_FLAG = C_TRUE.    "marking the record&lt;/P&gt;&lt;P&gt;              MODIFY I_RECORD FROM WA_RECORD&lt;/P&gt;&lt;P&gt;                              TRANSPORTING DEL_FLAG&lt;/P&gt;&lt;P&gt;                                           ERR_MSG&lt;/P&gt;&lt;P&gt;                              WHERE LIFNR = WA_RECORD-LIFNR&lt;/P&gt;&lt;P&gt;                                AND EVART = WA_RECORD-EVART&lt;/P&gt;&lt;P&gt;                                AND EKORG = WA_RECORD-EKORG&lt;/P&gt;&lt;P&gt;                                AND EKGRP = WA_RECORD-EKGRP&lt;/P&gt;&lt;P&gt;                                AND WERKS = WA_RECORD-WERKS&lt;/P&gt;&lt;P&gt;                                AND LGORT = WA_RECORD-LGORT&lt;/P&gt;&lt;P&gt;                                AND KDATB = WA_RECORD-KDATB&lt;/P&gt;&lt;P&gt;                                AND KDATE = WA_RECORD-KDATE.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Checking for Material under the Plant for Agreement Type 'WK'&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;            ELSEIF WA_RECORD-EVART = C_WK.&lt;/P&gt;&lt;P&gt;              READ TABLE I_MATNR INTO WA_MATNR&lt;/P&gt;&lt;P&gt;                                 WITH KEY MATNR = WA_RECORD-EMATN&lt;/P&gt;&lt;P&gt;                                 BINARY SEARCH.&lt;/P&gt;&lt;P&gt;              IF SY-SUBRC NE 0.&lt;/P&gt;&lt;P&gt;             V_INPUTERROR_FLAG = C_INPUTERROR_FLAG_YES. "Inpfle err.ocrd&lt;/P&gt;&lt;P&gt;                WA_RECORD-ERR_MSG = TEXT-006.&lt;/P&gt;&lt;P&gt;                WA_RECORD-DEL_FLAG = C_TRUE.   "marking the record&lt;/P&gt;&lt;P&gt;                MODIFY I_RECORD FROM WA_RECORD&lt;/P&gt;&lt;P&gt;                                TRANSPORTING DEL_FLAG&lt;/P&gt;&lt;P&gt;                                             ERR_MSG&lt;/P&gt;&lt;P&gt;                                WHERE LIFNR = WA_RECORD-LIFNR&lt;/P&gt;&lt;P&gt;                                  AND EVART = WA_RECORD-EVART&lt;/P&gt;&lt;P&gt;                                  AND EKORG = WA_RECORD-EKORG&lt;/P&gt;&lt;P&gt;                                  AND EKGRP = WA_RECORD-EKGRP&lt;/P&gt;&lt;P&gt;                                  AND WERKS = WA_RECORD-WERKS&lt;/P&gt;&lt;P&gt;                                  AND LGORT = WA_RECORD-LGORT&lt;/P&gt;&lt;P&gt;                                  AND KDATB = WA_RECORD-KDATB&lt;/P&gt;&lt;P&gt;                                  AND KDATE = WA_RECORD-KDATE&lt;/P&gt;&lt;P&gt;                                  AND ZTERM = WA_RECORD-ZTERM&lt;/P&gt;&lt;P&gt;                                  AND KTWRT = WA_RECORD-KTWRT&lt;/P&gt;&lt;P&gt;                                  AND EPSTP = WA_RECORD-EPSTP&lt;/P&gt;&lt;P&gt;                                  AND EMATN = WA_RECORD-EMATN.&lt;/P&gt;&lt;P&gt;              ENDIF.&lt;/P&gt;&lt;P&gt;            ENDIF.  " checking of deletion indicator&lt;/P&gt;&lt;P&gt;          ENDIF.   " checking for success of vendor cross reference&lt;/P&gt;&lt;P&gt;        ELSE.&lt;/P&gt;&lt;P&gt;          V_INPUTERROR_FLAG = C_INPUTERROR_FLAG_YES. "Inpfle err.ocrd&lt;/P&gt;&lt;P&gt;          WA_RECORD-ERR_MSG = TEXT-041.&lt;/P&gt;&lt;P&gt;          WA_RECORD-DEL_FLAG = C_TRUE.   "marking the record&lt;/P&gt;&lt;P&gt;          MODIFY I_RECORD FROM WA_RECORD&lt;/P&gt;&lt;P&gt;                          TRANSPORTING DEL_FLAG&lt;/P&gt;&lt;P&gt;                                       ERR_MSG&lt;/P&gt;&lt;P&gt;                          WHERE WERKS = WA_RECORD-WERKS.&lt;/P&gt;&lt;P&gt;        ENDIF. " Plant checked to selection screen&lt;/P&gt;&lt;P&gt;      ENDIF.  " the records for which del_flag is initial&lt;/P&gt;&lt;P&gt;      CLEAR: WA_RECORD,&lt;/P&gt;&lt;P&gt;             WA_T024E,&lt;/P&gt;&lt;P&gt;             WA_ZMVXREF,&lt;/P&gt;&lt;P&gt;             WA_LFA1,&lt;/P&gt;&lt;P&gt;             WA_LOEKZ,&lt;/P&gt;&lt;P&gt;             WA_MATNR,&lt;/P&gt;&lt;P&gt;             L_TODAY,&lt;/P&gt;&lt;P&gt;             L_STARTDATE_C,&lt;/P&gt;&lt;P&gt;             L_ENDDATE_C,&lt;/P&gt;&lt;P&gt;             L_STARTDATE,&lt;/P&gt;&lt;P&gt;             L_ENDDATE.&lt;/P&gt;&lt;P&gt;    ENDLOOP.    LOOP AT I_RECORD INTO WA_RECORD.&lt;/P&gt;&lt;P&gt;      IF WA_RECORD-DEL_FLAG = C_TRUE.&lt;/P&gt;&lt;P&gt;        APPEND WA_RECORD TO I_ERR_REC.&lt;/P&gt;&lt;P&gt;        CLEAR WA_RECORD.&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;P&gt;    ENDLOOP.  ELSE.&lt;/P&gt;&lt;P&gt;    MESSAGE E000 WITH TEXT-013.  " no records in the flat file&lt;/P&gt;&lt;P&gt;    STOP.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;ENDFORM.                    " validate_flatfile_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  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;      Downloads all records along with the records encountering the&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      input file validation error&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 DOWNLOAD_ERROR_FILE.  DATA L_ISDIR TYPE C.  IF V_INPUTERROR_FLAG = C_INPUTERROR_FLAG_YES.&lt;/P&gt;&lt;P&gt;    V_FILENAME = P_IPERR.* Check for the existence of the file.&lt;/P&gt;&lt;P&gt;    IF RB_LOCAL EQ C_TRUE.&lt;/P&gt;&lt;P&gt;      CALL FUNCTION 'TMP_GUI_GET_FILE_EXIST'&lt;/P&gt;&lt;P&gt;           EXPORTING&lt;/P&gt;&lt;P&gt;                FNAME          = P_IPERR&lt;/P&gt;&lt;P&gt;           IMPORTING&lt;/P&gt;&lt;P&gt;                ISDIR          = L_ISDIR&lt;/P&gt;&lt;P&gt;           EXCEPTIONS&lt;/P&gt;&lt;P&gt;                FILEINFO_ERROR = 1&lt;/P&gt;&lt;P&gt;                OTHERS         = 2.&lt;/P&gt;&lt;P&gt;      IF SY-SUBRC  0.&lt;/P&gt;&lt;P&gt;        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;      IF L_ISDIR EQ C_TRUE.&lt;/P&gt;&lt;P&gt;        MESSAGE I000 WITH TEXT-088.&lt;/P&gt;&lt;P&gt;        STOP.&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;P&gt;    ENDIF.    IF RB_LOCAL EQ C_TRUE.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Download the Input Error File.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      CALL FUNCTION 'GUI_DOWNLOAD'&lt;/P&gt;&lt;P&gt;           EXPORTING&lt;/P&gt;&lt;P&gt;                FILENAME                = V_FILENAME&lt;/P&gt;&lt;P&gt;                FILETYPE                = 'ASC'&lt;/P&gt;&lt;P&gt;                WRITE_FIELD_SEPARATOR   = '#'&lt;/P&gt;&lt;P&gt;           TABLES&lt;/P&gt;&lt;P&gt;                DATA_TAB                = I_ERR_REC&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;      IF SY-SUBRC  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;    ELSEIF RB_SERVE EQ C_TRUE.&lt;/P&gt;&lt;P&gt;      OPEN DATASET P_IPERR1 FOR OUTPUT IN TEXT MODE.&lt;/P&gt;&lt;P&gt;      CHECK SY-SUBRC EQ 0.&lt;/P&gt;&lt;P&gt;      CLEAR WA_ERR_REC.&lt;/P&gt;&lt;P&gt;      LOOP AT I_ERR_REC INTO WA_ERR_REC.&lt;/P&gt;&lt;P&gt;        IF WA_ERR_REC-DEL_FLAG = C_TRUE.&lt;/P&gt;&lt;P&gt;          TRANSFER WA_ERR_REC TO P_IPERR1.&lt;/P&gt;&lt;P&gt;        ENDIF.&lt;/P&gt;&lt;P&gt;        CLEAR WA_ERR_REC.&lt;/P&gt;&lt;P&gt;      ENDLOOP.&lt;/P&gt;&lt;P&gt;      CLOSE DATASET P_IPERR1.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;ENDFORM.                    " 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;P&gt;*&amp;amp;      Form  BUILD_BDC_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;Populates BDC for all the fields neccessary for Open Contract Creation&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 BUILD_BDC_DATA.&lt;/P&gt;&lt;P&gt;  DATA: L_MAT_INDEX TYPE I,&lt;/P&gt;&lt;P&gt;        L_CON_INDEX TYPE I,&lt;/P&gt;&lt;P&gt;        L_SCA_INDEX TYPE I.  CLEAR   WA_BDCDATA.&lt;/P&gt;&lt;P&gt;  REFRESH: I_BDCDATA,&lt;/P&gt;&lt;P&gt;           I_MESSTAB.* Processing the bdc&lt;/P&gt;&lt;P&gt;  CLEAR: WA_RECORD,&lt;/P&gt;&lt;P&gt;         WA_RECORDPREV,&lt;/P&gt;&lt;P&gt;         VEN_FLAG,&lt;/P&gt;&lt;P&gt;         MAT_FLAG.  LOOP AT I_RECORD INTO WA_RECORD.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   Checks for the del_flag of the record.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    IF     WA_RECORD-DEL_FLAG EQ C_TRUE&lt;/P&gt;&lt;P&gt;        OR WA_RECORD-DEL_FLAG EQ C_STRUE.&lt;/P&gt;&lt;P&gt;      CLEAR WA_RECORD.&lt;/P&gt;&lt;P&gt;      CONTINUE.&lt;/P&gt;&lt;P&gt;    ELSE.      IF  WA_RECORDPREV-LIFNR NE WA_RECORD-LIFNR&lt;/P&gt;&lt;P&gt;       OR WA_RECORDPREV-EVART NE WA_RECORD-EVART&lt;/P&gt;&lt;P&gt;       OR WA_RECORDPREV-EKORG NE WA_RECORD-EKORG&lt;/P&gt;&lt;P&gt;       OR WA_RECORDPREV-EKGRP NE WA_RECORD-EKGRP&lt;/P&gt;&lt;P&gt;       OR WA_RECORDPREV-WERKS NE WA_RECORD-WERKS&lt;/P&gt;&lt;P&gt;       OR WA_RECORDPREV-LGORT NE WA_RECORD-LGORT&lt;/P&gt;&lt;P&gt;       OR WA_RECORDPREV-KDATB NE WA_RECORD-KDATB&lt;/P&gt;&lt;P&gt;       OR WA_RECORDPREV-KDATE NE WA_RECORD-KDATE&lt;/P&gt;&lt;P&gt;       OR WA_RECORDPREV-ZTERM NE WA_RECORD-ZTERM&lt;/P&gt;&lt;P&gt;       OR WA_RECORDPREV-KTWRT NE WA_RECORD-KTWRT.        PERFORM BDC_DYNPRO      USING 'SAPMM06E' '0200'.&lt;/P&gt;&lt;P&gt;        PERFORM BDC_FIELD       USING 'BDC_CURSOR'&lt;/P&gt;&lt;P&gt;                                      'RM06E-LGORT'.&lt;/P&gt;&lt;P&gt;        PERFORM BDC_FIELD       USING 'BDC_OKCODE'&lt;/P&gt;&lt;P&gt;                                      '/00'.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  Cross-Reference check performed for the given Vendors&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;        CLEAR WA_T024E.&lt;/P&gt;&lt;P&gt;        READ TABLE I_T024E INTO WA_T024E&lt;/P&gt;&lt;P&gt;                           WITH KEY EKORG = WA_RECORD-EKORG&lt;/P&gt;&lt;P&gt;                           BINARY SEARCH.&lt;/P&gt;&lt;P&gt;        IF SY-SUBRC EQ 0.&lt;/P&gt;&lt;P&gt;          CLEAR WA_ZMVXREF.&lt;/P&gt;&lt;P&gt;          READ TABLE I_ZMVXREF INTO WA_ZMVXREF&lt;/P&gt;&lt;P&gt;                      WITH KEY D_ALTKN = WA_RECORD-LIFNR&lt;/P&gt;&lt;P&gt;                               D_BUKRS = P_BUKRS&lt;/P&gt;&lt;P&gt;                      BINARY SEARCH.&lt;/P&gt;&lt;P&gt;          IF SY-SUBRC EQ 0.&lt;/P&gt;&lt;P&gt;            PERFORM BDC_FIELD   USING 'EKKO-LIFNR'&lt;/P&gt;&lt;P&gt;                                       WA_ZMVXREF-M_ALTKN.&lt;/P&gt;&lt;P&gt;          ENDIF.&lt;/P&gt;&lt;P&gt;          CLEAR WA_ZMVXREF.&lt;/P&gt;&lt;P&gt;        ENDIF.&lt;/P&gt;&lt;P&gt;        CLEAR WA_T024E.&lt;/P&gt;&lt;P&gt;        PERFORM BDC_FIELD       USING 'RM06E-EVART'&lt;/P&gt;&lt;P&gt;                                      WA_RECORD-EVART.&lt;/P&gt;&lt;P&gt;        PERFORM BDC_FIELD       USING 'EKKO-EKORG'&lt;/P&gt;&lt;P&gt;                                      WA_RECORD-EKORG.&lt;/P&gt;&lt;P&gt;        PERFORM BDC_FIELD       USING 'EKKO-EKGRP'&lt;/P&gt;&lt;P&gt;                                      WA_RECORD-EKGRP.&lt;/P&gt;&lt;P&gt;        PERFORM BDC_FIELD       USING 'RM06E-WERKS'&lt;/P&gt;&lt;P&gt;                                      WA_RECORD-WERKS.&lt;/P&gt;&lt;P&gt;        PERFORM BDC_FIELD       USING 'RM06E-LGORT'&lt;/P&gt;&lt;P&gt;                                      WA_RECORD-LGORT.&lt;/P&gt;&lt;P&gt;        PERFORM BDC_DYNPRO      USING 'SAPMM06E' '0201'.&lt;/P&gt;&lt;P&gt;        PERFORM BDC_FIELD       USING 'BDC_CURSOR'&lt;/P&gt;&lt;P&gt;                                      'EKKO-KTWRT'.&lt;/P&gt;&lt;P&gt;        PERFORM BDC_FIELD       USING 'BDC_OKCODE'&lt;/P&gt;&lt;P&gt;                                      '=AB'.&lt;/P&gt;&lt;P&gt;        PERFORM CONVERT_DATE USING WA_RECORD-KDATB V_CONV_DATE.&lt;/P&gt;&lt;P&gt;        PERFORM BDC_FIELD       USING 'EKKO-KDATB'&lt;/P&gt;&lt;P&gt;                                      V_CONV_DATE.&lt;/P&gt;&lt;P&gt;        PERFORM CONVERT_DATE USING WA_RECORD-KDATE V_CONV_DATE.&lt;/P&gt;&lt;P&gt;        PERFORM BDC_FIELD       USING 'EKKO-KDATE'&lt;/P&gt;&lt;P&gt;                                      V_CONV_DATE.&lt;/P&gt;&lt;P&gt;        PERFORM BDC_FIELD       USING 'EKKO-ZTERM'&lt;/P&gt;&lt;P&gt;                                      WA_RECORD-ZTERM.&lt;/P&gt;&lt;P&gt;        PERFORM BDC_FIELD       USING 'EKKO-KTWRT'&lt;/P&gt;&lt;P&gt;                                        WA_RECORD-KTWRT.&lt;/P&gt;&lt;P&gt;        VEN_FLAG = 1.&lt;/P&gt;&lt;P&gt;        L_MAT_INDEX = 1. "index for table-control of material&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;         "first check for itemline&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      IF  WA_RECORDPREV-EPSTP NE WA_RECORD-EPSTP&lt;/P&gt;&lt;P&gt;       OR WA_RECORDPREV-EMATN NE WA_RECORD-EMATN&lt;/P&gt;&lt;P&gt;       OR WA_RECORDPREV-KTMNG NE WA_RECORD-KTMNG&lt;/P&gt;&lt;P&gt;       OR WA_RECORDPREV-NETPR NE WA_RECORD-NETPR&lt;/P&gt;&lt;P&gt;       OR WA_RECORDPREV-PEINH NE WA_RECORD-PEINH&lt;/P&gt;&lt;P&gt;       OR WA_RECORDPREV-BPRME NE WA_RECORD-BPRME&lt;/P&gt;&lt;P&gt;       OR WA_RECORDPREV-IDNLF NE WA_RECORD-IDNLF&lt;/P&gt;&lt;P&gt;       OR WA_RECORDPREV-WEBRE NE WA_RECORD-WEBRE&lt;/P&gt;&lt;P&gt;       OR WA_RECORDPREV-MEPRF NE WA_RECORD-MEPRF&lt;/P&gt;&lt;P&gt;       OR WA_RECORDPREV-LTEX1 NE WA_RECORD-LTEX1&lt;/P&gt;&lt;P&gt;       OR VEN_FLAG EQ 1.&lt;/P&gt;&lt;P&gt;        V_IND = L_MAT_INDEX.&lt;/P&gt;&lt;P&gt;        IF V_IND GT 1.&lt;/P&gt;&lt;P&gt;          V_IND = 2.&lt;/P&gt;&lt;P&gt;        ENDIF.        CONCATENATE 'RM06E-EVRTP(' V_IND ')' INTO V_EVRTP1.&lt;/P&gt;&lt;P&gt;        CONCATENATE 'RM06E-EPSTP(' V_IND ')' INTO V_EPSTP1.&lt;/P&gt;&lt;P&gt;        CONCATENATE 'EKPO-EMATN(' V_IND ')' INTO V_EMATN1.&lt;/P&gt;&lt;P&gt;        CONCATENATE 'EKPO-KTMNG(' V_IND ')' INTO V_KTMNG1.&lt;/P&gt;&lt;P&gt;        CONCATENATE 'EKPO-NETPR(' V_IND ')' INTO V_NETPR1.&lt;/P&gt;&lt;P&gt;        CONCATENATE 'EKPO-PEINH(' V_IND ')' INTO V_PEINH1.&lt;/P&gt;&lt;P&gt;        CONCATENATE 'EKPO-BPRME(' V_IND ')' INTO V_BPRME1.&lt;/P&gt;&lt;P&gt;        CONCATENATE 'RM06E-TCSELFLAG(' V_IND ')' INTO V_TCSELFLAG1.        PERFORM BDC_DYNPRO      USING 'SAPMM06E' '0220'.&lt;/P&gt;&lt;P&gt;        PERFORM BDC_FIELD       USING 'BDC_OKCODE'&lt;/P&gt;&lt;P&gt;                                      '=NP'.&lt;/P&gt;&lt;P&gt;        PERFORM BDC_DYNPRO      USING 'SAPMM06E' '0220'.&lt;/P&gt;&lt;P&gt;        PERFORM BDC_FIELD       USING 'BDC_CURSOR'&lt;/P&gt;&lt;P&gt;                                      V_EVRTP1.&lt;/P&gt;&lt;P&gt;        PERFORM BDC_FIELD       USING 'BDC_OKCODE'&lt;/P&gt;&lt;P&gt;                                      '=DETA'.&lt;/P&gt;&lt;P&gt;        PERFORM BDC_FIELD       USING V_EPSTP1&lt;/P&gt;&lt;P&gt;                                      WA_RECORD-EPSTP.&lt;/P&gt;&lt;P&gt;        PERFORM BDC_FIELD       USING V_EMATN1&lt;/P&gt;&lt;P&gt;                                      WA_RECORD-EMATN.&lt;/P&gt;&lt;P&gt;        PERFORM BDC_FIELD       USING V_KTMNG1&lt;/P&gt;&lt;P&gt;                                      WA_RECORD-KTMNG.&lt;/P&gt;&lt;P&gt;        PERFORM BDC_FIELD       USING V_NETPR1&lt;/P&gt;&lt;P&gt;                                      WA_RECORD-NETPR.&lt;/P&gt;&lt;P&gt;        PERFORM BDC_FIELD       USING V_PEINH1&lt;/P&gt;&lt;P&gt;                                      WA_RECORD-PEINH.&lt;/P&gt;&lt;P&gt;        PERFORM BDC_FIELD       USING V_BPRME1&lt;/P&gt;&lt;P&gt;                                      WA_RECORD-BPRME.&lt;/P&gt;&lt;P&gt;        PERFORM BDC_DYNPRO      USING 'SAPMM06E' '0211'.&lt;/P&gt;&lt;P&gt;        PERFORM BDC_FIELD       USING 'BDC_CURSOR'&lt;/P&gt;&lt;P&gt;                                      'EKPO-WEBRE'.&lt;/P&gt;&lt;P&gt;        PERFORM BDC_FIELD       USING 'BDC_OKCODE'&lt;/P&gt;&lt;P&gt;                                      '=DETZ'.&lt;/P&gt;&lt;P&gt;        PERFORM BDC_FIELD       USING 'EKPO-IDNLF'&lt;/P&gt;&lt;P&gt;                                      WA_RECORD-IDNLF.&lt;/P&gt;&lt;P&gt;        TRANSLATE WA_RECORD-EVART TO UPPER CASE.&lt;/P&gt;&lt;P&gt;        IF WA_RECORD-EVART EQ C_WK.&lt;/P&gt;&lt;P&gt;          PERFORM BDC_FIELD       USING 'EKPO-WEBRE' 'X'.&lt;/P&gt;&lt;P&gt;        ENDIF.&lt;/P&gt;&lt;P&gt;        PERFORM BDC_DYNPRO      USING 'SAPMM06E' '0212'.&lt;/P&gt;&lt;P&gt;        PERFORM BDC_FIELD       USING 'BDC_CURSOR'&lt;/P&gt;&lt;P&gt;                                      'EKPO-MEPRF'.&lt;/P&gt;&lt;P&gt;        PERFORM BDC_FIELD       USING 'BDC_OKCODE'&lt;/P&gt;&lt;P&gt;                                      '=TXP'.&lt;/P&gt;&lt;P&gt;        PERFORM BDC_FIELD       USING 'EKPO-MEPRF'&lt;/P&gt;&lt;P&gt;                                      WA_RECORD-MEPRF.        IF NOT WA_RECORD-LTEX1 IS INITIAL. "NE space.&lt;/P&gt;&lt;P&gt;          PERFORM BDC_DYNPRO      USING 'SAPMM06E' '0106'.&lt;/P&gt;&lt;P&gt;          PERFORM BDC_FIELD       USING 'BDC_CURSOR'&lt;/P&gt;&lt;P&gt;                                        'RM06E-SELKZ(02)'.&lt;/P&gt;&lt;P&gt;          PERFORM BDC_FIELD       USING 'BDC_OKCODE'&lt;/P&gt;&lt;P&gt;                                        '/00'.&lt;/P&gt;&lt;P&gt;          PERFORM BDC_FIELD       USING 'RM06E-LTEX1(02)'&lt;/P&gt;&lt;P&gt;                                        WA_RECORD-LTEX1.&lt;/P&gt;&lt;P&gt;          PERFORM BDC_FIELD       USING 'RM06E-SELKZ(02)' 'X'.          PERFORM BDC_DYNPRO      USING 'SAPMM06E' '0106'.&lt;/P&gt;&lt;P&gt;          PERFORM BDC_FIELD       USING 'BDC_CURSOR'&lt;/P&gt;&lt;P&gt;                                        'RM06E-LTEX1(01)'.&lt;/P&gt;&lt;P&gt;          PERFORM BDC_FIELD       USING 'BDC_OKCODE'&lt;/P&gt;&lt;P&gt;                                        '=BACK'.&lt;/P&gt;&lt;P&gt;        ELSE.&lt;/P&gt;&lt;P&gt;          PERFORM BDC_DYNPRO      USING 'SAPMM06E' '0212'.&lt;/P&gt;&lt;P&gt;          PERFORM BDC_FIELD       USING 'BDC_OKCODE'&lt;/P&gt;&lt;P&gt;                                          '=BACK'.&lt;/P&gt;&lt;P&gt;        ENDIF.&lt;/P&gt;&lt;P&gt;        PERFORM BDC_DYNPRO      USING 'SAPMM06E' '0220'.&lt;/P&gt;&lt;P&gt;        PERFORM BDC_FIELD       USING 'BDC_CURSOR'&lt;/P&gt;&lt;P&gt;                                       V_EVRTP1.&lt;/P&gt;&lt;P&gt;        PERFORM BDC_FIELD       USING 'BDC_OKCODE'&lt;/P&gt;&lt;P&gt;                                      '=KO'.&lt;/P&gt;&lt;P&gt;        PERFORM BDC_FIELD       USING V_TCSELFLAG1 'X'.        MAT_FLAG = 1.&lt;/P&gt;&lt;P&gt;        L_CON_INDEX = 1.&lt;/P&gt;&lt;P&gt;        CLEAR VEN_FLAG.&lt;/P&gt;&lt;P&gt;        L_MAT_INDEX = L_MAT_INDEX + 1.      ENDIF.      IF  WA_RECORDPREV-DATAB NE WA_RECORD-DATAB&lt;/P&gt;&lt;P&gt;       OR WA_RECORDPREV-DATBI NE WA_RECORD-DATBI&lt;/P&gt;&lt;P&gt;       OR WA_RECORDPREV-KSCHL NE WA_RECORD-KSCHL&lt;/P&gt;&lt;P&gt;       OR WA_RECORDPREV-KBETR NE WA_RECORD-KBETR&lt;/P&gt;&lt;P&gt;       OR WA_RECORDPREV-KONWA NE WA_RECORD-KONWA&lt;/P&gt;&lt;P&gt;       OR WA_RECORDPREV-KPEIN NE WA_RECORD-KPEIN&lt;/P&gt;&lt;P&gt;       OR WA_RECORDPREV-KMEIN NE WA_RECORD-KMEIN&lt;/P&gt;&lt;P&gt;       OR MAT_FLAG = 1.        V_IND2 = L_CON_INDEX.&lt;/P&gt;&lt;P&gt;        CONCATENATE 'KONP-KSCHL(' V_IND2 ')' INTO V_KSCHL2.&lt;/P&gt;&lt;P&gt;        CONCATENATE 'KONP-KBETR(' V_IND2 ')' INTO V_KBETR2.&lt;/P&gt;&lt;P&gt;        CONCATENATE 'KONP-KONWA(' V_IND2 ')' INTO V_KONWA2.&lt;/P&gt;&lt;P&gt;        CONCATENATE 'KONP-KPEIN(' V_IND2 ')' INTO V_KPEIN2.&lt;/P&gt;&lt;P&gt;        CONCATENATE 'KONP-KMEIN(' V_IND2 ')' INTO V_KMEIN2.&lt;/P&gt;&lt;P&gt;        CONCATENATE 'RV130-SELKZ(' V_IND2 ')' INTO V_SELKZ2.        PERFORM BDC_DYNPRO      USING 'SAPMV13A' '0201'.&lt;/P&gt;&lt;P&gt;        PERFORM BDC_FIELD       USING 'BDC_CURSOR'&lt;/P&gt;&lt;P&gt;                                      V_KSCHL2.&lt;/P&gt;&lt;P&gt;        PERFORM BDC_FIELD       USING 'BDC_OKCODE'&lt;/P&gt;&lt;P&gt;                                      '=PSTF'.&lt;/P&gt;&lt;P&gt;        PERFORM CONVERT_DATE USING WA_RECORD-DATAB V_CONV_DATE.&lt;/P&gt;&lt;P&gt;        PERFORM BDC_FIELD       USING 'RV13A-DATAB'&lt;/P&gt;&lt;P&gt;                                      V_CONV_DATE.&lt;/P&gt;&lt;P&gt;        PERFORM CONVERT_DATE USING WA_RECORD-DATBI V_CONV_DATE.&lt;/P&gt;&lt;P&gt;        PERFORM BDC_FIELD       USING 'RV13A-DATBI'&lt;/P&gt;&lt;P&gt;                                      V_CONV_DATE.        IF L_CON_INDEX &amp;gt; 1.    "added on 9th sep&lt;/P&gt;&lt;P&gt;          PERFORM BDC_FIELD       USING V_KSCHL2&lt;/P&gt;&lt;P&gt;                                        WA_RECORD-KSCHL.&lt;/P&gt;&lt;P&gt;        ENDIF.                  "added on 9th sep&lt;/P&gt;&lt;P&gt;        PERFORM BDC_FIELD       USING V_KBETR2&lt;/P&gt;&lt;P&gt;                                      WA_RECORD-KBETR.&lt;/P&gt;&lt;P&gt;        PERFORM BDC_FIELD       USING V_KONWA2&lt;/P&gt;&lt;P&gt;                                      WA_RECORD-KONWA.&lt;/P&gt;&lt;P&gt;        PERFORM BDC_FIELD       USING V_KPEIN2&lt;/P&gt;&lt;P&gt;                                      WA_RECORD-KPEIN.&lt;/P&gt;&lt;P&gt;        PERFORM BDC_FIELD       USING V_KMEIN2&lt;/P&gt;&lt;P&gt;                                      WA_RECORD-KMEIN.&lt;/P&gt;&lt;P&gt;        PERFORM BDC_FIELD       USING V_SELKZ2&lt;/P&gt;&lt;P&gt;                                      'X'.&lt;/P&gt;&lt;P&gt;        CLEAR MAT_FLAG.&lt;/P&gt;&lt;P&gt;        L_SCA_INDEX = 1.&lt;/P&gt;&lt;P&gt;        L_CON_INDEX = L_CON_INDEX + 1.&lt;/P&gt;&lt;P&gt;      ENDIF.      V_IND3 = L_SCA_INDEX.&lt;/P&gt;&lt;P&gt;      IF V_IND3 GT 1.&lt;/P&gt;&lt;P&gt;        V_IND3 = 2.&lt;/P&gt;&lt;P&gt;      ENDIF.      CONCATENATE 'KONM-KSTBM(' V_IND3 ')' INTO V_KSTBM3.&lt;/P&gt;&lt;P&gt;      CONCATENATE 'KONM-KBETR(' V_IND3 ')' INTO V_KBETR3.      PERFORM BDC_DYNPRO      USING 'SAPMV13A' '0303'.&lt;/P&gt;&lt;P&gt;      PERFORM BDC_FIELD       USING 'BDC_OKCODE'&lt;/P&gt;&lt;P&gt;                                    '=NEWP'.&lt;/P&gt;&lt;P&gt;      PERFORM BDC_DYNPRO      USING 'SAPMV13A' '0303'.&lt;/P&gt;&lt;P&gt;      PERFORM BDC_FIELD       USING 'BDC_OKCODE'&lt;/P&gt;&lt;P&gt;                                    '/00'.&lt;/P&gt;&lt;P&gt;      IF WA_RECORD-KBETR IS INITIAL.&lt;/P&gt;&lt;P&gt;        PERFORM BDC_FIELD       USING V_KSTBM3&lt;/P&gt;&lt;P&gt;                                     WA_RECORD-KSTBM.&lt;/P&gt;&lt;P&gt;        PERFORM BDC_FIELD       USING V_KBETR3&lt;/P&gt;&lt;P&gt;                                  WA_RECORD-KBETR_01.&lt;/P&gt;&lt;P&gt;      ENDIF.      L_SCA_INDEX = L_SCA_INDEX + 1.&lt;/P&gt;&lt;P&gt;    ENDIF.  " check the c_true, c_strue.    AT END OF KMEIN.&lt;/P&gt;&lt;P&gt;      PERFORM BDC_DYNPRO      USING 'SAPMV13A' '0303'.&lt;/P&gt;&lt;P&gt;      PERFORM BDC_FIELD       USING 'BDC_CURSOR'&lt;/P&gt;&lt;P&gt;                                    V_KSTBM3.&lt;/P&gt;&lt;P&gt;      PERFORM BDC_FIELD       USING 'BDC_OKCODE'&lt;/P&gt;&lt;P&gt;                                    '=BACK'.&lt;/P&gt;&lt;P&gt;    ENDAT.    AT END OF LTEX1.&lt;/P&gt;&lt;P&gt;      PERFORM BDC_DYNPRO      USING 'SAPMV13A' '0201'.&lt;/P&gt;&lt;P&gt;      PERFORM BDC_FIELD       USING 'BDC_CURSOR'&lt;/P&gt;&lt;P&gt;                                    'RV13A-DATAB'.&lt;/P&gt;&lt;P&gt;      PERFORM BDC_FIELD       USING 'BDC_OKCODE'&lt;/P&gt;&lt;P&gt;                                    '=BACK'.&lt;/P&gt;&lt;P&gt;    ENDAT.    AT END OF KTWRT.&lt;/P&gt;&lt;P&gt;      PERFORM BDC_DYNPRO      USING 'SAPMM06E' '0220'.&lt;/P&gt;&lt;P&gt;      PERFORM BDC_FIELD       USING 'BDC_CURSOR'&lt;/P&gt;&lt;P&gt;                                    V_EVRTP1.&lt;/P&gt;&lt;P&gt;      PERFORM BDC_FIELD       USING 'BDC_OKCODE'&lt;/P&gt;&lt;P&gt;                                    '=BU'.&lt;/P&gt;&lt;P&gt;      PERFORM BDC_DYNPRO      USING 'SAPLSPO1' '0300'.&lt;/P&gt;&lt;P&gt;      PERFORM BDC_FIELD       USING 'BDC_OKCODE'&lt;/P&gt;&lt;P&gt;                                     '=YES'.      CALL TRANSACTION C_TCODE USING I_BDCDATA MODE P_MODE&lt;/P&gt;&lt;P&gt;                                   MESSAGES INTO I_MESSTAB.      IF SY-SUBRC  0.&lt;/P&gt;&lt;P&gt;        PERFORM GET_MESSAGE USING C_MSGTYP_E&lt;/P&gt;&lt;P&gt;                            CHANGING V_ERRMSG.&lt;/P&gt;&lt;P&gt;        WA_RECORD-ERR_MSG = V_ERRMSG.&lt;/P&gt;&lt;P&gt;        WA_RECORD-DEL_FLAG = C_STRUE.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Since all the related line items are to be dealt such modify is used&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;        MODIFY I_RECORD FROM WA_RECORD&lt;/P&gt;&lt;P&gt;                        TRANSPORTING DEL_FLAG&lt;/P&gt;&lt;P&gt;                                     ERR_MSG&lt;/P&gt;&lt;P&gt;                        WHERE LIFNR = WA_RECORD-LIFNR&lt;/P&gt;&lt;P&gt;                          AND EVART = WA_RECORD-EVART&lt;/P&gt;&lt;P&gt;                          AND EKORG = WA_RECORD-EKORG&lt;/P&gt;&lt;P&gt;                          AND EKGRP = WA_RECORD-EKGRP&lt;/P&gt;&lt;P&gt;                          AND WERKS = WA_RECORD-WERKS&lt;/P&gt;&lt;P&gt;                          AND LGORT = WA_RECORD-LGORT&lt;/P&gt;&lt;P&gt;                          AND KDATB = WA_RECORD-KDATB&lt;/P&gt;&lt;P&gt;                          AND KDATE = WA_RECORD-KDATE&lt;/P&gt;&lt;P&gt;                          AND ZTERM = WA_RECORD-ZTERM&lt;/P&gt;&lt;P&gt;                          AND KTWRT = WA_RECORD-KTWRT.&lt;/P&gt;&lt;P&gt;        CLEAR V_ERRMSG.&lt;/P&gt;&lt;P&gt;      ELSEIF SY-SUBRC EQ 0.&lt;/P&gt;&lt;P&gt;        PERFORM GET_MESSAGE USING C_MSGTYP_S&lt;/P&gt;&lt;P&gt;                            CHANGING V_ERRMSG.&lt;/P&gt;&lt;P&gt;        WA_RECORD-ERR_MSG = V_ERRMSG.&lt;/P&gt;&lt;P&gt;        WA_RECORD-DEL_FLAG = C_YTRUE.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Since all the related line items are to be dealt such modify is used&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;        MODIFY I_RECORD FROM WA_RECORD&lt;/P&gt;&lt;P&gt;                        TRANSPORTING DEL_FLAG&lt;/P&gt;&lt;P&gt;                                     ERR_MSG&lt;/P&gt;&lt;P&gt;                        WHERE LIFNR = WA_RECORD-LIFNR&lt;/P&gt;&lt;P&gt;                          AND EVART = WA_RECORD-EVART&lt;/P&gt;&lt;P&gt;                          AND EKORG = WA_RECORD-EKORG&lt;/P&gt;&lt;P&gt;                          AND EKGRP = WA_RECORD-EKGRP&lt;/P&gt;&lt;P&gt;                          AND WERKS = WA_RECORD-WERKS&lt;/P&gt;&lt;P&gt;                          AND LGORT = WA_RECORD-LGORT&lt;/P&gt;&lt;P&gt;                          AND KDATB = WA_RECORD-KDATB&lt;/P&gt;&lt;P&gt;                          AND KDATE = WA_RECORD-KDATE&lt;/P&gt;&lt;P&gt;                          AND ZTERM = WA_RECORD-ZTERM&lt;/P&gt;&lt;P&gt;                          AND KTWRT = WA_RECORD-KTWRT.&lt;/P&gt;&lt;P&gt;        CLEAR V_ERRMSG.&lt;/P&gt;&lt;P&gt;      ENDIF.      CLEAR WA_BDCDATA.&lt;/P&gt;&lt;P&gt;      REFRESH: I_BDCDATA,&lt;/P&gt;&lt;P&gt;               I_MESSTAB.&lt;/P&gt;&lt;P&gt;    ENDAT.&lt;/P&gt;&lt;P&gt;    MOVE WA_RECORD TO WA_RECORDPREV.&lt;/P&gt;&lt;P&gt;    CLEAR WA_RECORD.&lt;/P&gt;&lt;P&gt;  ENDLOOP.  LOOP AT I_RECORD INTO WA_RECORD.&lt;/P&gt;&lt;P&gt;    IF WA_RECORD-DEL_FLAG = C_STRUE.&lt;/P&gt;&lt;P&gt;      APPEND WA_RECORD TO I_ERR_REC.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;    CLEAR WA_RECORD.&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt;ENDFORM.                    " BUILD_BDC_DATA&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  get_message&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;      Obtains message from the message table&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;lt;--GV_ERRMSG  Error Message generated by SAP&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM GET_MESSAGE USING L_MSGTYP TYPE C&lt;/P&gt;&lt;P&gt;                 CHANGING L_MSGTX LIKE V_ERRMSG.&lt;/P&gt;&lt;P&gt;  DATA: L_MSTRING(500) TYPE C,&lt;/P&gt;&lt;P&gt;        L_MESSAGES TYPE T100.&lt;/P&gt;&lt;P&gt;  CLEAR: WA_MESSTAB,&lt;/P&gt;&lt;P&gt;         L_MSTRING,&lt;/P&gt;&lt;P&gt;         L_MSGTX.&lt;/P&gt;&lt;P&gt;  LOOP AT I_MESSTAB INTO WA_MESSTAB WHERE MSGTYP = L_MSGTYP.    SELECT SINGLE * FROM T100&lt;/P&gt;&lt;P&gt;           INTO L_MESSAGES  WHERE SPRSL = WA_MESSTAB-MSGSPRA&lt;/P&gt;&lt;P&gt;                               AND ARBGB = WA_MESSTAB-MSGID&lt;/P&gt;&lt;P&gt;                               AND MSGNR = WA_MESSTAB-MSGNR.&lt;/P&gt;&lt;P&gt;    IF SY-SUBRC = 0.&lt;/P&gt;&lt;P&gt;      L_MSTRING = L_MESSAGES-TEXT.&lt;/P&gt;&lt;P&gt;      IF L_MSTRING CS '&amp;amp;1'.&lt;/P&gt;&lt;P&gt;        CONDENSE WA_MESSTAB-MSGV1.&lt;/P&gt;&lt;P&gt;        CONDENSE WA_MESSTAB-MSGV2.&lt;/P&gt;&lt;P&gt;        CONDENSE WA_MESSTAB-MSGV3.&lt;/P&gt;&lt;P&gt;        CONDENSE WA_MESSTAB-MSGV4.&lt;/P&gt;&lt;P&gt;        REPLACE '&amp;amp;1' WITH WA_MESSTAB-MSGV1 INTO L_MSTRING.&lt;/P&gt;&lt;P&gt;        REPLACE '&amp;amp;2' WITH WA_MESSTAB-MSGV2 INTO L_MSTRING.&lt;/P&gt;&lt;P&gt;        REPLACE '&amp;amp;3' WITH WA_MESSTAB-MSGV3 INTO L_MSTRING.&lt;/P&gt;&lt;P&gt;        REPLACE '&amp;amp;4' WITH WA_MESSTAB-MSGV4 INTO L_MSTRING.&lt;/P&gt;&lt;P&gt;      ELSE.&lt;/P&gt;&lt;P&gt;        CONDENSE WA_MESSTAB-MSGV1.&lt;/P&gt;&lt;P&gt;        CONDENSE WA_MESSTAB-MSGV2.&lt;/P&gt;&lt;P&gt;        CONDENSE WA_MESSTAB-MSGV3.&lt;/P&gt;&lt;P&gt;        CONDENSE WA_MESSTAB-MSGV4.&lt;/P&gt;&lt;P&gt;        REPLACE '&amp;amp;' WITH WA_MESSTAB-MSGV1 INTO L_MSTRING.&lt;/P&gt;&lt;P&gt;        REPLACE '&amp;amp;' WITH WA_MESSTAB-MSGV2 INTO L_MSTRING.&lt;/P&gt;&lt;P&gt;        REPLACE '&amp;amp;' WITH WA_MESSTAB-MSGV3 INTO L_MSTRING.&lt;/P&gt;&lt;P&gt;        REPLACE '&amp;amp;' WITH WA_MESSTAB-MSGV4 INTO L_MSTRING.&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;P&gt;      CONDENSE L_MSTRING.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;    CONCATENATE L_MSGTX L_MSTRING INTO L_MSGTX SEPARATED BY SPACE.&lt;/P&gt;&lt;P&gt;    CLEAR WA_MESSTAB.&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;ENDFORM.                 " get_message&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  display_inperr_records&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  Diplays the records with the input file validation errors in ALV&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 DISPLAY_INPERR_RECORDS.  WRITE SY-DATUM TO V_DATE  DD/MM/YYYY.&lt;/P&gt;&lt;P&gt;  REFRESH I_ALV_EVENT.&lt;/P&gt;&lt;P&gt;  CLEAR WA_ALV_EVENT.  WA_LISTHEADER-TYP = 'H'.&lt;/P&gt;&lt;P&gt;  WA_LISTHEADER-KEY = ''.&lt;/P&gt;&lt;P&gt;  WA_LISTHEADER-INFO = TEXT-029.&lt;/P&gt;&lt;P&gt;  APPEND WA_LISTHEADER TO I_LISTHEADER.  WA_LISTHEADER-TYP = 'S'.&lt;/P&gt;&lt;P&gt;  WA_LISTHEADER-KEY = TEXT-030.&lt;/P&gt;&lt;P&gt;  WA_LISTHEADER-INFO = V_DATE.&lt;/P&gt;&lt;P&gt;  APPEND WA_LISTHEADER TO I_LISTHEADER.  WA_LISTHEADER-TYP = 'S'.&lt;/P&gt;&lt;P&gt;  WA_LISTHEADER-KEY = TEXT-031.&lt;/P&gt;&lt;P&gt;  WA_LISTHEADER-INFO = SY-UZEIT.&lt;/P&gt;&lt;P&gt;  APPEND WA_LISTHEADER TO I_LISTHEADER.  PERFORM BUILD_FC USING '1' 'LIFNR' 'I_ERR_REC' TEXT-020 '10'.&lt;/P&gt;&lt;P&gt;  PERFORM BUILD_FC USING '2' 'EVART' 'I_ERR_REC' TEXT-021 '4'.&lt;/P&gt;&lt;P&gt;  PERFORM BUILD_FC USING '3' 'EKORG' 'I_ERR_REC' TEXT-022 '4'.&lt;/P&gt;&lt;P&gt;  PERFORM BUILD_FC USING '4' 'EKGRP' 'I_ERR_REC' TEXT-023 '3'.&lt;/P&gt;&lt;P&gt;  PERFORM BUILD_FC USING '5' 'WERKS' 'I_ERR_REC' TEXT-024 '4'.&lt;/P&gt;&lt;P&gt;  PERFORM BUILD_FC USING '6' 'LGORT' 'I_ERR_REC' TEXT-025 '4'.&lt;/P&gt;&lt;P&gt;  PERFORM BUILD_FC USING '7' 'KDATB' 'I_ERR_REC' TEXT-042 '10'.&lt;/P&gt;&lt;P&gt;  PERFORM BUILD_FC USING '8' 'KDATE' 'I_ERR_REC' TEXT-043 '10'.&lt;/P&gt;&lt;P&gt;  PERFORM BUILD_FC USING '9' 'ZTERM' 'I_ERR_REC' TEXT-044 '4'.&lt;/P&gt;&lt;P&gt;  PERFORM BUILD_FC USING '10' 'KTWRT' 'I_ERR_REC' TEXT-045 '20'.&lt;/P&gt;&lt;P&gt;  PERFORM BUILD_FC USING '11' 'EPSTP' 'I_ERR_REC' TEXT-046 '1'.&lt;/P&gt;&lt;P&gt;  PERFORM BUILD_FC USING '12' 'EMATN' 'I_ERR_REC' TEXT-026 '18'.&lt;/P&gt;&lt;P&gt;  PERFORM BUILD_FC USING '13' 'KTMNG' 'I_ERR_REC' TEXT-047 '17'.&lt;/P&gt;&lt;P&gt;  PERFORM BUILD_FC USING '14' 'NETPR' 'I_ERR_REC' TEXT-048 '14'.&lt;/P&gt;&lt;P&gt;  PERFORM BUILD_FC USING '15' 'PEINH' 'I_ERR_REC' TEXT-049 '6'.&lt;/P&gt;&lt;P&gt;  PERFORM BUILD_FC USING '16' 'BPRME' 'I_ERR_REC' TEXT-050 '3'.&lt;/P&gt;&lt;P&gt;  PERFORM BUILD_FC USING '17' 'IDNLF' 'I_ERR_REC' TEXT-051 '35'.&lt;/P&gt;&lt;P&gt;  PERFORM BUILD_FC USING '18' 'WEBRE' 'I_ERR_REC' TEXT-052 '1'.&lt;/P&gt;&lt;P&gt;  PERFORM BUILD_FC USING '19' 'MEPRF' 'I_ERR_REC' TEXT-053 '1'.&lt;/P&gt;&lt;P&gt;  PERFORM BUILD_FC USING '20' 'LTEX1' 'I_ERR_REC' TEXT-054 '40'.&lt;/P&gt;&lt;P&gt;  PERFORM BUILD_FC USING '21' 'DATAB' 'I_ERR_REC' TEXT-055 '10'.&lt;/P&gt;&lt;P&gt;  PERFORM BUILD_FC USING '22' 'DATBI' 'I_ERR_REC' TEXT-056 '10'.&lt;/P&gt;&lt;P&gt;  PERFORM BUILD_FC USING '23' 'KSCHL' 'I_ERR_REC' TEXT-057 '4'.&lt;/P&gt;&lt;P&gt;  PERFORM BUILD_FC USING '24' 'KBETR' 'I_ERR_REC' TEXT-058 '16'.&lt;/P&gt;&lt;P&gt;  PERFORM BUILD_FC USING '25' 'KONWA' 'I_ERR_REC' TEXT-059 '5'.&lt;/P&gt;&lt;P&gt;  PERFORM BUILD_FC USING '26' 'KPEIN' 'I_ERR_REC' TEXT-060 '5'.&lt;/P&gt;&lt;P&gt;  PERFORM BUILD_FC USING '27' 'KMEIN' 'I_ERR_REC' TEXT-061 '3'.&lt;/P&gt;&lt;P&gt;  PERFORM BUILD_FC USING '28' 'KSTBM' 'I_ERR_REC' TEXT-062 '19'.&lt;/P&gt;&lt;P&gt;  PERFORM BUILD_FC USING '29' 'KBETR_01' 'I_ERR_REC' TEXT-063 '16'.&lt;/P&gt;&lt;P&gt;  PERFORM BUILD_FC USING '30' 'DEL_FLAG' 'I_ERR_REC' TEXT-064 '1'.&lt;/P&gt;&lt;P&gt;  PERFORM BUILD_FC USING '31' 'ERR_MSG' 'I_ERR_REC' TEXT-027 '100'.  WA_LAYOUT-ZEBRA = 'X'.&lt;/P&gt;&lt;P&gt;  WA_LAYOUT-COLWIDTH_OPTIMIZE = 'X'.  PERFORM SORTBUILD USING I_SORT[].  V_REPID = SY-REPID.  CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'&lt;/P&gt;&lt;P&gt;       EXPORTING&lt;/P&gt;&lt;P&gt;            I_CALLBACK_PROGRAM = V_REPID&lt;/P&gt;&lt;P&gt;            I_GRID_TITLE       = TEXT-009&lt;/P&gt;&lt;P&gt;            IT_FIELDCAT        = I_FIELDCAT&lt;/P&gt;&lt;P&gt;            IS_LAYOUT          = WA_LAYOUT&lt;/P&gt;&lt;P&gt;            I_DEFAULT          = 'X'&lt;/P&gt;&lt;P&gt;            I_SAVE             = 'X'&lt;/P&gt;&lt;P&gt;            IT_SORT            = I_SORT&lt;/P&gt;&lt;P&gt;            IT_EVENTS          = I_ALV_EVENT&lt;/P&gt;&lt;P&gt;       TABLES&lt;/P&gt;&lt;P&gt;            T_OUTTAB           = I_ERR_REC&lt;/P&gt;&lt;P&gt;       EXCEPTIONS&lt;/P&gt;&lt;P&gt;            PROGRAM_ERROR      = 1&lt;/P&gt;&lt;P&gt;            OTHERS             = 2.&lt;/P&gt;&lt;P&gt;  IF SY-SUBRC  0.&lt;/P&gt;&lt;P&gt;    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.ENDFORM.                    " display_inperr_records&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  display_processed_records&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  Diplays the processed records with their status in ALV Grid&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 DISPLAY_PROCESSED_RECORDS.  WRITE SY-DATUM TO V_DATE  DD/MM/YYYY.&lt;/P&gt;&lt;P&gt;  REFRESH I_ALV_EVENT.&lt;/P&gt;&lt;P&gt;  CLEAR WA_ALV_EVENT.  WA_LISTHEADER-TYP = 'H'.&lt;/P&gt;&lt;P&gt;  WA_LISTHEADER-KEY = ''.&lt;/P&gt;&lt;P&gt;  WA_LISTHEADER-INFO = TEXT-029.&lt;/P&gt;&lt;P&gt;  APPEND WA_LISTHEADER TO I_LISTHEADER.  WA_LISTHEADER-TYP = 'S'.&lt;/P&gt;&lt;P&gt;  WA_LISTHEADER-KEY = TEXT-030.&lt;/P&gt;&lt;P&gt;  WA_LISTHEADER-INFO = V_DATE.&lt;/P&gt;&lt;P&gt;  APPEND WA_LISTHEADER TO I_LISTHEADER.  WA_LISTHEADER-TYP = 'S'.&lt;/P&gt;&lt;P&gt;  WA_LISTHEADER-KEY = TEXT-031.&lt;/P&gt;&lt;P&gt;  WA_LISTHEADER-INFO = SY-UZEIT.&lt;/P&gt;&lt;P&gt;  APPEND WA_LISTHEADER TO I_LISTHEADER.  PERFORM BUILD_FC USING '1' 'LIFNR' 'I_RECORD' TEXT-020 '10'.&lt;/P&gt;&lt;P&gt;  PERFORM BUILD_FC USING '2' 'EVART' 'I_RECORD' TEXT-021 '4'.&lt;/P&gt;&lt;P&gt;  PERFORM BUILD_FC USING '3' 'EKORG' 'I_RECORD' TEXT-022 '4'.&lt;/P&gt;&lt;P&gt;  PERFORM BUILD_FC USING '4' 'EKGRP' 'I_RECORD' TEXT-023 '3'.&lt;/P&gt;&lt;P&gt;  PERFORM BUILD_FC USING '5' 'WERKS' 'I_RECORD' TEXT-024 '4'.&lt;/P&gt;&lt;P&gt;  PERFORM BUILD_FC USING '6' 'LGORT' 'I_RECORD' TEXT-025 '4'.&lt;/P&gt;&lt;P&gt;  PERFORM BUILD_FC USING '7' 'KDATB' 'I_RECORD' TEXT-042 '10'.&lt;/P&gt;&lt;P&gt;  PERFORM BUILD_FC USING '8' 'KDATE' 'I_RECORD' TEXT-043 '10'.&lt;/P&gt;&lt;P&gt;  PERFORM BUILD_FC USING '9' 'ZTERM' 'I_RECORD' TEXT-044 '4'.&lt;/P&gt;&lt;P&gt;  PERFORM BUILD_FC USING '10' 'KTWRT' 'I_RECORD' TEXT-045 '20'.&lt;/P&gt;&lt;P&gt;  PERFORM BUILD_FC USING '11' 'EPSTP' 'I_RECORD' TEXT-046 '1'.&lt;/P&gt;&lt;P&gt;  PERFORM BUILD_FC USING '12' 'EMATN' 'I_RECORD' TEXT-026 '18'.&lt;/P&gt;&lt;P&gt;  PERFORM BUILD_FC USING '13' 'KTMNG' 'I_RECORD' TEXT-047 '17'.&lt;/P&gt;&lt;P&gt;  PERFORM BUILD_FC USING '14' 'NETPR' 'I_RECORD' TEXT-048 '14'.&lt;/P&gt;&lt;P&gt;  PERFORM BUILD_FC USING '15' 'PEINH' 'I_RECORD' TEXT-049 '6'.&lt;/P&gt;&lt;P&gt;  PERFORM BUILD_FC USING '16' 'BPRME' 'I_RECORD' TEXT-050 '3'.&lt;/P&gt;&lt;P&gt;  PERFORM BUILD_FC USING '17' 'IDNLF' 'I_RECORD' TEXT-051 '35'.&lt;/P&gt;&lt;P&gt;  PERFORM BUILD_FC USING '18' 'WEBRE' 'I_RECORD' TEXT-052 '1'.&lt;/P&gt;&lt;P&gt;  PERFORM BUILD_FC USING '19' 'MEPRF' 'I_RECORD' TEXT-053 '1'.&lt;/P&gt;&lt;P&gt;  PERFORM BUILD_FC USING '20' 'LTEX1' 'I_RECORD' TEXT-054 '40'.&lt;/P&gt;&lt;P&gt;  PERFORM BUILD_FC USING '21' 'DATAB' 'I_RECORD' TEXT-055 '10'.&lt;/P&gt;&lt;P&gt;  PERFORM BUILD_FC USING '22' 'DATBI' 'I_RECORD' TEXT-056 '10'.&lt;/P&gt;&lt;P&gt;  PERFORM BUILD_FC USING '23' 'KSCHL' 'I_RECORD' TEXT-057 '4'.&lt;/P&gt;&lt;P&gt;  PERFORM BUILD_FC USING '24' 'KBETR' 'I_RECORD' TEXT-058 '16'.&lt;/P&gt;&lt;P&gt;  PERFORM BUILD_FC USING '25' 'KONWA' 'I_RECORD' TEXT-059 '5'.&lt;/P&gt;&lt;P&gt;  PERFORM BUILD_FC USING '26' 'KPEIN' 'I_RECORD' TEXT-060 '5'.&lt;/P&gt;&lt;P&gt;  PERFORM BUILD_FC USING '27' 'KMEIN' 'I_RECORD' TEXT-061 '3'.&lt;/P&gt;&lt;P&gt;  PERFORM BUILD_FC USING '28' 'KSTBM' 'I_RECORD' TEXT-062 '19'.&lt;/P&gt;&lt;P&gt;  PERFORM BUILD_FC USING '29' 'KBETR_01' 'I_RECORD' TEXT-063 '16'.&lt;/P&gt;&lt;P&gt;  PERFORM BUILD_FC USING '30' 'DEL_FLAG' 'I_RECORD' TEXT-064 '1'.&lt;/P&gt;&lt;P&gt;  PERFORM BUILD_FC USING '31' 'ERR_MSG' 'I_RECORD' TEXT-027 '100'.  WA_LAYOUT-ZEBRA = 'X'.&lt;/P&gt;&lt;P&gt;  WA_LAYOUT-COLWIDTH_OPTIMIZE = 'X'.  PERFORM SORTBUILD USING I_SORT[].  V_REPID = SY-REPID.  CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'&lt;/P&gt;&lt;P&gt;       EXPORTING&lt;/P&gt;&lt;P&gt;            I_CALLBACK_PROGRAM = V_REPID&lt;/P&gt;&lt;P&gt;            I_GRID_TITLE       = TEXT-066&lt;/P&gt;&lt;P&gt;            IT_FIELDCAT        = I_FIELDCAT&lt;/P&gt;&lt;P&gt;            IS_LAYOUT          = WA_LAYOUT&lt;/P&gt;&lt;P&gt;            I_DEFAULT          = 'X'&lt;/P&gt;&lt;P&gt;            I_SAVE             = 'X'&lt;/P&gt;&lt;P&gt;            IT_SORT            = I_SORT&lt;/P&gt;&lt;P&gt;            IT_EVENTS          = I_ALV_EVENT&lt;/P&gt;&lt;P&gt;       TABLES&lt;/P&gt;&lt;P&gt;            T_OUTTAB           = I_RECORD&lt;/P&gt;&lt;P&gt;       EXCEPTIONS&lt;/P&gt;&lt;P&gt;            PROGRAM_ERROR      = 1&lt;/P&gt;&lt;P&gt;            OTHERS             = 2.&lt;/P&gt;&lt;P&gt;  IF SY-SUBRC  0.&lt;/P&gt;&lt;P&gt;    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.ENDFORM.                    " display_processed_records&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  BUILD_FC&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; Populating the Field Catalog for the ALV&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 BUILD_FC USING    VALUE(L_COPOS)&lt;/P&gt;&lt;P&gt;                       VALUE(L_FNAME)&lt;/P&gt;&lt;P&gt;                       VALUE(L_TABNAME)&lt;/P&gt;&lt;P&gt;                       VALUE(L_TITLE)&lt;/P&gt;&lt;P&gt;                       VALUE(L_WIDTH).  WA_FIELDCAT-COL_POS      = L_COPOS.&lt;/P&gt;&lt;P&gt;  WA_FIELDCAT-FIELDNAME    = L_FNAME.&lt;/P&gt;&lt;P&gt;  WA_FIELDCAT-TABNAME      = L_TABNAME.&lt;/P&gt;&lt;P&gt;  WA_FIELDCAT-REPTEXT_DDIC = L_TITLE.&lt;/P&gt;&lt;P&gt;  WA_FIELDCAT-OUTPUTLEN    = L_WIDTH.  APPEND WA_FIELDCAT TO I_FIELDCAT.&lt;/P&gt;&lt;P&gt;ENDFORM.                    " BUILD_FC&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  SORTBUILD&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;     Sorting the fields in the ALV 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 SORTBUILD USING I_SORT TYPE SLIS_T_SORTINFO_ALV.  CLEAR WA_SORT.&lt;/P&gt;&lt;P&gt;  WA_SORT-FIELDNAME = 'LIFNR'.&lt;/P&gt;&lt;P&gt;  WA_SORT-SPOS      = 1.&lt;/P&gt;&lt;P&gt;  WA_SORT-UP        = 'X'.&lt;/P&gt;&lt;P&gt;  APPEND WA_SORT TO I_SORT.  CLEAR WA_SORT.&lt;/P&gt;&lt;P&gt;  WA_SORT-FIELDNAME = 'EVART'.&lt;/P&gt;&lt;P&gt;  WA_SORT-SPOS      = 2.&lt;/P&gt;&lt;P&gt;  WA_SORT-UP        = 'X'.&lt;/P&gt;&lt;P&gt;  APPEND WA_SORT TO I_SORT.  CLEAR WA_SORT.&lt;/P&gt;&lt;P&gt;  WA_SORT-FIELDNAME = 'EKORG'.&lt;/P&gt;&lt;P&gt;  WA_SORT-SPOS      = 3.&lt;/P&gt;&lt;P&gt;  WA_SORT-UP        = 'X'.&lt;/P&gt;&lt;P&gt;  APPEND WA_SORT TO I_SORT.  CLEAR WA_SORT.&lt;/P&gt;&lt;P&gt;  WA_SORT-FIELDNAME = 'EKGRP'.&lt;/P&gt;&lt;P&gt;  WA_SORT-SPOS      = 4.&lt;/P&gt;&lt;P&gt;  WA_SORT-UP        = 'X'.&lt;/P&gt;&lt;P&gt;  APPEND WA_SORT TO I_SORT.  CLEAR WA_SORT.&lt;/P&gt;&lt;P&gt;  WA_SORT-FIELDNAME = 'WERKS'.&lt;/P&gt;&lt;P&gt;  WA_SORT-SPOS      = 5.&lt;/P&gt;&lt;P&gt;  WA_SORT-UP        = 'X'.&lt;/P&gt;&lt;P&gt;  APPEND WA_SORT TO I_SORT.  CLEAR WA_SORT.&lt;/P&gt;&lt;P&gt;  WA_SORT-FIELDNAME = 'LGORT'.&lt;/P&gt;&lt;P&gt;  WA_SORT-SPOS      = 6.&lt;/P&gt;&lt;P&gt;  WA_SORT-UP        = 'X'.&lt;/P&gt;&lt;P&gt;  APPEND WA_SORT TO I_SORT.  CLEAR WA_SORT.&lt;/P&gt;&lt;P&gt;  WA_SORT-FIELDNAME = 'EMATN'.&lt;/P&gt;&lt;P&gt;  WA_SORT-SPOS      = 7.&lt;/P&gt;&lt;P&gt;  WA_SORT-UP        = 'X'.&lt;/P&gt;&lt;P&gt;  APPEND WA_SORT TO I_SORT.ENDFORM.               &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;thanks&lt;/P&gt;&lt;P&gt;sitaram&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 28 May 2008 07:01:48 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/hi/m-p/3887587#M933868</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2008-05-28T07:01:48Z</dc:date>
    </item>
    <item>
      <title>Re: Hi</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/hi/m-p/3887588#M933869</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; Please check this link&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="5051725"&gt;&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Best regards,&lt;/P&gt;&lt;P&gt;raam&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 28 May 2008 07:14:32 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/hi/m-p/3887588#M933869</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2008-05-28T07:14:32Z</dc:date>
    </item>
    <item>
      <title>Re: Hi</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/hi/m-p/3887589#M933870</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Bala,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;If you are using BDC to upload the data using the transation ME31K, it will generate error when the item level record will increase and performance issue will be face.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Try the BAPI 'BAPI_CONTRACT_CREATE' which is used to create contract data.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Find the below links for more info about the BAPI.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;[http://abap.wikiprog.com/wiki/BAPI_CONTRACT_CREATE|http://abap.wikiprog.com/wiki/BAPI_CONTRACT_CREATE]&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 28 May 2008 07:15:27 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/hi/m-p/3887589#M933870</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2008-05-28T07:15:27Z</dc:date>
    </item>
  </channel>
</rss>

