<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: call transaction method in Application Development and Automation Discussions</title>
    <link>https://community.sap.com/t5/application-development-and-automation-discussions/call-transaction-method/m-p/2849317#M667623</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Uttam,&lt;/P&gt;&lt;P&gt;   Chk the prg given below.&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 : ZRP_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;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;*&amp;amp;----&lt;/P&gt;&lt;HR originaltext="--------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="--------------------------------------------------------------" /&gt;&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 Points For the 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, 01 Oct 2007 13:31:20 GMT</pubDate>
    <dc:creator>Former Member</dc:creator>
    <dc:date>2007-10-01T13:31:20Z</dc:date>
    <item>
      <title>call transaction method</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/call-transaction-method/m-p/2849313#M667619</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;hello can anyone send me how to handle errors in bdc call transaction method &lt;/P&gt;&lt;P&gt;. if possible send me coding.&lt;/P&gt;&lt;P&gt;2. and also if errors found in call transaction method what is the sy-subrc value.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;regards,&lt;/P&gt;&lt;P&gt; uttam.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 01 Oct 2007 12:56:41 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/call-transaction-method/m-p/2849313#M667619</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-10-01T12:56:41Z</dc:date>
    </item>
    <item>
      <title>Re: call transaction method</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/call-transaction-method/m-p/2849314#M667620</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;&lt;/P&gt;&lt;P&gt;try this.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;REPORT zbdc_call&lt;/P&gt;&lt;P&gt;       NO STANDARD PAGE HEADING LINE-SIZE 255.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA: BEGIN OF record OCCURS 0,&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;data element: MATNR&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;        matnr_001(018),&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;data element: BRGEW&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;        brgew_008(017),&lt;/P&gt;&lt;P&gt;      END OF record.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;LI level="3" type="ul"&gt;&lt;P&gt;End generated data section ***&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN BEGIN OF BLOCK blk1 WITH FRAME TITLE text-001.&lt;/P&gt;&lt;P&gt;PARAMETER:file LIKE rlgrap-filename.&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN END OF BLOCK blk1.&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;AT SELECTION-SCREEN ON VALUE-REQUEST FOR file.&lt;/P&gt;&lt;P&gt;  CALL FUNCTION 'F4_FILENAME'&lt;/P&gt;&lt;P&gt;    IMPORTING&lt;/P&gt;&lt;P&gt;      file_name = file.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;START-OF-SELECTION.&lt;/P&gt;&lt;P&gt;  PERFORM data_upload.&lt;/P&gt;&lt;P&gt;  PERFORM bdcdata.&lt;/P&gt;&lt;P&gt;CALL TRANSACTION 'MM02' USING BDCDATA MODE 'A' UPDATE 'A'.&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  data_upload&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 data_upload.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  DATA:loc_file TYPE string.&lt;/P&gt;&lt;P&gt;  loc_file = file.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CALL FUNCTION 'GUI_UPLOAD'&lt;/P&gt;&lt;P&gt;    EXPORTING&lt;/P&gt;&lt;P&gt;      filename                = loc_file&lt;/P&gt;&lt;P&gt;      filetype                = 'ASC'&lt;/P&gt;&lt;P&gt;      has_field_separator     = 'X'&lt;/P&gt;&lt;P&gt;    TABLES&lt;/P&gt;&lt;P&gt;      data_tab                = record&lt;/P&gt;&lt;P&gt;    EXCEPTIONS&lt;/P&gt;&lt;P&gt;      file_open_error         = 1&lt;/P&gt;&lt;P&gt;      file_read_error         = 2&lt;/P&gt;&lt;P&gt;      no_batch                = 3&lt;/P&gt;&lt;P&gt;      gui_refuse_filetransfer = 4&lt;/P&gt;&lt;P&gt;      invalid_type            = 5&lt;/P&gt;&lt;P&gt;      no_authority            = 6&lt;/P&gt;&lt;P&gt;      unknown_error           = 7&lt;/P&gt;&lt;P&gt;      bad_data_format         = 8&lt;/P&gt;&lt;P&gt;      header_not_allowed      = 9&lt;/P&gt;&lt;P&gt;      separator_not_allowed   = 10&lt;/P&gt;&lt;P&gt;      header_too_long         = 11&lt;/P&gt;&lt;P&gt;      unknown_dp_error        = 12&lt;/P&gt;&lt;P&gt;      access_denied           = 13&lt;/P&gt;&lt;P&gt;      dp_out_of_memory        = 14&lt;/P&gt;&lt;P&gt;      disk_full               = 15&lt;/P&gt;&lt;P&gt;      dp_timeout              = 16&lt;/P&gt;&lt;P&gt;      OTHERS                  = 17.&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;ENDFORM.                    "data_upload&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  bdc_dynpro&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      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;PROGRAM    text&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     --&amp;gt;DYNPRO     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 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.                    "bdc_dynpro&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  bdc_field&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      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;FNAM       text&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     --&amp;gt;FVAL       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 bdc_field USING fnam fval.&lt;/P&gt;&lt;P&gt;&lt;/P&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;P&gt;ENDFORM.                    "bdc_field&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  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;      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 bdcdata.&lt;/P&gt;&lt;P&gt;  LOOP AT record.&lt;/P&gt;&lt;P&gt;    PERFORM bdc_dynpro      USING 'SAPLMGMM' '0060'.&lt;/P&gt;&lt;P&gt;    PERFORM bdc_field       USING 'BDC_CURSOR'&lt;/P&gt;&lt;P&gt;                                  'RMMG1-MATNR'.&lt;/P&gt;&lt;P&gt;    PERFORM bdc_field       USING 'BDC_OKCODE'&lt;/P&gt;&lt;P&gt;                                  '=AUSW'.&lt;/P&gt;&lt;P&gt;    PERFORM bdc_field       USING 'RMMG1-MATNR'&lt;/P&gt;&lt;P&gt;                                  record-matnr_001.&lt;/P&gt;&lt;P&gt;    PERFORM bdc_dynpro      USING 'SAPLMGMM' '0070'.&lt;/P&gt;&lt;P&gt;    PERFORM bdc_field       USING 'BDC_CURSOR'&lt;/P&gt;&lt;P&gt;                                  'MSICHTAUSW-DYTXT(01)'.&lt;/P&gt;&lt;P&gt;    PERFORM bdc_field       USING 'BDC_OKCODE'&lt;/P&gt;&lt;P&gt;                                  '=ENTR'.&lt;/P&gt;&lt;P&gt;    PERFORM bdc_dynpro      USING 'SAPLMGMM' '4004'.&lt;/P&gt;&lt;P&gt;    PERFORM bdc_field       USING 'BDC_OKCODE'&lt;/P&gt;&lt;P&gt;                                  '=BU'.&lt;/P&gt;&lt;P&gt;    PERFORM bdc_field       USING 'BDC_CURSOR'&lt;/P&gt;&lt;P&gt;                                  'MARA-BRGEW'.&lt;/P&gt;&lt;P&gt;    PERFORM bdc_field       USING 'MARA-BRGEW'&lt;/P&gt;&lt;P&gt;                                  record-brgew_008.&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt;ENDFORM.                    "bdcdata&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;reward if useful.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 01 Oct 2007 12:58:58 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/call-transaction-method/m-p/2849314#M667620</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-10-01T12:58:58Z</dc:date>
    </item>
    <item>
      <title>Re: call transaction method</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/call-transaction-method/m-p/2849315#M667621</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;u need to declare one table :&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data : it type table of BDCMSGCOLL With header line.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;now in call transaction...&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;call trandaction 'xxxx' mode 'x' update 'x' messages into IT.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;now at&lt;/P&gt;&lt;P&gt;end-of-selection.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;loop at it.&lt;/P&gt;&lt;P&gt; if it-msgtyp = 'e'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    write:/ 'message'.&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;reward points if useful....&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 01 Oct 2007 12:59:34 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/call-transaction-method/m-p/2849315#M667621</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-10-01T12:59:34Z</dc:date>
    </item>
    <item>
      <title>Re: call transaction method</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/call-transaction-method/m-p/2849316#M667622</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;If call transaction fails, the value of sy-subrc will be 1001.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Sougata.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 01 Oct 2007 13:25:00 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/call-transaction-method/m-p/2849316#M667622</guid>
      <dc:creator>Sougata</dc:creator>
      <dc:date>2007-10-01T13:25:00Z</dc:date>
    </item>
    <item>
      <title>Re: call transaction method</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/call-transaction-method/m-p/2849317#M667623</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Uttam,&lt;/P&gt;&lt;P&gt;   Chk the prg given below.&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 : ZRP_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;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;*&amp;amp;----&lt;/P&gt;&lt;HR originaltext="--------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="--------------------------------------------------------------" /&gt;&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 Points For the 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, 01 Oct 2007 13:31:20 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/call-transaction-method/m-p/2849317#M667623</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-10-01T13:31:20Z</dc:date>
    </item>
  </channel>
</rss>

