<?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 problem regardig bdc.... in Application Development and Automation Discussions</title>
    <link>https://community.sap.com/t5/application-development-and-automation-discussions/problem-regardig-bdc/m-p/2986684#M705275</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;hi Experts,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;i want to make Hz dc report in which i want to join both call transaction&lt;/P&gt;&lt;P&gt; and session method through submit, so that later on when i need to dc &lt;/P&gt;&lt;P&gt;then i will be having choice of both the methods. and i can choose a &lt;/P&gt;&lt;P&gt;perticular method  of bdc on the requirement.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;please suggest me solution for the same.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;suggestions are always welcome..&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks in advance.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regard,&lt;/P&gt;&lt;P&gt;Vijay Chavan&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Mon, 05 Nov 2007 06:26:48 GMT</pubDate>
    <dc:creator>Former Member</dc:creator>
    <dc:date>2007-11-05T06:26:48Z</dc:date>
    <item>
      <title>problem regardig bdc....</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/problem-regardig-bdc/m-p/2986684#M705275</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;hi Experts,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;i want to make Hz dc report in which i want to join both call transaction&lt;/P&gt;&lt;P&gt; and session method through submit, so that later on when i need to dc &lt;/P&gt;&lt;P&gt;then i will be having choice of both the methods. and i can choose a &lt;/P&gt;&lt;P&gt;perticular method  of bdc on the requirement.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;please suggest me solution for the same.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;suggestions are always welcome..&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks in advance.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regard,&lt;/P&gt;&lt;P&gt;Vijay Chavan&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 05 Nov 2007 06:26:48 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/problem-regardig-bdc/m-p/2986684#M705275</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-11-05T06:26:48Z</dc:date>
    </item>
    <item>
      <title>Re: problem regardig bdc....</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/problem-regardig-bdc/m-p/2986685#M705276</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Vijay,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;When you record a transaction using SHDB and create the program using the utility provided by SAP it automatically come with both the merhods.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards,&lt;/P&gt;&lt;P&gt;Atish&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 05 Nov 2007 06:32:24 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/problem-regardig-bdc/m-p/2986685#M705276</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-11-05T06:32:24Z</dc:date>
    </item>
    <item>
      <title>Re: problem regardig bdc....</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/problem-regardig-bdc/m-p/2986686#M705277</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;You can chk this example code it has both session and call transaction method you can use any of these.&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;&amp;amp;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;THIS PROGRAM SERVES AS A REUSABLE TEMPLATE AND IS FREE FOR USE *&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;HOWEVER, USERS ARE REQUESTED TO PRESERVE THIS PART *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="--------------------------------------------------------------" /&gt;&amp;amp;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Program Name : ZHRP_BDC_MM01 *&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Description : Material Master (MM01 BDC) *&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Package : ZHAR *&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Description : *&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;*&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;PROGRAM FLOW *&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;1. Read input file *&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;2. Check the mandatory fields and if any one of them is missing *&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;move the record to error file. *&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;3. Fill the bdcdata and call MM01 transaction *&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;4. If any errors format the message and send it for reporting *&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;5. If any errors, it downloads the error file *&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;6. Based on user input, this program does the following *&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;a) Call transaction and in case of errors add to a session *&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;b) Create session *&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;7. Display the Audit report *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="--------------------------------------------------------------" /&gt;&amp;amp;amp;amp;amp;amp;amp;amp;amp;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="--------------------------------------------------------------" /&gt;&amp;amp;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;INTERNAL TABLE &amp;amp; STRUCTURE DEFINITIONS&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="--------------------------------------------------------------" /&gt;&amp;amp;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*- Internal table for input file for ASCII data load&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="--------------------------------------------------------------" /&gt;&amp;amp;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;The ASCII file is uploaded and the lines in it are read as strings *&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Later on, they are converted by separating fields using offsets *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="--------------------------------------------------------------" /&gt;&amp;amp;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA:&lt;/P&gt;&lt;P&gt;BEGIN OF I_INFILE_ASC OCCURS 0,&lt;/P&gt;&lt;P&gt;STRING(1300) TYPE C,&lt;/P&gt;&lt;P&gt;END OF I_INFILE_ASC.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA:&lt;/P&gt;&lt;P&gt;*- Internal table to store messages from Call Transaction&lt;/P&gt;&lt;P&gt;I_BDCMSGCOLL TYPE STANDARD TABLE OF BDCMSGCOLL WITH HEADER LINE,&lt;/P&gt;&lt;P&gt;*- Internal table for BDC data&lt;/P&gt;&lt;P&gt;IT_BDCTAB TYPE BDCDATA OCCURS 0 WITH HEADER LINE,&lt;/P&gt;&lt;P&gt;*- Internal table to hold standard text (for long text)&lt;/P&gt;&lt;P&gt;I_TDLINES LIKE TLINE OCCURS 0 WITH HEADER LINE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*- Internal to hold converted records from the text file for BDC data&lt;/P&gt;&lt;P&gt;*- upload (typical structure for MM01)&lt;/P&gt;&lt;P&gt;DATA :&lt;/P&gt;&lt;P&gt;BEGIN OF IT_DATA OCCURS 10,&lt;/P&gt;&lt;P&gt;MATNR(18), " Material Code&lt;/P&gt;&lt;P&gt;MBRSH(1), " Industry sector&lt;/P&gt;&lt;P&gt;MTART(4), " Material Type&lt;/P&gt;&lt;P&gt;WERKS(4), " Plant&lt;/P&gt;&lt;P&gt;LGORT(4), " Storage Location&lt;/P&gt;&lt;P&gt;MAKTX(40), " Material Description&lt;/P&gt;&lt;P&gt;MEINS(3), " Base unit of Measure&lt;/P&gt;&lt;P&gt;MATKL(9), " Material Group&lt;/P&gt;&lt;P&gt;BISMT(18), " Old Material Number&lt;/P&gt;&lt;P&gt;EKGRP(3), " Purchase grp&lt;/P&gt;&lt;P&gt;MFRPN(40), " Manufacturer part number&lt;/P&gt;&lt;P&gt;LGPBE(10), " Storage bin&lt;/P&gt;&lt;P&gt;DISMM(2), " MRP Type&lt;/P&gt;&lt;P&gt;DISPO(3), " MRP controller&lt;/P&gt;&lt;P&gt;MINBE(13), " Reorder Point&lt;/P&gt;&lt;P&gt;DISLS(2), " Lot size (materials planning)&lt;/P&gt;&lt;P&gt;MABST(17), " Maximum stock level&lt;/P&gt;&lt;P&gt;BESKZ(1), " Procurement type&lt;/P&gt;&lt;P&gt;PLIFZ(3), " Planned delivery time in days&lt;/P&gt;&lt;P&gt;FHORI(3), " Scheduling Margin Key for Floats&lt;/P&gt;&lt;P&gt;MTVFP(2), " Availability check&lt;/P&gt;&lt;P&gt;BKLAS(4), " Valuation Class&lt;/P&gt;&lt;P&gt;VPRSV(1), " Price Control&lt;/P&gt;&lt;P&gt;EKALR(1), " Mat. Is Costed with Qty Structure&lt;/P&gt;&lt;P&gt;HKMAT(1), " Material-related origin&lt;/P&gt;&lt;P&gt;LTEXT(1000), " Variable to hold Long Text&lt;/P&gt;&lt;P&gt;END OF IT_DATA.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*- Internal table to hold the long text&lt;/P&gt;&lt;P&gt;DATA:&lt;/P&gt;&lt;P&gt;BEGIN OF IT_LTEXT OCCURS 0,&lt;/P&gt;&lt;P&gt;MATNR(18),&lt;/P&gt;&lt;P&gt;LTEXT(982),&lt;/P&gt;&lt;P&gt;END OF IT_LTEXT.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*- Internal table to hold the error records&lt;/P&gt;&lt;P&gt;DATA:&lt;/P&gt;&lt;P&gt;BEGIN OF IT_ERROR OCCURS 0.&lt;/P&gt;&lt;P&gt;INCLUDE STRUCTURE IT_DATA.&lt;/P&gt;&lt;P&gt;DATA:&lt;/P&gt;&lt;P&gt;MESSAGE(80) TYPE C,&lt;/P&gt;&lt;P&gt;END OF IT_ERROR.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*- Internal table for session names&lt;/P&gt;&lt;P&gt;DATA:&lt;/P&gt;&lt;P&gt;BEGIN OF IT_SESSION OCCURS 0,&lt;/P&gt;&lt;P&gt;NAME(12),&lt;/P&gt;&lt;P&gt;END OF IT_SESSION.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*- Internal table to hold Collecting messages in the SAP System&lt;/P&gt;&lt;P&gt;DATA:&lt;/P&gt;&lt;P&gt;IT_MSG LIKE BDCMSGCOLL OCCURS 10 WITH HEADER LINE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*- Internal table to hold error records to be downloaded&lt;/P&gt;&lt;P&gt;DATA:&lt;/P&gt;&lt;P&gt;BEGIN OF I_FINAL OCCURS 0,&lt;/P&gt;&lt;P&gt;STRING(1300),&lt;/P&gt;&lt;P&gt;END OF I_FINAL.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*- Internal table for session names&lt;/P&gt;&lt;P&gt;DATA:&lt;/P&gt;&lt;P&gt;BEGIN OF I_SESSION OCCURS 0,&lt;/P&gt;&lt;P&gt;NAME(12),&lt;/P&gt;&lt;P&gt;END OF I_SESSION.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA:&lt;/P&gt;&lt;P&gt;IT_INTERN TYPE ALSMEX_TABLINE OCCURS 0 WITH HEADER LINE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*- Parameter string for runtime of CALL TRANSACTION USING..&lt;/P&gt;&lt;P&gt;DATA:&lt;/P&gt;&lt;P&gt;X_OPTIONS TYPE CTU_PARAMS.&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;&amp;amp;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;CONSTANTS&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="--------------------------------------------------------------" /&gt;&amp;amp;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CONSTANTS:&lt;/P&gt;&lt;P&gt;C_FILETYPE LIKE RLGRAP-FILETYPE VALUE 'DAT', " File type&lt;/P&gt;&lt;P&gt;C_TCODE LIKE TSTC-TCODE VALUE 'MM01', " Transaction&lt;/P&gt;&lt;P&gt;C_MODE(1) VALUE 'A', " Mode&lt;/P&gt;&lt;P&gt;C_UPDATE(1) VALUE 'S', " Update&lt;/P&gt;&lt;P&gt;C_SESS(12) TYPE C VALUE 'MAT_SESS'. " Session Name&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="--------------------------------------------------------------" /&gt;&amp;amp;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;GLOBAL VARIABLES&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="--------------------------------------------------------------" /&gt;&amp;amp;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA:&lt;/P&gt;&lt;P&gt;GV_TABIX LIKE SY-TABIX, " Table Index&lt;/P&gt;&lt;P&gt;GV_MESG(80), " Message&lt;/P&gt;&lt;P&gt;GV_ERROR TYPE I, " Errors&lt;/P&gt;&lt;P&gt;GV_SUCCESS TYPE I, " Successes&lt;/P&gt;&lt;P&gt;GV_BDC_SESS TYPE APQI-GROUPID VALUE 'UPLOAD',&lt;/P&gt;&lt;P&gt;GV_MAX TYPE I VALUE '900', " Max records&lt;/P&gt;&lt;P&gt;GV_LINES TYPE I, " N.of records&lt;/P&gt;&lt;P&gt;GV_INSERT TYPE I,&lt;/P&gt;&lt;P&gt;GV_COUNTER(2) TYPE N, " Sessions&lt;/P&gt;&lt;P&gt;GF_OPENSESSION TYPE C,&lt;/P&gt;&lt;P&gt;GV_RECORDS TYPE I,&lt;/P&gt;&lt;P&gt;GV_EMPTY TYPE I, " Empty records&lt;/P&gt;&lt;P&gt;GV_TOTAL TYPE I, " Records with data&lt;/P&gt;&lt;P&gt;GV_SESSION TYPE APQI-GROUPID, " Session name&lt;/P&gt;&lt;P&gt;GV_DEL TYPE X VALUE '09', " Dat Delimiter&lt;/P&gt;&lt;P&gt;GV_SFILE(255), " File path&lt;/P&gt;&lt;P&gt;GV_EXT(3). " File Extension&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;&amp;amp;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;SELECTION SCREEN.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="--------------------------------------------------------------" /&gt;&amp;amp;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN BEGIN OF BLOCK SCR1 WITH FRAME TITLE TEXT-111.&lt;/P&gt;&lt;P&gt;PARAMETER:&lt;/P&gt;&lt;P&gt;P_FILE TYPE RLGRAP-FILENAME OBLIGATORY DEFAULT 'C:\MM01.TXT',&lt;/P&gt;&lt;P&gt;P_ERR TYPE RLGRAP-FILENAME OBLIGATORY DEFAULT 'C:\MM01_ERR.TXT',&lt;/P&gt;&lt;P&gt;P_FTYPE LIKE RLGRAP-FILETYPE DEFAULT 'DAT'.&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN END OF BLOCK SCR1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN BEGIN OF BLOCK MODE WITH FRAME TITLE TEXT-222.&lt;/P&gt;&lt;P&gt;PARAMETER:&lt;/P&gt;&lt;P&gt;P_CT RADIOBUTTON GROUP BDC, " Call Trans&lt;/P&gt;&lt;P&gt;P_BDC RADIOBUTTON GROUP BDC DEFAULT 'X'. " Create BDC sess&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;PARAMETER:&lt;/P&gt;&lt;P&gt;P_SESS1 TYPE APQI-GROUPID OBLIGATORY DEFAULT C_SESS.&lt;/P&gt;&lt;P&gt;" Session name&lt;/P&gt;&lt;P&gt;PARAMETER:&lt;/P&gt;&lt;P&gt;P_MAX(4) OBLIGATORY DEFAULT '100'. " Max. recs in a session&lt;/P&gt;&lt;P&gt;PARAMETERS:&lt;/P&gt;&lt;P&gt;P_HEADER TYPE I DEFAULT 0. " Header Lines&lt;/P&gt;&lt;P&gt;P_BEGCOL TYPE I DEFAULT 1 NO-DISPLAY,&lt;/P&gt;&lt;P&gt;P_BEGROW TYPE I DEFAULT 1 NO-DISPLAY,&lt;/P&gt;&lt;P&gt;P_ENDCOL TYPE I DEFAULT 100 NO-DISPLAY,&lt;/P&gt;&lt;P&gt;P_ENDROW TYPE I DEFAULT 32000 NO-DISPLAY,&lt;/P&gt;&lt;P&gt;P_TEST AS CHECKBOX DEFAULT 'X'. " Test mode&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN END OF BLOCK MODE.&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;&amp;amp;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;AT SELECTION SCREEN.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="--------------------------------------------------------------" /&gt;&amp;amp;&lt;P&gt;&lt;/P&gt;&lt;P&gt;AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_FILE.&lt;/P&gt;&lt;P&gt;*- Input File help (for upload path)&lt;/P&gt;&lt;P&gt;PERFORM FILE_HELP USING P_FILE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_ERR.&lt;/P&gt;&lt;P&gt;*- Error File help (for download path)&lt;/P&gt;&lt;P&gt;PERFORM FILE_HELP USING P_ERR.&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;&amp;amp;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;START-OF-SELECTION&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="--------------------------------------------------------------" /&gt;&amp;amp;&lt;P&gt;&lt;/P&gt;&lt;P&gt;START-OF-SELECTION.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*- Perform to store the data to an internal table&lt;/P&gt;&lt;P&gt;PERFORM READ_INPUT_DATA.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*- Process data in non test mode only&lt;/P&gt;&lt;P&gt;IF P_TEST = SPACE.&lt;/P&gt;&lt;P&gt;IF NOT IT_DATA[] IS INITIAL.&lt;/P&gt;&lt;P&gt;PERFORM PROCESS_DATA.&lt;/P&gt;&lt;P&gt;ELSE.&lt;/P&gt;&lt;P&gt;MESSAGE S003(ZKRP_MSGCLS).&lt;/P&gt;&lt;P&gt;*- Setting flag to stop processing incase of data insufficiency&lt;/P&gt;&lt;P&gt;F_STOP = 'X'.&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;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="--------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;END OF SELECTION.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="--------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;END-OF-SELECTION.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;IF F_STOP = SPACE.&lt;/P&gt;&lt;P&gt;*- Perform to display the selection screen report&lt;/P&gt;&lt;P&gt;PERFORM DISPLAY_SEL_SCR_REPORT.&lt;/P&gt;&lt;P&gt;*- Perform to display the no.of records,success and error records&lt;/P&gt;&lt;P&gt;PERFORM DISPLAY_SUMMARY_REPORT.&lt;/P&gt;&lt;P&gt;*- Perform to display the session report&lt;/P&gt;&lt;P&gt;PERFORM SESSION_REPORT.&lt;/P&gt;&lt;P&gt;*- Downloading error records.&lt;/P&gt;&lt;P&gt;PERFORM DOWNLOAD_ERROR_FILES.&lt;/P&gt;&lt;P&gt;*- Perform to display the error records&lt;/P&gt;&lt;P&gt;PERFORM DISPLAY_ERROR_RECORDS.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;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;Form : FILE_HELP&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;Description : To provide F4 help for file if read from PC&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 FILE_HELP USING F_FILE TYPE RLGRAP-FILENAME.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*- The FM 'KD_GET_FILENAME_ON_F4' opens up a &amp;#147;browse for file&amp;#148; window&lt;/P&gt;&lt;P&gt;*- to select the input file&lt;/P&gt;&lt;P&gt;CALL FUNCTION 'KD_GET_FILENAME_ON_F4'&lt;/P&gt;&lt;P&gt;CHANGING&lt;/P&gt;&lt;P&gt;FILE_NAME = F_FILE&lt;/P&gt;&lt;P&gt;EXCEPTIONS&lt;/P&gt;&lt;P&gt;MASK_TOO_LONG = 1&lt;/P&gt;&lt;P&gt;OTHERS = 2.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;IF SY-SUBRC &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;P&gt;MESSAGE S010(ZKRP_MSGCLS). " 'Error in getting filename'.&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM. " FILE_HELP&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;amp;amp;amp;amp;amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp; Form READ_INPUT_DATA&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM READ_INPUT_DATA.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*- Splitting the filename and its extension&lt;/P&gt;&lt;P&gt;PERFORM SPLIT_FILENAME_EXT.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CASE GV_EXT.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;WHEN 'XLS'.&lt;/P&gt;&lt;P&gt;*- Perform to convert the Excel data into an internal table&lt;/P&gt;&lt;P&gt;PERFORM CONVERT_XLS_ITAB.&lt;/P&gt;&lt;P&gt;WHEN 'TXT'.&lt;/P&gt;&lt;P&gt;IF P_FTYPE = 'ASC'.&lt;/P&gt;&lt;P&gt;*- Uploading the data from server&lt;/P&gt;&lt;P&gt;PERFORM READ_INPUTFILE TABLES I_INFILE_ASC&lt;/P&gt;&lt;P&gt;USING P_FILE P_FTYPE.&lt;/P&gt;&lt;P&gt;*- Perform Formating ASC type data&lt;/P&gt;&lt;P&gt;PERFORM FORMAT_ASC_DATA.&lt;/P&gt;&lt;P&gt;ELSEIF P_FTYPE = 'DAT'.&lt;/P&gt;&lt;P&gt;*- Uploading the data from server&lt;/P&gt;&lt;P&gt;PERFORM READ_INPUTFILE TABLES IT_DATA&lt;/P&gt;&lt;P&gt;USING P_FILE P_FTYPE.&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;WHEN OTHERS.&lt;/P&gt;&lt;P&gt;MESSAGE S000(ZKRP_MSGCLS).&lt;/P&gt;&lt;P&gt;F_STOP = 'X'.&lt;/P&gt;&lt;P&gt;STOP.&lt;/P&gt;&lt;P&gt;ENDCASE.&lt;/P&gt;&lt;P&gt;IF NOT IT_DATA[] IS INITIAL.&lt;/P&gt;&lt;P&gt;*- Perform to delete Header lines&lt;/P&gt;&lt;P&gt;PERFORM DELETE_HEADER_EMPTY_RECS.&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM. " READ_INPUT_DATA&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp; Form SPLIT_FILENAME_EXT&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM SPLIT_FILENAME_EXT.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;MOVE P_FILE TO GV_SFILE.&lt;/P&gt;&lt;P&gt;*- To get the extensions of the file&lt;/P&gt;&lt;P&gt;CALL FUNCTION 'CV120_SPLIT_FILE'&lt;/P&gt;&lt;P&gt;EXPORTING&lt;/P&gt;&lt;P&gt;PF_FILE = GV_SFILE&lt;/P&gt;&lt;P&gt;IMPORTING&lt;/P&gt;&lt;P&gt;PFX_EXTENSION = GV_EXT&lt;/P&gt;&lt;P&gt;.&lt;/P&gt;&lt;P&gt;*- Checking the case of file extension&lt;/P&gt;&lt;P&gt;IF GV_EXT NA SY-ABCDE.&lt;/P&gt;&lt;P&gt;TRANSLATE GV_EXT TO UPPER CASE.&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM. " SPLIT_FILENAME_EXT&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 CONVER_XLS_ITAB&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM CONVERT_XLS_ITAB.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CALL FUNCTION 'ALSM_EXCEL_TO_INTERNAL_TABLE'&lt;/P&gt;&lt;P&gt;EXPORTING&lt;/P&gt;&lt;P&gt;FILENAME = P_FILE&lt;/P&gt;&lt;P&gt;I_BEGIN_COL = P_BEGCOL&lt;/P&gt;&lt;P&gt;I_BEGIN_ROW = P_BEGROW&lt;/P&gt;&lt;P&gt;I_END_COL = P_ENDCOL&lt;/P&gt;&lt;P&gt;I_END_ROW = P_ENDROW&lt;/P&gt;&lt;P&gt;TABLES&lt;/P&gt;&lt;P&gt;INTERN = IT_INTERN&lt;/P&gt;&lt;P&gt;EXCEPTIONS&lt;/P&gt;&lt;P&gt;INCONSISTENT_PARAMETERS = 1&lt;/P&gt;&lt;P&gt;UPLOAD_OLE = 2&lt;/P&gt;&lt;P&gt;OTHERS = 3&lt;/P&gt;&lt;P&gt;.&lt;/P&gt;&lt;P&gt;IF SY-SUBRC &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*- Perform to move the data into an internal data&lt;/P&gt;&lt;P&gt;PERFORM MOVE_DATA.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM. " CONVERT_XLS_ITAB&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp; Form MOVE_DATA&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM MOVE_DATA.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA : LV_INDEX TYPE I.&lt;/P&gt;&lt;P&gt;FIELD-SYMBOLS .&lt;/P&gt;&lt;P&gt;*- Sorting the internal table&lt;/P&gt;&lt;P&gt;SORT IT_INTERN BY ROW COL.&lt;/P&gt;&lt;P&gt;CLEAR IT_INTERN.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;LOOP AT IT_INTERN.&lt;/P&gt;&lt;P&gt;MOVE IT_INTERN-COL TO LV_INDEX.&lt;/P&gt;&lt;P&gt;*- Assigning the each record to an internal table row&lt;/P&gt;&lt;P&gt;ASSIGN COMPONENT LV_INDEX OF STRUCTURE IT_DATA TO .&lt;/P&gt;&lt;P&gt;*- Asigning the field value to a field symbol&lt;/P&gt;&lt;P&gt;MOVE IT_INTERN-VALUE TO .&lt;/P&gt;&lt;P&gt;AT END OF ROW.&lt;/P&gt;&lt;P&gt;APPEND IT_DATA.&lt;/P&gt;&lt;P&gt;CLEAR IT_DATA.&lt;/P&gt;&lt;P&gt;ENDAT.&lt;/P&gt;&lt;P&gt;ENDLOOP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM. " MOVE_DATA&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;Form : Read_inputfile&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;Description : To upload the data into internal 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;P&gt;FORM READ_INPUTFILE TABLES F_INFILE&lt;/P&gt;&lt;P&gt;USING F_FILE TYPE RLGRAP-FILENAME&lt;/P&gt;&lt;P&gt;F_FILTYP TYPE RLGRAP-FILETYPE.&lt;/P&gt;&lt;P&gt;DATA : LV_DEL TYPE CHAR01,&lt;/P&gt;&lt;P&gt;LV_FILE TYPE STRING.&lt;/P&gt;&lt;P&gt;CLEAR F_INFILE.&lt;/P&gt;&lt;P&gt;REFRESH F_INFILE.&lt;/P&gt;&lt;P&gt;LV_FILE = F_FILE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*- Function module to upload the input file&lt;/P&gt;&lt;P&gt;IF F_FILTYP = 'DAT'.&lt;/P&gt;&lt;P&gt;LV_DEL = ''.&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CALL FUNCTION 'GUI_UPLOAD'&lt;/P&gt;&lt;P&gt;EXPORTING&lt;/P&gt;&lt;P&gt;FILENAME = LV_FILE&lt;/P&gt;&lt;P&gt;FILETYPE = 'ASC'&lt;/P&gt;&lt;P&gt;HAS_FIELD_SEPARATOR = LV_DEL&lt;/P&gt;&lt;P&gt;TABLES&lt;/P&gt;&lt;P&gt;DATA_TAB = F_INFILE&lt;/P&gt;&lt;P&gt;EXCEPTIONS&lt;/P&gt;&lt;P&gt;FILE_OPEN_ERROR = 1&lt;/P&gt;&lt;P&gt;FILE_READ_ERROR = 2&lt;/P&gt;&lt;P&gt;NO_BATCH = 3&lt;/P&gt;&lt;P&gt;GUI_REFUSE_FILETRANSFER = 4&lt;/P&gt;&lt;P&gt;INVALID_TYPE = 5&lt;/P&gt;&lt;P&gt;NO_AUTHORITY = 6&lt;/P&gt;&lt;P&gt;UNKNOWN_ERROR = 7&lt;/P&gt;&lt;P&gt;BAD_DATA_FORMAT = 8&lt;/P&gt;&lt;P&gt;HEADER_NOT_ALLOWED = 9&lt;/P&gt;&lt;P&gt;SEPARATOR_NOT_ALLOWED = 10&lt;/P&gt;&lt;P&gt;HEADER_TOO_LONG = 11&lt;/P&gt;&lt;P&gt;UNKNOWN_DP_ERROR = 12&lt;/P&gt;&lt;P&gt;ACCESS_DENIED = 13&lt;/P&gt;&lt;P&gt;DP_OUT_OF_MEMORY = 14&lt;/P&gt;&lt;P&gt;DISK_FULL = 15&lt;/P&gt;&lt;P&gt;DP_TIMEOUT = 16&lt;/P&gt;&lt;P&gt;OTHERS = 17.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;IF SY-SUBRC &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;P&gt;MESSAGE I011(ZKRP_MSGCLS). " 'Error in uploading the file'.&lt;/P&gt;&lt;P&gt;F_STOP = 'X'.&lt;/P&gt;&lt;P&gt;STOP.&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM. "Read_inputfile&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 FORMAT_ASC_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;To format the ASCII data&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM FORMAT_ASC_DATA.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;LOOP AT I_INFILE_ASC.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;IT_DATA-MATNR = I_INFILE_ASC-STRING+0(18).&lt;/P&gt;&lt;P&gt;IT_DATA-MBRSH = I_INFILE_ASC-STRING+18(1).&lt;/P&gt;&lt;P&gt;IT_DATA-MTART = I_INFILE_ASC-STRING+19(4).&lt;/P&gt;&lt;P&gt;IT_DATA-WERKS = I_INFILE_ASC-STRING+23(4).&lt;/P&gt;&lt;P&gt;IT_DATA-LGORT = I_INFILE_ASC-STRING+27(4).&lt;/P&gt;&lt;P&gt;IT_DATA-MAKTX = I_INFILE_ASC-STRING+31(40).&lt;/P&gt;&lt;P&gt;IT_DATA-MEINS = I_INFILE_ASC-STRING+71(3).&lt;/P&gt;&lt;P&gt;IT_DATA-MATKL = I_INFILE_ASC-STRING+74(9).&lt;/P&gt;&lt;P&gt;IT_DATA-BISMT = I_INFILE_ASC-STRING+83(18).&lt;/P&gt;&lt;P&gt;IT_DATA-EKGRP = I_INFILE_ASC-STRING+101(3).&lt;/P&gt;&lt;P&gt;IT_DATA-MFRPN = I_INFILE_ASC-STRING+104(40).&lt;/P&gt;&lt;P&gt;IT_DATA-LGPBE = I_INFILE_ASC-STRING+144(10).&lt;/P&gt;&lt;P&gt;IT_DATA-DISMM = I_INFILE_ASC-STRING+154(2).&lt;/P&gt;&lt;P&gt;IT_DATA-DISPO = I_INFILE_ASC-STRING+156(3).&lt;/P&gt;&lt;P&gt;IT_DATA-MINBE = I_INFILE_ASC-STRING+159(13).&lt;/P&gt;&lt;P&gt;IT_DATA-DISLS = I_INFILE_ASC-STRING+172(2).&lt;/P&gt;&lt;P&gt;IT_DATA-MABST = I_INFILE_ASC-STRING+174(17).&lt;/P&gt;&lt;P&gt;IT_DATA-BESKZ = I_INFILE_ASC-STRING+191(1).&lt;/P&gt;&lt;P&gt;IT_DATA-PLIFZ = I_INFILE_ASC-STRING+192(3).&lt;/P&gt;&lt;P&gt;IT_DATA-FHORI = I_INFILE_ASC-STRING+195(3).&lt;/P&gt;&lt;P&gt;IT_DATA-MTVFP = I_INFILE_ASC-STRING+198(2).&lt;/P&gt;&lt;P&gt;IT_DATA-BKLAS = I_INFILE_ASC-STRING+200(4).&lt;/P&gt;&lt;P&gt;IT_DATA-VPRSV = I_INFILE_ASC-STRING+204(1).&lt;/P&gt;&lt;P&gt;IT_DATA-EKALR = I_INFILE_ASC-STRING+205(1).&lt;/P&gt;&lt;P&gt;IT_DATA-HKMAT = I_INFILE_ASC-STRING+206(1).&lt;/P&gt;&lt;P&gt;IT_DATA-LTEXT = I_INFILE_ASC-STRING+207(1000).&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDLOOP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM. " FORMAT_ASC_DATA&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;Form FILE_VALIDATION&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;To validate data&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="--------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM FILE_VALIDATION.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA: LGV_TABIX LIKE SY-TABIX,&lt;/P&gt;&lt;P&gt;LV_FLAG(1).&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;LOOP AT IT_DATA.&lt;/P&gt;&lt;P&gt;CLEAR GV_MESG.&lt;/P&gt;&lt;P&gt;*- check for the mandatory fields&lt;/P&gt;&lt;P&gt;IF IT_DATA-MAKTX IS INITIAL&lt;/P&gt;&lt;P&gt;OR IT_DATA-MEINS IS INITIAL&lt;/P&gt;&lt;P&gt;OR IT_DATA-MATKL IS INITIAL&lt;/P&gt;&lt;P&gt;OR IT_DATA-EKGRP IS INITIAL&lt;/P&gt;&lt;P&gt;OR IT_DATA-DISMM IS INITIAL&lt;/P&gt;&lt;P&gt;OR IT_DATA-VPRSV IS INITIAL .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;LGV_TABIX = SY-TABIX.&lt;/P&gt;&lt;P&gt;GV_MESG = 'Mandatory fields missing'(002).&lt;/P&gt;&lt;P&gt;*- Perform to store the error record&lt;/P&gt;&lt;P&gt;PERFORM ERROR_PROCESSING. " USING IT_DATA GV_MESG.&lt;/P&gt;&lt;P&gt;*- Deleting the record which is initial&lt;/P&gt;&lt;P&gt;DELETE IT_DATA INDEX LV_TABIX.&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;ENDLOOP.&lt;/P&gt;&lt;P&gt;CLEAR GV_MESG.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM. " DATA_VALIDATION&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 error_processing&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;To process the error records&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM ERROR_PROCESSING.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;GV_ERROR = GV_ERROR + 1.&lt;/P&gt;&lt;P&gt;IT_ERROR = IT_DATA.&lt;/P&gt;&lt;P&gt;IT_ERROR-MESSAGE = GV_MESG.&lt;/P&gt;&lt;P&gt;APPEND IT_ERROR.&lt;/P&gt;&lt;P&gt;CLEAR IT_ERROR.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM. " error_processing&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;Form : process_data&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="--------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;--- Populating the BDC Data&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="--------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM PROCESS_DATA .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;LOOP AT IT_DATA.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CLEAR :IT_BDCTAB,&lt;/P&gt;&lt;P&gt;I_BDCMSGCOLL.&lt;/P&gt;&lt;P&gt;REFRESH:IT_BDCTAB,&lt;/P&gt;&lt;P&gt;I_BDCMSGCOLL.&lt;/P&gt;&lt;P&gt;*- To fill the data from the text file&lt;/P&gt;&lt;P&gt;PERFORM FILL_BDCDATA.&lt;/P&gt;&lt;P&gt;IF P_CT EQ 'X'.&lt;/P&gt;&lt;P&gt;*- Posts data using call transaction method.&lt;/P&gt;&lt;P&gt;PERFORM CALL_TRANSACTION.&lt;/P&gt;&lt;P&gt;ELSE.&lt;/P&gt;&lt;P&gt;*- Posts data using session method.&lt;/P&gt;&lt;P&gt;PERFORM CALL_SESSION USING C_TCODE P_MAX P_SESS1.&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDLOOP.&lt;/P&gt;&lt;P&gt;IF GF_OPENSESSION = 'X'.&lt;/P&gt;&lt;P&gt;PERFORM CLOSE_SESSION.&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM. " PROCESS_DATA&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;amp;amp;amp;amp;amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp; Form FILL_BDCDATA&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;To populate the data&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="--------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM FILL_BDCDATA.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*- MM01 first screen&lt;/P&gt;&lt;P&gt;PERFORM BDC_DYNPRO USING 'SAPLMGMM' '0060'.&lt;/P&gt;&lt;P&gt;PERFORM BDC_FIELD USING 'BDC_CURSOR' 'RMMG1-MATNR'.&lt;/P&gt;&lt;P&gt;PERFORM BDC_FIELD USING 'BDC_OKCODE' '=AUSW'.&lt;/P&gt;&lt;P&gt;PERFORM BDC_FIELD USING 'RMMG1-MATNR' IT_DATA-MATNR.&lt;/P&gt;&lt;P&gt;PERFORM BDC_FIELD USING 'RMMG1-MBRSH' IT_DATA-MBRSH.&lt;/P&gt;&lt;P&gt;PERFORM BDC_FIELD USING 'RMMG1-MTART' IT_DATA-MTART.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*- MM01 view selection&lt;/P&gt;&lt;P&gt;PERFORM BDC_DYNPRO USING 'SAPLMGMM' '0070'.&lt;/P&gt;&lt;P&gt;PERFORM BDC_FIELD USING 'BDC_CURSOR' 'MSICHTAUSW-DYTXT(15)'.&lt;/P&gt;&lt;P&gt;PERFORM BDC_FIELD USING 'BDC_OKCODE' '/00'.&lt;/P&gt;&lt;P&gt;PERFORM BDC_FIELD USING 'MSICHTAUSW-KZSEL(01)' 'X'.&lt;/P&gt;&lt;P&gt;PERFORM BDC_FIELD USING 'MSICHTAUSW-KZSEL(02)' 'X'.&lt;/P&gt;&lt;P&gt;PERFORM BDC_FIELD USING 'MSICHTAUSW-KZSEL(03)' 'X'.&lt;/P&gt;&lt;P&gt;PERFORM BDC_FIELD USING 'MSICHTAUSW-KZSEL(05)' 'X'.&lt;/P&gt;&lt;P&gt;PERFORM BDC_FIELD USING 'MSICHTAUSW-KZSEL(06)' 'X'.&lt;/P&gt;&lt;P&gt;PERFORM BDC_FIELD USING 'MSICHTAUSW-KZSEL(07)' 'X'.&lt;/P&gt;&lt;P&gt;PERFORM BDC_FIELD USING 'MSICHTAUSW-KZSEL(08)' 'X'.&lt;/P&gt;&lt;P&gt;PERFORM BDC_FIELD USING 'MSICHTAUSW-KZSEL(09)' 'X'.&lt;/P&gt;&lt;P&gt;PERFORM BDC_FIELD USING 'MSICHTAUSW-KZSEL(10)' 'X'.&lt;/P&gt;&lt;P&gt;PERFORM BDC_FIELD USING 'MSICHTAUSW-KZSEL(11)' 'X'.&lt;/P&gt;&lt;P&gt;PERFORM BDC_FIELD USING 'MSICHTAUSW-KZSEL(12)' 'X'.&lt;/P&gt;&lt;P&gt;PERFORM BDC_FIELD USING 'MSICHTAUSW-KZSEL(13)' 'X'.&lt;/P&gt;&lt;P&gt;PERFORM BDC_FIELD USING 'MSICHTAUSW-KZSEL(14)' 'X'.&lt;/P&gt;&lt;P&gt;PERFORM BDC_FIELD USING 'MSICHTAUSW-KZSEL(15)' 'X'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*- MM01 first screen&lt;/P&gt;&lt;P&gt;PERFORM BDC_DYNPRO USING 'SAPLMGMM' '0080'.&lt;/P&gt;&lt;P&gt;PERFORM BDC_FIELD USING 'BDC_CURSOR' 'RMMG1-LGORT'.&lt;/P&gt;&lt;P&gt;PERFORM BDC_FIELD USING 'BDC_OKCODE' '=ENTR'.&lt;/P&gt;&lt;P&gt;PERFORM BDC_FIELD USING 'RMMG1-WERKS' IT_DATA-WERKS.&lt;/P&gt;&lt;P&gt;PERFORM BDC_FIELD USING 'RMMG1-LGORT' IT_DATA-LGORT.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*- MM01 first screen&lt;/P&gt;&lt;P&gt;PERFORM BDC_DYNPRO USING 'SAPLMGMM' '4004'.&lt;/P&gt;&lt;P&gt;PERFORM BDC_FIELD USING 'BDC_OKCODE' '=SP02'.&lt;/P&gt;&lt;P&gt;PERFORM BDC_FIELD USING 'MAKT-MAKTX' IT_DATA-MAKTX.&lt;/P&gt;&lt;P&gt;PERFORM BDC_FIELD USING 'MARA-BISMT' IT_DATA-BISMT.&lt;/P&gt;&lt;P&gt;PERFORM BDC_FIELD USING 'MARA-MEINS' IT_DATA-MEINS.&lt;/P&gt;&lt;P&gt;PERFORM BDC_FIELD USING 'MARA-MATKL' IT_DATA-MATKL.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*- MM01 first screen&lt;/P&gt;&lt;P&gt;PERFORM BDC_DYNPRO USING 'SAPLMGMM' '4004'.&lt;/P&gt;&lt;P&gt;PERFORM BDC_FIELD USING 'BDC_CURSOR' 'MAKT-MAKTX'.&lt;/P&gt;&lt;P&gt;PERFORM BDC_FIELD USING 'BDC_OKCODE' '=SP09'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;PERFORM BDC_DYNPRO USING 'SAPLMGMM' '4000'.&lt;/P&gt;&lt;P&gt;PERFORM BDC_FIELD USING 'BDC_OKCODE' '=SP11'.&lt;/P&gt;&lt;P&gt;PERFORM BDC_FIELD USING 'MARC-EKGRP' IT_DATA-EKGRP.&lt;/P&gt;&lt;P&gt;PERFORM BDC_FIELD USING 'MARA-MFRPN' IT_DATA-MFRPN.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;IF NOT IT_DATA-LTEXT IS INITIAL.&lt;/P&gt;&lt;P&gt;*- Perform to populate Long text&lt;/P&gt;&lt;P&gt;PERFORM POPULATE_LONG_TEXT.&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*- MM01 first screen&lt;/P&gt;&lt;P&gt;PERFORM BDC_DYNPRO USING 'SAPLMGMM' '4040'.&lt;/P&gt;&lt;P&gt;PERFORM BDC_FIELD USING 'BDC_OKCODE' '=SP12'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*- MM01 first screen&lt;/P&gt;&lt;P&gt;PERFORM BDC_DYNPRO USING 'SAPLMGMM' '4000'.&lt;/P&gt;&lt;P&gt;PERFORM BDC_FIELD USING 'BDC_OKCODE' '=SP13'.&lt;/P&gt;&lt;P&gt;PERFORM BDC_FIELD USING 'MARC-DISMM' IT_DATA-DISMM.&lt;/P&gt;&lt;P&gt;PERFORM BDC_FIELD USING 'MARC-MINBE' IT_DATA-MINBE.&lt;/P&gt;&lt;P&gt;PERFORM BDC_FIELD USING 'MARC-DISPO' IT_DATA-DISPO.&lt;/P&gt;&lt;P&gt;PERFORM BDC_FIELD USING 'MARC-DISLS' IT_DATA-DISLS.&lt;/P&gt;&lt;P&gt;PERFORM BDC_FIELD USING 'MARC-MABST' IT_DATA-MABST.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*- MM01 first screen&lt;/P&gt;&lt;P&gt;PERFORM BDC_DYNPRO USING 'SAPLMGMM' '4000'.&lt;/P&gt;&lt;P&gt;PERFORM BDC_FIELD USING 'BDC_OKCODE' '=SP14'.&lt;/P&gt;&lt;P&gt;PERFORM BDC_FIELD USING 'MARC-PLIFZ' IT_DATA-PLIFZ.&lt;/P&gt;&lt;P&gt;PERFORM BDC_FIELD USING 'MARC-FHORI' IT_DATA-FHORI.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*- MM01 first screen&lt;/P&gt;&lt;P&gt;PERFORM BDC_DYNPRO USING 'SAPLMGMM' '4000'.&lt;/P&gt;&lt;P&gt;PERFORM BDC_FIELD USING 'BDC_OKCODE' '=SP15'.&lt;/P&gt;&lt;P&gt;PERFORM BDC_FIELD USING 'MARC-MTVFP' IT_DATA-MTVFP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*- MM01 first screen&lt;/P&gt;&lt;P&gt;PERFORM BDC_DYNPRO USING 'SAPLMGMM' '4000'.&lt;/P&gt;&lt;P&gt;PERFORM BDC_FIELD USING 'BDC_CURSOR' 'MAKT-MAKTX'.&lt;/P&gt;&lt;P&gt;PERFORM BDC_FIELD USING 'BDC_OKCODE' '=SP19'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*- MM01 first screen&lt;/P&gt;&lt;P&gt;PERFORM BDC_DYNPRO USING 'SAPLMGMM' '4000'.&lt;/P&gt;&lt;P&gt;PERFORM BDC_FIELD USING 'BDC_CURSOR' 'MAKT-MAKTX'.&lt;/P&gt;&lt;P&gt;PERFORM BDC_FIELD USING 'BDC_OKCODE' '=SP20'.&lt;/P&gt;&lt;P&gt;PERFORM BDC_FIELD USING 'MARD-LGPBE' IT_DATA-LGPBE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*- MM01 first screen&lt;/P&gt;&lt;P&gt;PERFORM BDC_DYNPRO USING 'SAPLMGMM' '4000'.&lt;/P&gt;&lt;P&gt;PERFORM BDC_FIELD USING 'BDC_CURSOR' 'MAKT-MAKTX'.&lt;/P&gt;&lt;P&gt;PERFORM BDC_FIELD USING 'BDC_OKCODE' '=SP24'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*- MM01 first screen&lt;/P&gt;&lt;P&gt;PERFORM BDC_DYNPRO USING 'SAPLMGMM' '4000'.&lt;/P&gt;&lt;P&gt;PERFORM BDC_FIELD USING 'BDC_CURSOR' 'MBEW-BKLAS'.&lt;/P&gt;&lt;P&gt;PERFORM BDC_FIELD USING 'BDC_OKCODE' '=SP25'.&lt;/P&gt;&lt;P&gt;PERFORM BDC_FIELD USING 'MBEW-BKLAS' IT_DATA-BKLAS.&lt;/P&gt;&lt;P&gt;PERFORM BDC_FIELD USING 'MBEW-VPRSV' IT_DATA-VPRSV.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*- MM01 first screen&lt;/P&gt;&lt;P&gt;PERFORM BDC_DYNPRO USING 'SAPLMGMM' '4000'.&lt;/P&gt;&lt;P&gt;PERFORM BDC_FIELD USING 'BDC_CURSOR' 'MAKT-MAKTX'.&lt;/P&gt;&lt;P&gt;PERFORM BDC_FIELD USING 'BDC_OKCODE' '=SP26'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*- MM01 first screen&lt;/P&gt;&lt;P&gt;PERFORM BDC_DYNPRO USING 'SAPLMGMM' '4000'.&lt;/P&gt;&lt;P&gt;PERFORM BDC_FIELD USING 'BDC_CURSOR' 'MAKT-MAKTX'.&lt;/P&gt;&lt;P&gt;PERFORM BDC_FIELD USING 'BDC_OKCODE' '=SP27'.&lt;/P&gt;&lt;P&gt;PERFORM BDC_FIELD USING 'MBEW-EKALR' IT_DATA-EKALR.&lt;/P&gt;&lt;P&gt;PERFORM BDC_FIELD USING 'MBEW-HKMAT' IT_DATA-HKMAT.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*- MM01 first screen&lt;/P&gt;&lt;P&gt;PERFORM BDC_DYNPRO USING 'SAPLMGMM' '4000'.&lt;/P&gt;&lt;P&gt;PERFORM BDC_FIELD USING 'BDC_CURSOR' 'MAKT-MAKTX'.&lt;/P&gt;&lt;P&gt;PERFORM BDC_FIELD USING 'BDC_OKCODE' '=BU'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM. " FILL_BDCDATA&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;Form : call_transaction *&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;*- Posts data using call transaction method. *&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;P&gt;FORM CALL_TRANSACTION .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CLEAR: V_LINES,&lt;/P&gt;&lt;P&gt;GV_MESG.&lt;/P&gt;&lt;P&gt;CLEAR X_OPTIONS.&lt;/P&gt;&lt;P&gt;X_OPTIONS-DISMODE = C_MODE.&lt;/P&gt;&lt;P&gt;X_OPTIONS-UPDMODE = C_UPDATE.&lt;/P&gt;&lt;P&gt;X_OPTIONS-DEFSIZE = 'X'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*- call transaction method to upload data&lt;/P&gt;&lt;P&gt;CALL TRANSACTION C_TCODE USING IT_BDCTAB&lt;/P&gt;&lt;P&gt;OPTIONS FROM X_OPTIONS&lt;/P&gt;&lt;P&gt;MESSAGES INTO I_BDCMSGCOLL.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;IF SY-SUBRC &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;P&gt;DESCRIBE TABLE I_BDCMSGCOLL LINES V_LINES.&lt;/P&gt;&lt;P&gt;READ TABLE I_BDCMSGCOLL INDEX GV_LINES TRANSPORTING ALL FIELDS.&lt;/P&gt;&lt;P&gt;*- Formats message returned by Call transaction.&lt;/P&gt;&lt;P&gt;PERFORM FORMAT_MESSAGE.&lt;/P&gt;&lt;P&gt;*- Perform to process error processing&lt;/P&gt;&lt;P&gt;PERFORM ERROR_PROCESSING." USING IT_DATA GV_MESG.&lt;/P&gt;&lt;P&gt;PERFORM CALL_SESSION USING C_TCODE P_MAX P_SESS1.&lt;/P&gt;&lt;P&gt;ELSE. "If call transaction is successful.&lt;/P&gt;&lt;P&gt;GV_SUCCESS = GV_SUCCESS + 1.&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM. " call_transaction&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 format_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;*-----Reading messages&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;P&gt;FORM FORMAT_MESSAGE.&lt;/P&gt;&lt;P&gt;CLEAR GV_MESG.&lt;/P&gt;&lt;P&gt;*- Function module to get the message.&lt;/P&gt;&lt;P&gt;CALL FUNCTION 'FORMAT_MESSAGE'&lt;/P&gt;&lt;P&gt;EXPORTING&lt;/P&gt;&lt;P&gt;ID = I_BDCMSGCOLL-MSGID&lt;/P&gt;&lt;P&gt;LANG = SY-LANGU&lt;/P&gt;&lt;P&gt;NO = I_BDCMSGCOLL-MSGNR&lt;/P&gt;&lt;P&gt;V1 = I_BDCMSGCOLL-MSGV1&lt;/P&gt;&lt;P&gt;V2 = I_BDCMSGCOLL-MSGV2&lt;/P&gt;&lt;P&gt;V3 = I_BDCMSGCOLL-MSGV3&lt;/P&gt;&lt;P&gt;V4 = I_BDCMSGCOLL-MSGV4&lt;/P&gt;&lt;P&gt;IMPORTING&lt;/P&gt;&lt;P&gt;MSG = GV_MESG.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM. " format_message&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;Form : call_session&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;Description : To call the session either for FSP0 or FSP2&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 CALL_SESSION USING FP_TCODE TYPE ANY&lt;/P&gt;&lt;P&gt;F_MAX TYPE ANY&lt;/P&gt;&lt;P&gt;F_SESS1 TYPE ANY.&lt;/P&gt;&lt;P&gt;*- To open the session&lt;/P&gt;&lt;P&gt;PERFORM OPEN_SESSION USING F_MAX F_SESS1.&lt;/P&gt;&lt;P&gt;*- Perform Insert BDC Session&lt;/P&gt;&lt;P&gt;PERFORM BDC_INSERT USING FP_TCODE.&lt;/P&gt;&lt;P&gt;*- To close the session&lt;/P&gt;&lt;P&gt;IF GV_INSERT = F_MAX .&lt;/P&gt;&lt;P&gt;PERFORM CLOSE_SESSION.&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;ENDFORM. " call_session&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;Form : open_session&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;Description : Form to open BDC open group.&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 OPEN_SESSION USING F_MAX TYPE ANY&lt;/P&gt;&lt;P&gt;F_SESS1 TYPE ANY.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;IF GV_INSERT = F_MAX OR GF_OPENSESSION = SPACE.&lt;/P&gt;&lt;P&gt;GV_COUNTER = GV_COUNTER + 1.&lt;/P&gt;&lt;P&gt;CLEAR GV_SESSION.&lt;/P&gt;&lt;P&gt;CONCATENATE F_SESS1 '_' GV_COUNTER INTO GV_SESSION.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Opening the BDC Session&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;CALL FUNCTION 'BDC_OPEN_GROUP'&lt;/P&gt;&lt;P&gt;EXPORTING&lt;/P&gt;&lt;P&gt;CLIENT = SY-MANDT&lt;/P&gt;&lt;P&gt;GROUP = GV_SESSION&lt;/P&gt;&lt;P&gt;KEEP = 'X'&lt;/P&gt;&lt;P&gt;USER = SY-UNAME&lt;/P&gt;&lt;P&gt;EXCEPTIONS&lt;/P&gt;&lt;P&gt;CLIENT_INVALID = 1&lt;/P&gt;&lt;P&gt;DESTINATION_INVALID = 2&lt;/P&gt;&lt;P&gt;GROUP_INVALID = 3&lt;/P&gt;&lt;P&gt;GROUP_IS_LOCKED = 4&lt;/P&gt;&lt;P&gt;HOLDDATE_INVALID = 5&lt;/P&gt;&lt;P&gt;INTERNAL_ERROR = 6&lt;/P&gt;&lt;P&gt;QUEUE_ERROR = 7&lt;/P&gt;&lt;P&gt;RUNNING = 8&lt;/P&gt;&lt;P&gt;SYSTEM_LOCK_ERROR = 9&lt;/P&gt;&lt;P&gt;USER_INVALID = 10&lt;/P&gt;&lt;P&gt;OTHERS = 11.&lt;/P&gt;&lt;P&gt;IF SY-SUBRC &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;P&gt;MESSAGE I007(ZKRP_MSGCLS). " 'Error in Opening the Session'.&lt;/P&gt;&lt;P&gt;EXIT.&lt;/P&gt;&lt;P&gt;ELSE.&lt;/P&gt;&lt;P&gt;CLEAR V_INSERT.&lt;/P&gt;&lt;P&gt;GF_OPENSESSION = 'X'.&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;ENDFORM. " open_session&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;Form : bdc_insert&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;Description : Form to Insert data.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="--------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM BDC_INSERT USING FP_TCODE TYPE ANY.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Inserting BDC&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;CALL FUNCTION 'BDC_INSERT'&lt;/P&gt;&lt;P&gt;EXPORTING&lt;/P&gt;&lt;P&gt;TCODE = FP_TCODE&lt;/P&gt;&lt;P&gt;TABLES&lt;/P&gt;&lt;P&gt;DYNPROTAB = IT_BDCTAB&lt;/P&gt;&lt;P&gt;EXCEPTIONS&lt;/P&gt;&lt;P&gt;INTERNAL_ERROR = 1&lt;/P&gt;&lt;P&gt;NOT_OPEN = 2&lt;/P&gt;&lt;P&gt;QUEUE_ERROR = 3&lt;/P&gt;&lt;P&gt;TCODE_INVALID = 4&lt;/P&gt;&lt;P&gt;PRINTING_INVALID = 5&lt;/P&gt;&lt;P&gt;POSTING_INVALID = 6&lt;/P&gt;&lt;P&gt;OTHERS = 7.&lt;/P&gt;&lt;P&gt;IF SY-SUBRC &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;P&gt;MESSAGE I008(ZKRP_MSGCLS). " 'Error in inserting the record'.&lt;/P&gt;&lt;P&gt;ELSE.&lt;/P&gt;&lt;P&gt;GV_INSERT = GV_INSERT + 1.&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;ENDFORM. " bdc_insert&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;Form : close_session&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;Description : To close the session&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 CLOSE_SESSION.&lt;/P&gt;&lt;P&gt;CALL FUNCTION 'BDC_CLOSE_GROUP'&lt;/P&gt;&lt;P&gt;EXCEPTIONS&lt;/P&gt;&lt;P&gt;NOT_OPEN = 1&lt;/P&gt;&lt;P&gt;QUEUE_ERROR = 2&lt;/P&gt;&lt;P&gt;OTHERS = 3.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;IF SY-SUBRC &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;P&gt;MESSAGE I009(ZKRP_MSGCLS). " 'Session cannot be closed'.&lt;/P&gt;&lt;P&gt;ELSE.&lt;/P&gt;&lt;P&gt;I_SESSION-NAME = GV_SESSION.&lt;/P&gt;&lt;P&gt;APPEND I_SESSION.&lt;/P&gt;&lt;P&gt;CLEAR I_SESSION.&lt;/P&gt;&lt;P&gt;CLEAR F_OPENSESSION.&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;ENDFORM. " close_session&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_SUCCESS_ERROR_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;To display the no.of records,success and error records&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="--------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM DISPLAY_SUMMARY_REPORT.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;SKIP 3.&lt;/P&gt;&lt;P&gt;FORMAT COLOR COL_HEADING INTENSIFIED ON.&lt;/P&gt;&lt;P&gt;WRITE :/1(132) SY-ULINE.&lt;/P&gt;&lt;P&gt;WRITE :/1(1) SY-VLINE,&lt;/P&gt;&lt;P&gt;65 'SUMMARY REPORT'(003),&lt;/P&gt;&lt;P&gt;132(1) SY-VLINE.&lt;/P&gt;&lt;P&gt;FORMAT INTENSIFIED OFF.&lt;/P&gt;&lt;P&gt;PERFORM COLOR_FILL.&lt;/P&gt;&lt;P&gt;WRITE :/1(132) SY-ULINE.&lt;/P&gt;&lt;P&gt;WRITE :/1(1) SY-VLINE,&lt;/P&gt;&lt;P&gt;2(24) 'Processed Records'(004),&lt;/P&gt;&lt;P&gt;27(2) ' : ',&lt;/P&gt;&lt;P&gt;30 GV_TOTAL ,&lt;/P&gt;&lt;P&gt;132(1) SY-VLINE.&lt;/P&gt;&lt;P&gt;PERFORM COLOR_FILL.&lt;/P&gt;&lt;P&gt;WRITE :/1(1) SY-VLINE,&lt;/P&gt;&lt;P&gt;2(24) 'Successfully Uploaded'(005),&lt;/P&gt;&lt;P&gt;27(2) ' : ',&lt;/P&gt;&lt;P&gt;30 V_SUCCESS,&lt;/P&gt;&lt;P&gt;132(1) SY-VLINE.&lt;/P&gt;&lt;P&gt;PERFORM COLOR_FILL.&lt;/P&gt;&lt;P&gt;WRITE :/1(1) SY-VLINE,&lt;/P&gt;&lt;P&gt;2(24) 'Error Records'(006),&lt;/P&gt;&lt;P&gt;27(2) ' : ',&lt;/P&gt;&lt;P&gt;30 V_ERROR,&lt;/P&gt;&lt;P&gt;132(1) SY-VLINE.&lt;/P&gt;&lt;P&gt;PERFORM COLOR_FILL.&lt;/P&gt;&lt;P&gt;WRITE :/1(1) SY-VLINE,&lt;/P&gt;&lt;P&gt;2(24) 'Empty Records'(007),&lt;/P&gt;&lt;P&gt;27(2) ' : ',&lt;/P&gt;&lt;P&gt;30 GV_EMPTY,&lt;/P&gt;&lt;P&gt;132(1) SY-VLINE.&lt;/P&gt;&lt;P&gt;WRITE :/1(132) SY-ULINE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM. " DISPLAY_SUCCESS_ERROR_DATA&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp; Form DISPLAY_ERROR_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;To display the error records&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="--------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM DISPLAY_ERROR_RECORDS.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;IF GV_ERROR &amp;gt; 0.&lt;/P&gt;&lt;P&gt;*- Perform to display the error header&lt;/P&gt;&lt;P&gt;PERFORM DISPLAY_ERROR_HEADER.&lt;/P&gt;&lt;P&gt;*- Perform to display the error records&lt;/P&gt;&lt;P&gt;PERFORM DISPLAY_ERROR_DETAIL.&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM. " DISPLAY_ERROR_RECORDS&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 DISPLAY_ERROR_HEADER&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;To display the error header&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_ERROR_HEADER.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;SKIP.&lt;/P&gt;&lt;P&gt;WRITE :/1(132) SY-ULINE.&lt;/P&gt;&lt;P&gt;WRITE :/1(1) SY-VLINE,&lt;/P&gt;&lt;P&gt;40 'ERROR RECORDS'(008),&lt;/P&gt;&lt;P&gt;132(1) SY-VLINE.&lt;/P&gt;&lt;P&gt;WRITE :/1(132) SY-ULINE.&lt;/P&gt;&lt;P&gt;WRITE : /1(1) SY-VLINE,&lt;/P&gt;&lt;P&gt;2(18) 'Material Number'(009),&lt;/P&gt;&lt;P&gt;20(1) SY-VLINE,&lt;/P&gt;&lt;P&gt;21(4) 'Type'(010),&lt;/P&gt;&lt;P&gt;25(1) SY-VLINE,&lt;/P&gt;&lt;P&gt;26(5) 'Plant'(011),&lt;/P&gt;&lt;P&gt;31(1) SY-VLINE,&lt;/P&gt;&lt;P&gt;32(16) 'storage location'(012),&lt;/P&gt;&lt;P&gt;48(1) SY-VLINE,&lt;/P&gt;&lt;P&gt;49(80) 'Message'(013),&lt;/P&gt;&lt;P&gt;132(1) SY-VLINE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;WRITE :/1(132) SY-ULINE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM. " DISPLAY_ERROR_HEADER&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 DISPLAY_ERROR_DETAIL&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;To display the error records&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="--------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM DISPLAY_ERROR_DETAIL.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;LOOP AT IT_ERROR.&lt;/P&gt;&lt;P&gt;WRITE : /1(1) SY-VLINE,&lt;/P&gt;&lt;P&gt;2(18) IT_ERROR-MATNR,&lt;/P&gt;&lt;P&gt;20(1) SY-VLINE,&lt;/P&gt;&lt;P&gt;21(4) IT_ERROR-MTART,&lt;/P&gt;&lt;P&gt;25(1) SY-VLINE,&lt;/P&gt;&lt;P&gt;26(5) IT_ERROR-WERKS,&lt;/P&gt;&lt;P&gt;31(1) SY-VLINE,&lt;/P&gt;&lt;P&gt;32(16) IT_ERROR-LGORT,&lt;/P&gt;&lt;P&gt;48(1) SY-VLINE,&lt;/P&gt;&lt;P&gt;49(80) IT_ERROR-MESSAGE,&lt;/P&gt;&lt;P&gt;132(1) SY-VLINE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDLOOP.&lt;/P&gt;&lt;P&gt;WRITE :/1(132) SY-ULINE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM. " DISPLAY_ERROR_DETAIL&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;Form DOWNLOAD_ERROR_FILES&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;*- Downloading the error records to erro file&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;P&gt;FORM DOWNLOAD_ERROR_FILES.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA : LV_DEL TYPE CHAR01,&lt;/P&gt;&lt;P&gt;LV_FILE TYPE STRING.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;IF NOT IT_ERROR[] IS INITIAL.&lt;/P&gt;&lt;P&gt;IF P_FTYPE = 'DAT'.&lt;/P&gt;&lt;P&gt;LOOP AT IT_ERROR.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CONCATENATE IT_ERROR-MATNR&lt;/P&gt;&lt;P&gt;IT_ERROR-MBRSH&lt;/P&gt;&lt;P&gt;IT_ERROR-MTART&lt;/P&gt;&lt;P&gt;IT_ERROR-WERKS&lt;/P&gt;&lt;P&gt;IT_ERROR-LGORT&lt;/P&gt;&lt;P&gt;IT_ERROR-MAKTX&lt;/P&gt;&lt;P&gt;IT_ERROR-MEINS&lt;/P&gt;&lt;P&gt;IT_ERROR-MATKL&lt;/P&gt;&lt;P&gt;IT_ERROR-BISMT&lt;/P&gt;&lt;P&gt;IT_ERROR-EKGRP&lt;/P&gt;&lt;P&gt;IT_ERROR-MFRPN&lt;/P&gt;&lt;P&gt;IT_ERROR-LGPBE&lt;/P&gt;&lt;P&gt;IT_ERROR-DISMM&lt;/P&gt;&lt;P&gt;IT_ERROR-DISPO&lt;/P&gt;&lt;P&gt;IT_ERROR-MINBE&lt;/P&gt;&lt;P&gt;IT_ERROR-DISLS&lt;/P&gt;&lt;P&gt;IT_ERROR-MABST&lt;/P&gt;&lt;P&gt;IT_ERROR-BESKZ&lt;/P&gt;&lt;P&gt;IT_ERROR-PLIFZ&lt;/P&gt;&lt;P&gt;IT_ERROR-FHORI&lt;/P&gt;&lt;P&gt;IT_ERROR-MTVFP&lt;/P&gt;&lt;P&gt;IT_ERROR-BKLAS&lt;/P&gt;&lt;P&gt;IT_ERROR-VPRSV&lt;/P&gt;&lt;P&gt;IT_ERROR-EKALR&lt;/P&gt;&lt;P&gt;IT_ERROR-HKMAT&lt;/P&gt;&lt;P&gt;IT_ERROR-LTEXT&lt;/P&gt;&lt;P&gt;INTO I_FINAL-STRING SEPARATED BY V_DEL.&lt;/P&gt;&lt;P&gt;APPEND I_FINAL.&lt;/P&gt;&lt;P&gt;CLEAR I_FINAL.&lt;/P&gt;&lt;P&gt;ENDLOOP.&lt;/P&gt;&lt;P&gt;CLEAR I_FINAL.&lt;/P&gt;&lt;P&gt;ELSEIF P_FTYPE = 'ASC'.&lt;/P&gt;&lt;P&gt;LOOP AT IT_ERROR.&lt;/P&gt;&lt;P&gt;I_FINAL-STRING+0(18) = IT_ERROR-MATNR.&lt;/P&gt;&lt;P&gt;I_FINAL-STRING+18(1) = IT_ERROR-MBRSH.&lt;/P&gt;&lt;P&gt;I_FINAL-STRING+19(4) = IT_ERROR-MTART.&lt;/P&gt;&lt;P&gt;I_FINAL-STRING+23(4) = IT_ERROR-WERKS.&lt;/P&gt;&lt;P&gt;I_FINAL-STRING+27(4) = IT_ERROR-LGORT.&lt;/P&gt;&lt;P&gt;I_FINAL-STRING+31(40) = IT_ERROR-MAKTX.&lt;/P&gt;&lt;P&gt;I_FINAL-STRING+71(3) = IT_ERROR-MEINS.&lt;/P&gt;&lt;P&gt;I_FINAL-STRING+74(9) = IT_ERROR-MATKL.&lt;/P&gt;&lt;P&gt;I_FINAL-STRING+83(18) = IT_ERROR-BISMT.&lt;/P&gt;&lt;P&gt;I_FINAL-STRING+101(3) = IT_ERROR-EKGRP.&lt;/P&gt;&lt;P&gt;I_FINAL-STRING+104(40) = IT_ERROR-MFRPN.&lt;/P&gt;&lt;P&gt;I_FINAL-STRING+144(10) = IT_ERROR-LGPBE.&lt;/P&gt;&lt;P&gt;I_FINAL-STRING+154(2) = IT_ERROR-DISMM.&lt;/P&gt;&lt;P&gt;I_FINAL-STRING+156(3) = IT_ERROR-DISPO.&lt;/P&gt;&lt;P&gt;I_FINAL-STRING+159(13) = IT_ERROR-MINBE.&lt;/P&gt;&lt;P&gt;I_FINAL-STRING+172(2) = IT_ERROR-DISLS.&lt;/P&gt;&lt;P&gt;I_FINAL-STRING+174(17) = IT_ERROR-MABST.&lt;/P&gt;&lt;P&gt;I_FINAL-STRING+191(1) = IT_ERROR-BESKZ.&lt;/P&gt;&lt;P&gt;I_FINAL-STRING+192(3) = IT_ERROR-PLIFZ.&lt;/P&gt;&lt;P&gt;I_FINAL-STRING+195(3) = IT_ERROR-FHORI.&lt;/P&gt;&lt;P&gt;I_FINAL-STRING+198(2) = IT_ERROR-MTVFP.&lt;/P&gt;&lt;P&gt;I_FINAL-STRING+200(4) = IT_ERROR-BKLAS.&lt;/P&gt;&lt;P&gt;I_FINAL-STRING+204(1) = IT_ERROR-VPRSV.&lt;/P&gt;&lt;P&gt;I_FINAL-STRING+205(1) = IT_ERROR-EKALR.&lt;/P&gt;&lt;P&gt;I_FINAL-STRING+206(1) = IT_ERROR-HKMAT.&lt;/P&gt;&lt;P&gt;I_FINAL-STRING+207(1000) = IT_ERROR-LTEXT.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;APPEND I_FINAL.&lt;/P&gt;&lt;P&gt;CLEAR I_FINAL.&lt;/P&gt;&lt;P&gt;ENDLOOP.&lt;/P&gt;&lt;P&gt;ENDIF. "IF P_FTYPE = 'DAT'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;LV_FILE = P_ERR.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;IF P_FTYPE = 'DAT'.&lt;/P&gt;&lt;P&gt;LV_DEL = ''.&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CALL FUNCTION 'GUI_DOWNLOAD'&lt;/P&gt;&lt;P&gt;EXPORTING&lt;/P&gt;&lt;P&gt;FILENAME = LV_FILE&lt;/P&gt;&lt;P&gt;FILETYPE = 'ASC'&lt;/P&gt;&lt;P&gt;WRITE_FIELD_SEPARATOR = LV_DEL&lt;/P&gt;&lt;P&gt;TABLES&lt;/P&gt;&lt;P&gt;DATA_TAB = I_FINAL&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 &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;P&gt;MESSAGE I012(ZKRP_MSGCLS). " Error in downloading the file.&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDIF. "IF NOT I_FILE_ERROR[] IS INITIAL.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM. " DOWNLOAD_ERROR_FILES&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;amp;amp;amp;amp;amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp; Form POPULATE_LONG_TEXT&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="--------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM POPULATE_LONG_TEXT .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA: LV_LNGTEXT(72).&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA: LV_STRING(1000),&lt;/P&gt;&lt;P&gt;LEN TYPE I,&lt;/P&gt;&lt;P&gt;I_POS TYPE I,&lt;/P&gt;&lt;P&gt;LV_LNLEN TYPE I,&lt;/P&gt;&lt;P&gt;LV_LINE(2) TYPE N,&lt;/P&gt;&lt;P&gt;LV_FIRST,&lt;/P&gt;&lt;P&gt;LV_LNCNT TYPE I,&lt;/P&gt;&lt;P&gt;LV_FLAG.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;LV_LNLEN = 72.&lt;/P&gt;&lt;P&gt;LV_STRING = IT_DATA-LTEXT.&lt;/P&gt;&lt;P&gt;LEN = STRLEN( LV_STRING ).&lt;/P&gt;&lt;P&gt;PERFORM BDC_DYNPRO USING 'SAPLMGMM' '4040'.&lt;/P&gt;&lt;P&gt;PERFORM BDC_FIELD USING 'BDC_OKCODE' '=LTEX'.&lt;/P&gt;&lt;P&gt;LV_LINE = 2.&lt;/P&gt;&lt;P&gt;DO.&lt;/P&gt;&lt;P&gt;IF LV_FLAG = SPACE.&lt;/P&gt;&lt;P&gt;LEN = STRLEN( LV_STRING+I_POS ).&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;IF LEN &amp;lt; lv_lnlen =" LEN." lv_lngtext =" LV_STRING+I_POS(LV_LNLEN)." lv_first =" SPACE." lv_first =" 'X'." lv_lnlen =" 72." lv_flag =" 'X'." i_pos =" I_POS" lv_lncnt =" LV_LNCNT" lv_line =" LV_LINE" gv_ext =" 'XLS'." p_err =" P_ERR(SY-FDPOS)." p_ftype =" 'DAT'." gv_del =" '2C'." gv_ext =" 'XLS'." p_ct =" 'X'." f_color =" SPACE." f_color =" 'X'."&amp;gt; 0 AND NOT IT_DATA IS INITIAL.&lt;/P&gt;&lt;P&gt;DELETE IT_DATA FROM 1 TO P_HEADER.&lt;/P&gt;&lt;P&gt;EXIT.&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;ENDLOOP.&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CLEAR IT_DATA.&lt;/P&gt;&lt;P&gt;*- To delete the empty lines from internal table&lt;/P&gt;&lt;P&gt;LOOP AT IT_DATA.&lt;/P&gt;&lt;P&gt;LGV_TABIX = SY-TABIX.&lt;/P&gt;&lt;P&gt;IF IT_DATA IS INITIAL.&lt;/P&gt;&lt;P&gt;GV_EMPTY = GV_EMPTY + 1.&lt;/P&gt;&lt;P&gt;DELETE IT_DATA INDEX LV_TABIX..&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;ENDLOOP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CLEAR IT_DATA.&lt;/P&gt;&lt;P&gt;*- Total no of recs in file&lt;/P&gt;&lt;P&gt;DESCRIBE TABLE IT_DATA LINES GV_TOTAL .&lt;/P&gt;&lt;P&gt;IF GV_TOTAL = 0.&lt;/P&gt;&lt;P&gt;MESSAGE I013(ZKRP_MSGCLS). " No records in the file&lt;/P&gt;&lt;P&gt;F_STOP = 'X'.&lt;/P&gt;&lt;P&gt;STOP.&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM. " DELETE_HEADER_EMPTY_RECS&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="--------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Start new screen *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="--------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM BDC_DYNPRO USING F_PROGRAM F_DYNPRO.&lt;/P&gt;&lt;P&gt;CLEAR IT_BDCTAB.&lt;/P&gt;&lt;P&gt;IT_BDCTAB-PROGRAM = F_PROGRAM.&lt;/P&gt;&lt;P&gt;IT_BDCTAB-DYNPRO = F_DYNPRO.&lt;/P&gt;&lt;P&gt;IT_BDCTAB-DYNBEGIN = 'X'.&lt;/P&gt;&lt;P&gt;APPEND IT_BDCTAB.&lt;/P&gt;&lt;P&gt;ENDFORM. "BDC_DYNPRO&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;Insert field&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;IF FVAL &amp;lt;&amp;gt; SPACE.&lt;/P&gt;&lt;P&gt;CLEAR IT_BDCTAB.&lt;/P&gt;&lt;P&gt;IT_BDCTAB-FNAM = FNAM.&lt;/P&gt;&lt;P&gt;IT_BDCTAB-FVAL = FVAL.&lt;/P&gt;&lt;P&gt;APPEND IT_BDCTAB.&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM. "BDC_FIELD&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Reward if helpful.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards,&lt;/P&gt;&lt;P&gt;Harini.S&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 05 Nov 2007 06:34:47 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/problem-regardig-bdc/m-p/2986686#M705277</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-11-05T06:34:47Z</dc:date>
    </item>
    <item>
      <title>Re: problem regardig bdc....</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/problem-regardig-bdc/m-p/2986687#M705278</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;you can use call transaction method to upload data into transaction using BDC....&lt;/P&gt;&lt;P&gt;and if the call transaction fails ( sy-subrc &amp;lt;&amp;gt; 0 ) then use session method to capture errors...&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*************************************&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;see example.....in my program i used like this...&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;LOOP AT it_0019 INTO wa_0019.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CLEAR: it_bdcdata,it_bdcmsgcoll.&lt;/P&gt;&lt;P&gt;REFRESH:it_bdcdata,it_bdcmsgcoll.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CLEAR: lv_begda,lv_endda,lv_termn,lv_termn1, lv_mndat.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*--Authorization checks&lt;/P&gt;&lt;P&gt;CLEAR:l_tabix , gv_subrc , gv_infty.&lt;/P&gt;&lt;P&gt;l_tabix = sy-tabix.&lt;/P&gt;&lt;P&gt;CLEAR it_auth.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;it_auth-infty = '0019'.&lt;/P&gt;&lt;P&gt;it_auth-subty = wa_0019-subty.&lt;/P&gt;&lt;P&gt;APPEND it_auth.&lt;/P&gt;&lt;P&gt;CLEAR it_auth.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;PERFORM check_authority TABLES it_auth&lt;/P&gt;&lt;P&gt;USING wa_0019-pernr&lt;/P&gt;&lt;P&gt;CHANGING gv_subrc&lt;/P&gt;&lt;P&gt;gv_infty.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DELETE it_auth WHERE infty = '0019'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;IF gv_subrc NE 0.&lt;/P&gt;&lt;P&gt;gv_rej = gv_rej + 1.&lt;/P&gt;&lt;P&gt;it_auth_fail-pernr = wa_0019-pernr.&lt;/P&gt;&lt;P&gt;it_auth_fail-infty = gv_infty.&lt;/P&gt;&lt;P&gt;IF gv_infty = '0019'.&lt;/P&gt;&lt;P&gt;it_auth_fail-subty = wa_0019-subty.&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;APPEND it_auth_fail.&lt;/P&gt;&lt;P&gt;CLEAR it_auth_fail.&lt;/P&gt;&lt;P&gt;DELETE it_0019 INDEX l_tabix.&lt;/P&gt;&lt;P&gt;CONTINUE.&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;WRITE wa_0019-begda TO lv_begda.&lt;/P&gt;&lt;P&gt;WRITE wa_0019-endda TO lv_endda.&lt;/P&gt;&lt;P&gt;WRITE wa_0019-termn TO lv_termn1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*--Setting date of task to date which is 1 year ahead&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;wa_0019-termn&lt;EM&gt;0(4) = wa_0019-termn&lt;/EM&gt;0(4) + 1.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;CALL FUNCTION 'RP_CALC_DATE_IN_INTERVAL'&lt;/P&gt;&lt;P&gt;EXPORTING&lt;/P&gt;&lt;P&gt;date = wa_0019-termn&lt;/P&gt;&lt;P&gt;days = 0&lt;/P&gt;&lt;P&gt;months = 0&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;SIGNUM = '+'&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;years = 1&lt;/P&gt;&lt;P&gt;IMPORTING&lt;/P&gt;&lt;P&gt;calc_date = wa_0019-termn.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*--Setting reminder date to date 1 year ahead&lt;/P&gt;&lt;P&gt;CALL FUNCTION 'RP_CALC_DATE_IN_INTERVAL'&lt;/P&gt;&lt;P&gt;EXPORTING&lt;/P&gt;&lt;P&gt;date = wa_0019-mndat&lt;/P&gt;&lt;P&gt;days = 0&lt;/P&gt;&lt;P&gt;months = 0&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;SIGNUM = '+'&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;years = 1&lt;/P&gt;&lt;P&gt;IMPORTING&lt;/P&gt;&lt;P&gt;calc_date = wa_0019-mndat.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;WRITE wa_0019-mndat TO lv_mndat.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;WRITE wa_0019-termn TO lv_termn.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*--Getting list of records for pernr in date range&lt;/P&gt;&lt;P&gt;PERFORM bdc_dynpro USING 'SAPMP50A' '1000'.&lt;/P&gt;&lt;P&gt;PERFORM bdc_field USING 'BDC_OKCODE'&lt;/P&gt;&lt;P&gt;'=LIST'.&lt;/P&gt;&lt;P&gt;PERFORM bdc_field USING 'RP50G-PERNR'&lt;/P&gt;&lt;P&gt;wa_0019-pernr.&lt;/P&gt;&lt;P&gt;PERFORM bdc_field USING 'RP50G-TIMR6'&lt;/P&gt;&lt;P&gt;'X'.&lt;/P&gt;&lt;P&gt;PERFORM bdc_field USING 'RP50G-BEGDA'&lt;/P&gt;&lt;P&gt;lv_begda.&lt;/P&gt;&lt;P&gt;PERFORM bdc_field USING 'RP50G-ENDDA'&lt;/P&gt;&lt;P&gt;lv_endda.&lt;/P&gt;&lt;P&gt;PERFORM bdc_field USING 'RP50G-CHOIC'&lt;/P&gt;&lt;P&gt;'0019'.&lt;/P&gt;&lt;P&gt;PERFORM bdc_field USING 'RP50G-SUBTY'&lt;/P&gt;&lt;P&gt;wa_0019-subty.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*--Processing records by selecting record&lt;/P&gt;&lt;P&gt;PERFORM bdc_dynpro USING 'MP001900' '3000'.&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 'RP50M-BEGDA'&lt;/P&gt;&lt;P&gt;lv_termn1.&lt;/P&gt;&lt;P&gt;PERFORM bdc_field USING 'RP50M-ENDDA'&lt;/P&gt;&lt;P&gt;lv_termn1.&lt;/P&gt;&lt;P&gt;PERFORM bdc_field USING 'RP50M-SUBTY'&lt;/P&gt;&lt;P&gt;wa_0019-subty.&lt;/P&gt;&lt;P&gt;PERFORM bdc_field USING 'RP50M-PAGEA'&lt;/P&gt;&lt;P&gt;' 1'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*--Copying the record&lt;/P&gt;&lt;P&gt;PERFORM bdc_dynpro USING 'MP001900' '3000'.&lt;/P&gt;&lt;P&gt;PERFORM bdc_field USING 'BDC_OKCODE'&lt;/P&gt;&lt;P&gt;'=COP'.&lt;/P&gt;&lt;P&gt;PERFORM bdc_field USING 'RP50M-BEGDA'&lt;/P&gt;&lt;P&gt;lv_termn1.&lt;/P&gt;&lt;P&gt;PERFORM bdc_field USING 'RP50M-ENDDA'&lt;/P&gt;&lt;P&gt;lv_termn1.&lt;/P&gt;&lt;P&gt;PERFORM bdc_field USING 'RP50M-SUBTY'&lt;/P&gt;&lt;P&gt;wa_0019-subty.&lt;/P&gt;&lt;P&gt;PERFORM bdc_field USING 'RP50M-PAGEA'&lt;/P&gt;&lt;P&gt;' 1'.&lt;/P&gt;&lt;P&gt;PERFORM bdc_field USING 'RP50M-SELE2(01)'&lt;/P&gt;&lt;P&gt;'X'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*--Modifying required fields&lt;/P&gt;&lt;P&gt;PERFORM bdc_dynpro USING 'MP001900' '2000'.&lt;/P&gt;&lt;P&gt;PERFORM bdc_field USING 'BDC_OKCODE'&lt;/P&gt;&lt;P&gt;'=UPD'.&lt;/P&gt;&lt;P&gt;PERFORM bdc_field USING 'P0019-TERMN'&lt;/P&gt;&lt;P&gt;lv_termn.&lt;/P&gt;&lt;P&gt;PERFORM bdc_field USING 'P0019-MNDAT'&lt;/P&gt;&lt;P&gt;lv_mndat.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;PERFORM bdc_dynpro USING 'MP001900' '3000'.&lt;/P&gt;&lt;P&gt;PERFORM bdc_field USING 'BDC_OKCODE'&lt;/P&gt;&lt;P&gt;'/EBCK'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CALL TRANSACTION 'PA30' USING it_bdcdata&lt;/P&gt;&lt;P&gt;MODE 'N'&lt;/P&gt;&lt;P&gt;UPDATE 'S'&lt;/P&gt;&lt;P&gt;MESSAGES INTO it_bdcmsgcoll.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;IF sy-subrc = 0.&lt;/P&gt;&lt;P&gt;*--- Successful records&lt;/P&gt;&lt;P&gt;gv_updated = gv_updated + 1.&lt;/P&gt;&lt;P&gt;ELSE.&lt;/P&gt;&lt;P&gt;**--- Rejected records&lt;/P&gt;&lt;P&gt;IF gv_open IS INITIAL.&lt;/P&gt;&lt;P&gt;**--- Open the session to process error records&lt;/P&gt;&lt;P&gt;PERFORM bdc_open_group.&lt;/P&gt;&lt;P&gt;gv_open = 'X'.&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;**--- Insert the records&lt;/P&gt;&lt;P&gt;PERFORM bdc_insert.&lt;/P&gt;&lt;P&gt;**--- Collect Error records&lt;/P&gt;&lt;P&gt;PERFORM error_records.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;gv_rej = gv_rej + 1.&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;ENDLOOP.&lt;/P&gt;&lt;P&gt;IF gv_open = 'X'.&lt;/P&gt;&lt;P&gt;*--- Close the session&lt;/P&gt;&lt;P&gt;PERFORM bdc_close_group.&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*FORM bdc_open_group.&lt;/P&gt;&lt;P&gt;**--- Open the session&lt;/P&gt;&lt;P&gt;*CALL FUNCTION 'BDC_OPEN_GROUP'&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;EXPORTING&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;client = sy-mandt&lt;/P&gt;&lt;/LI&gt;&lt;UL&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;GROUP =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;HOLDDATE = sy-datum&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;keep = 'X'&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;user = sy-uname&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;EXCEPTIONS&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;client_invalid = 1&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;destination_invalid = 2&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;group_invalid = 3&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;group_is_locked = 4&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;holddate_invalid = 5&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;internal_error = 6&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;queue_error = 7&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;running = 8&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;system_lock_error = 9&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;user_invalid = 10&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;OTHERS = 11&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;IF sy-subrc &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;IF sy-batch &amp;lt;&amp;gt; 'X'.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;MESSAGE i000(zz) WITH 'Unable to open the Session'(005).&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;ELSE.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;WRITE:/ 'Unable to open the Session'(005).&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*ENDFORM. " bdc_open_group&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*FORM bdc_close_group.&lt;/P&gt;&lt;P&gt;**-- To close the session&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;CALL FUNCTION 'BDC_CLOSE_GROUP'&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;EXCEPTIONS&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;not_open = 1&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;queue_error = 2&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;OTHERS = 3.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;IF sy-subrc &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;IF sy-batch &amp;lt;&amp;gt; 'X'.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;MESSAGE i000(zz) WITH 'Unable to close the session'(012).&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;ELSE.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;WRITE:/ 'Unable to close the session'(012).&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*ENDFORM. " bdc_close_group&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 error_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;text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;--&amp;gt; p1 text&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;&amp;lt;-- p2 text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM error_records.&lt;/P&gt;&lt;P&gt;CLEAR gv_message.&lt;/P&gt;&lt;P&gt;CLEAR sy-tfill.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DESCRIBE TABLE it_bdcmsgcoll LINES sy-tfill.&lt;/P&gt;&lt;P&gt;READ TABLE it_bdcmsgcoll INDEX sy-tfill.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CALL FUNCTION 'FORMAT_MESSAGE'&lt;/P&gt;&lt;P&gt;EXPORTING&lt;/P&gt;&lt;P&gt;id = it_bdcmsgcoll-msgid&lt;/P&gt;&lt;P&gt;lang = sy-langu&lt;/P&gt;&lt;P&gt;no = it_bdcmsgcoll-msgnr&lt;/P&gt;&lt;P&gt;v1 = it_bdcmsgcoll-msgv1&lt;/P&gt;&lt;P&gt;v2 = it_bdcmsgcoll-msgv2&lt;/P&gt;&lt;P&gt;v3 = it_bdcmsgcoll-msgv3&lt;/P&gt;&lt;P&gt;v4 = it_bdcmsgcoll-msgv4&lt;/P&gt;&lt;P&gt;IMPORTING&lt;/P&gt;&lt;P&gt;msg = gv_message&lt;/P&gt;&lt;P&gt;EXCEPTIONS&lt;/P&gt;&lt;P&gt;not_found = 1&lt;/P&gt;&lt;P&gt;OTHERS = 2.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;IF sy-subrc = 0.&lt;/P&gt;&lt;P&gt;it_bdc_fail-pernr = wa_0019-pernr.&lt;/P&gt;&lt;P&gt;it_bdc_fail-message = gv_message.&lt;/P&gt;&lt;P&gt;APPEND it_bdc_fail.&lt;/P&gt;&lt;P&gt;CLEAR it_bdc_fail.&lt;/P&gt;&lt;P&gt;CLEAR gv_message.&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;ENDFORM. " error_records&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*FORM bdc_insert.&lt;/P&gt;&lt;P&gt;**--- Insert the records into session&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;CALL FUNCTION 'BDC_INSERT'&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;EXPORTING&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;tcode = 'PA30'&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;TABLES&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;dynprotab = it_bdcdata&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;EXCEPTIONS&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;internal_error = 1&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;not_open = 2&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;queue_error = 3&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;tcode_invalid = 4&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;printing_invalid = 5&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;posting_invalid = 6&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;OTHERS = 7.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;IF sy-subrc &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;IF sy-batch &amp;lt;&amp;gt; 'X'.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;MESSAGE i000(zz) WITH 'Unable to insert data into BDC session'(019)&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;ELSE.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;WRITE:/ 'Unable to insert data into BDC session'(019).&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*ENDFORM. " bdc_insert&lt;/P&gt;&lt;P&gt;Regards&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 05 Nov 2007 06:41:21 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/problem-regardig-bdc/m-p/2986687#M705278</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-11-05T06:41:21Z</dc:date>
    </item>
    <item>
      <title>Re: problem regardig bdc....</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/problem-regardig-bdc/m-p/2986688#M705279</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi yes it is possible &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;yes both session and call transaction can be writen in one program &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;in the output screen there should be 2 radiobuutons just we need to select session or call transaction at that time &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;if you want the program then &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;after recording the T-code in SHDB &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;just goto the session overview there on application tool bar you will find one button PROGRAM &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;click on that program it will ask you to save that program with some name &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;after that execute that program &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;you can see that session and call transaction programs there &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA : BEGIN OF ITAB OCCURS 0,&lt;/P&gt;&lt;P&gt;EMPID LIKE ZNNR-EMPID,&lt;/P&gt;&lt;P&gt;EMPNAME LIKE ZNNR-EMPNAME,&lt;/P&gt;&lt;P&gt;EMPADR LIKE ZNNR-EMPADR,&lt;/P&gt;&lt;P&gt;END OF ITAB.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA : BDCDATA LIKE BDCDATA OCCURS 0 WITH HEADER LINE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CALL FUNCTION 'GUI_UPLOAD'&lt;/P&gt;&lt;P&gt;EXPORTING&lt;/P&gt;&lt;P&gt;FILENAME = 'C:\NARESH\NARESH.TXT'&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;FILETYPE = 'ASC'&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;HAS_FIELD_SEPARATOR = 'X'&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;HEADER_LENGTH = 0&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;READ_BY_LINE = 'X'&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;DAT_MODE = ' '&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;CODEPAGE = ' '&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;IGNORE_CERR = ABAP_TRUE&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;REPLACEMENT = '#'&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;CHECK_BOM = ' '&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;VIRUS_SCAN_PROFILE =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;NO_AUTH_CHECK = ' '&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;IMPORTING&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;FILELENGTH =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;HEADER =&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;TABLES&lt;/P&gt;&lt;P&gt;DATA_TAB = ITAB&lt;/P&gt;&lt;P&gt;EXCEPTIONS&lt;/P&gt;&lt;P&gt;FILE_OPEN_ERROR = 1&lt;/P&gt;&lt;P&gt;FILE_READ_ERROR = 2&lt;/P&gt;&lt;P&gt;NO_BATCH = 3&lt;/P&gt;&lt;P&gt;GUI_REFUSE_FILETRANSFER = 4&lt;/P&gt;&lt;P&gt;INVALID_TYPE = 5&lt;/P&gt;&lt;P&gt;NO_AUTHORITY = 6&lt;/P&gt;&lt;P&gt;UNKNOWN_ERROR = 7&lt;/P&gt;&lt;P&gt;BAD_DATA_FORMAT = 8&lt;/P&gt;&lt;P&gt;HEADER_NOT_ALLOWED = 9&lt;/P&gt;&lt;P&gt;SEPARATOR_NOT_ALLOWED = 10&lt;/P&gt;&lt;P&gt;HEADER_TOO_LONG = 11&lt;/P&gt;&lt;P&gt;UNKNOWN_DP_ERROR = 12&lt;/P&gt;&lt;P&gt;ACCESS_DENIED = 13&lt;/P&gt;&lt;P&gt;DP_OUT_OF_MEMORY = 14&lt;/P&gt;&lt;P&gt;DISK_FULL = 15&lt;/P&gt;&lt;P&gt;DP_TIMEOUT = 16&lt;/P&gt;&lt;P&gt;OTHERS = 17&lt;/P&gt;&lt;P&gt;.&lt;/P&gt;&lt;P&gt;IF SY-SUBRC &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;P&gt;MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO&lt;/P&gt;&lt;P&gt;WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CALL FUNCTION 'BDC_OPEN_GROUP'&lt;/P&gt;&lt;P&gt;EXPORTING&lt;/P&gt;&lt;P&gt;CLIENT = SY-MANDT&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;DEST = FILLER8&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;GROUP = 'NARESH'&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;HOLDDATE = FILLER8&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;KEEP = 'X'&lt;/P&gt;&lt;P&gt;USER = SY-UNAME&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;RECORD = FILLER1&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;PROG = SY-CPROG&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;IMPORTING&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;QID =&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;EXCEPTIONS&lt;/P&gt;&lt;P&gt;CLIENT_INVALID = 1&lt;/P&gt;&lt;P&gt;DESTINATION_INVALID = 2&lt;/P&gt;&lt;P&gt;GROUP_INVALID = 3&lt;/P&gt;&lt;P&gt;GROUP_IS_LOCKED = 4&lt;/P&gt;&lt;P&gt;HOLDDATE_INVALID = 5&lt;/P&gt;&lt;P&gt;INTERNAL_ERROR = 6&lt;/P&gt;&lt;P&gt;QUEUE_ERROR = 7&lt;/P&gt;&lt;P&gt;RUNNING = 8&lt;/P&gt;&lt;P&gt;SYSTEM_LOCK_ERROR = 9&lt;/P&gt;&lt;P&gt;USER_INVALID = 10&lt;/P&gt;&lt;P&gt;OTHERS = 11&lt;/P&gt;&lt;P&gt;.&lt;/P&gt;&lt;P&gt;IF SY-SUBRC &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;P&gt;MESSAGE 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;LOOP AT ITAB.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;REFRESH BDCDATA.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;PERFORM BDC_DYNPRO USING 'ZNNR_MODULE' '0100'.&lt;/P&gt;&lt;P&gt;PERFORM BDC_FIELD USING 'BDC_CURSOR'&lt;/P&gt;&lt;P&gt;'ZNNR-EMPADR'.&lt;/P&gt;&lt;P&gt;PERFORM BDC_FIELD USING 'BDC_OKCODE'&lt;/P&gt;&lt;P&gt;'=CRT'.&lt;/P&gt;&lt;P&gt;PERFORM BDC_FIELD USING 'ZNNR-EMPID'&lt;/P&gt;&lt;P&gt;ITAB-EMPID.&lt;/P&gt;&lt;P&gt;PERFORM BDC_FIELD USING 'ZNNR-EMPNAME'&lt;/P&gt;&lt;P&gt;ITAB-EMPNAME.&lt;/P&gt;&lt;P&gt;PERFORM BDC_FIELD USING 'ZNNR-EMPADR'&lt;/P&gt;&lt;P&gt;ITAB-EMPADR.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;PERFORM BDC_TRANSACTION USING 'ZNNC'.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CALL FUNCTION 'BDC_INSERT'&lt;/P&gt;&lt;P&gt;EXPORTING&lt;/P&gt;&lt;P&gt;TCODE = 'ZNNC'&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;POST_LOCAL = NOVBLOCAL&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;PRINTING = NOPRINT&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;SIMUBATCH = ' '&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;CTUPARAMS = ' '&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;TABLES&lt;/P&gt;&lt;P&gt;DYNPROTAB = BDCDATA&lt;/P&gt;&lt;P&gt;EXCEPTIONS&lt;/P&gt;&lt;P&gt;INTERNAL_ERROR = 1&lt;/P&gt;&lt;P&gt;NOT_OPEN = 2&lt;/P&gt;&lt;P&gt;QUEUE_ERROR = 3&lt;/P&gt;&lt;P&gt;TCODE_INVALID = 4&lt;/P&gt;&lt;P&gt;PRINTING_INVALID = 5&lt;/P&gt;&lt;P&gt;POSTING_INVALID = 6&lt;/P&gt;&lt;P&gt;OTHERS = 7&lt;/P&gt;&lt;P&gt;.&lt;/P&gt;&lt;P&gt;IF SY-SUBRC &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;P&gt;MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO&lt;/P&gt;&lt;P&gt;WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDLOOP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CALL FUNCTION 'BDC_CLOSE_GROUP'&lt;/P&gt;&lt;P&gt;EXCEPTIONS&lt;/P&gt;&lt;P&gt;NOT_OPEN = 1&lt;/P&gt;&lt;P&gt;QUEUE_ERROR = 2&lt;/P&gt;&lt;P&gt;OTHERS = 3&lt;/P&gt;&lt;P&gt;.&lt;/P&gt;&lt;P&gt;IF SY-SUBRC &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;P&gt;MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO&lt;/P&gt;&lt;P&gt;WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;WRITE &lt;span class="lia-unicode-emoji" title=":confused_face:"&gt;😕&lt;/span&gt; 'SESSION CREATED SUCCESSFULLY'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM BDC_DYNPRO USING PROGRAM DYNPRO.&lt;/P&gt;&lt;P&gt;CLEAR BDCDATA.&lt;/P&gt;&lt;P&gt;BDCDATA-PROGRAM = PROGRAM.&lt;/P&gt;&lt;P&gt;BDCDATA-DYNPRO = DYNPRO.&lt;/P&gt;&lt;P&gt;BDCDATA-DYNBEGIN = 'X'.&lt;/P&gt;&lt;P&gt;APPEND BDCDATA.&lt;/P&gt;&lt;P&gt;ENDFORM.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM BDC_FIELD USING FNAM FVAL.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;IF FVAL &amp;lt;&amp;gt; NODATA.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;CLEAR BDCDATA.&lt;/P&gt;&lt;P&gt;BDCDATA-FNAM = FNAM.&lt;/P&gt;&lt;P&gt;BDCDATA-FVAL = FVAL.&lt;/P&gt;&lt;P&gt;APPEND BDCDATA.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;ENDFORM.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 05 Nov 2007 06:43:34 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/problem-regardig-bdc/m-p/2986688#M705279</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-11-05T06:43:34Z</dc:date>
    </item>
    <item>
      <title>Re: problem regardig bdc....</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/problem-regardig-bdc/m-p/2986689#M705280</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;my dear  Naresh,&lt;/P&gt;&lt;P&gt;you exactly understand my problem.&lt;/P&gt;&lt;P&gt;but see i want to call flat file through F4 functionality and&lt;/P&gt;&lt;P&gt;not directly mentioned path of the flat file in GUI_UPLOAD.&lt;/P&gt;&lt;P&gt;i hope you got my point fully.&lt;/P&gt;&lt;P&gt;one thing keep in mind i want two radiobutton for selection method and one parameter field so that i  can give flat file through F4 functionality.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;thank you.&lt;/P&gt;&lt;P&gt;Regard ,&lt;/P&gt;&lt;P&gt;vijay&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 05 Nov 2007 06:57:52 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/problem-regardig-bdc/m-p/2986689#M705280</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-11-05T06:57:52Z</dc:date>
    </item>
  </channel>
</rss>

