<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic problem with direct input program while uploading data into database in Application Development and Automation Discussions</title>
    <link>https://community.sap.com/t5/application-development-and-automation-discussions/problem-with-direct-input-program-while-uploading-data-into-database/m-p/2579051#M589621</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;TABLES:  BGR00,                        " Mappensatz&lt;/P&gt;&lt;P&gt;         BMM00,                        " MM01/MM02  BTCI-Kopfdaten&lt;/P&gt;&lt;P&gt;         BMMH1,                        " MM01/MM02 Hauptdaten&lt;/P&gt;&lt;P&gt;         BMMH2,                        " Länderdaten (Steuern)&lt;/P&gt;&lt;P&gt;         BMMH3,                        " Prognosewerte&lt;/P&gt;&lt;P&gt;         BMMH4,                        " Verbrauchswerte&lt;/P&gt;&lt;P&gt;         BMMH5,                        " Kurztexte&lt;/P&gt;&lt;P&gt;         BMMH6,                        " Mengeneinheiten&lt;/P&gt;&lt;P&gt;         BMMH7,                        " Langtexte&lt;/P&gt;&lt;P&gt;         BMMH8.                        " Referentielle EAN's&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;       Satztypen&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;DATA:    MAPPENSATZ  LIKE BMM00-STYPE VALUE '0',&lt;/P&gt;&lt;P&gt;         KOPFSATZ    LIKE BMM00-STYPE VALUE '1',&lt;/P&gt;&lt;P&gt;         HAUPTSATZ   LIKE BMM00-STYPE VALUE '2',&lt;/P&gt;&lt;P&gt;         KUN_SATZ    LIKE BMM00-STYPE VALUE 'Z',&lt;/P&gt;&lt;P&gt;         LANDSATZ    LIKE BMM00-STYPE VALUE '3',&lt;/P&gt;&lt;P&gt;         PROGSATZ    LIKE BMM00-STYPE VALUE '4',&lt;/P&gt;&lt;P&gt;         VERBSATZ    LIKE BMM00-STYPE VALUE '5',&lt;/P&gt;&lt;P&gt;         KTEXTSATZ   LIKE BMM00-STYPE VALUE '6',&lt;/P&gt;&lt;P&gt;         MESATZ      LIKE BMM00-STYPE VALUE '7',&lt;/P&gt;&lt;P&gt;         TEXTSATZ    LIKE BMM00-STYPE VALUE '8',&lt;/P&gt;&lt;P&gt;         EANSATZ     LIKE BMM00-STYPE VALUE '9'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*----&lt;/P&gt;&lt;P&gt;-&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; Common Data Bereich fuer die extern aufgerufenen Routinen&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;P&gt;-&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;       Initialstrukturen&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;DATA:  BEGIN OF COMMON PART RMMMBIMY.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA:    BEGIN OF I_BMM00.&lt;/P&gt;&lt;P&gt;           INCLUDE STRUCTURE BMM00.    " Kopfdaten&lt;/P&gt;&lt;P&gt;DATA:    END OF I_BMM00.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA:    BEGIN OF I_BMMH1.&lt;/P&gt;&lt;P&gt;           INCLUDE STRUCTURE BMMH1.    " Haupdaten&lt;/P&gt;&lt;P&gt;DATA:    END OF I_BMMH1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA:    BEGIN OF I_BMMH2.&lt;/P&gt;&lt;P&gt;           INCLUDE STRUCTURE BMMH2.    " Länderdaten&lt;/P&gt;&lt;P&gt;DATA:    END OF I_BMMH2.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA:    BEGIN OF I_BMMH3.&lt;/P&gt;&lt;P&gt;           INCLUDE STRUCTURE BMMH3.    " Prognosewerte&lt;/P&gt;&lt;P&gt;DATA:    END OF I_BMMH3.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA:    BEGIN OF I_BMMH4.&lt;/P&gt;&lt;P&gt;           INCLUDE STRUCTURE BMMH4.    " Verbrauchswerte&lt;/P&gt;&lt;P&gt;DATA:    END OF I_BMMH4.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA:    BEGIN OF I_BMMH5.&lt;/P&gt;&lt;P&gt;           INCLUDE STRUCTURE BMMH5.    " Kurztexte&lt;/P&gt;&lt;P&gt;DATA:    END OF I_BMMH5.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA:    BEGIN OF I_BMMH6.&lt;/P&gt;&lt;P&gt;           INCLUDE STRUCTURE BMMH6.    " Mengeneinheiten&lt;/P&gt;&lt;P&gt;DATA:    END OF I_BMMH6.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA:    BEGIN OF I_BMMH7.&lt;/P&gt;&lt;P&gt;           INCLUDE STRUCTURE BMMH7.    " Textzeilen&lt;/P&gt;&lt;P&gt;DATA:    END OF I_BMMH7.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA:    BEGIN OF I_BMMH8.&lt;/P&gt;&lt;P&gt;           INCLUDE STRUCTURE BMMH8.    " Referentielle EAN's&lt;/P&gt;&lt;P&gt;DATA:    END OF I_BMMH8.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA:  END OF COMMON PART.&lt;/P&gt;&lt;P&gt;DATA: WA LIKE TEDATA-DATA.&lt;/P&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;       Einzelfelder&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA:    GROUP_COUNT(6) TYPE C,    " Anzahl Mappen&lt;/P&gt;&lt;P&gt;         TRANS_COUNT(6) TYPE C,    " alte Definition für rmmmbim0&lt;/P&gt;&lt;P&gt;         SATZ_COUNT  LIKE MUEB_REST-TRANC, " Trans.zähler neu&lt;/P&gt;&lt;P&gt;         H_IND_COUNT LIKE MUEB_REST-D_IND, " Index welches Feld zurücks.&lt;/P&gt;&lt;P&gt;         SATZ2_COUNT(6) TYPE C.    " Anz. Sätze je Trans. ohne Kopfsatz&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA:    XEOF(1)          TYPE C,  " X=End of File erreicht&lt;/P&gt;&lt;P&gt;         XHAUPTSATZ_EXIST TYPE C,  " X=Hauptsatz zum Kopf exi.&lt;/P&gt;&lt;P&gt;         NODATA(1)        TYPE C.  " kein BI für dieses Feld&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;mk/15.08.94:&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;DATA:    GROUP_OPEN(1)  TYPE C.             " X=Mappe schon geöffnet&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*eject&lt;/P&gt;&lt;P&gt;*----&lt;/P&gt;&lt;P&gt;-&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;       Konstanten&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;P&gt;-&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;DATA:    C_NODATA(1)    TYPE C VALUE '/'.   " Default für NODATA&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA:    MATNR_ERW     LIKE MARA-MATNR  VALUE '0                 '.&lt;/P&gt;&lt;P&gt;DATA:    MATNR_ERW_INT LIKE MARA-MATNR.  "internal sight of '0      '&lt;/P&gt;&lt;P&gt;DATA:    MATNR_LAST    LIKE MARA-MATNR.  "Material number&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;********************************************************************&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;mk/11.08.94 2.1H:&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; If this flag is initial, the database updates will be done directly&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; during background maintenance instead of using a separate update&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; task. (no usage of this flag in dialogue mode!)&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;********************************************************************&lt;/P&gt;&lt;P&gt; DATA: DBUPDATE_VB(1) VALUE ' '.       "note 306628&lt;/P&gt;&lt;P&gt; data: matsync type mat_sync. "wk/99a no update in dialog if called&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;***INCLUDE ZMUSD070.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;TABLES: MARA,                          "Material Master: General Data&lt;/P&gt;&lt;P&gt;        MARC,                          "Material Master: C Segment&lt;/P&gt;&lt;P&gt;        MARD,                          "Material Master: St Loc/Batch&lt;/P&gt;&lt;P&gt;        MBEW,                          "Material Valuation&lt;/P&gt;&lt;P&gt;        MVKE,                          "Material Master: Sales Data&lt;/P&gt;&lt;P&gt;        MLGN,                          "Material Data per Whse Number&lt;/P&gt;&lt;P&gt;        MLAN,                          "Tax Classification: Material&lt;/P&gt;&lt;P&gt;        T001W,                         "Plants/Branches&lt;/P&gt;&lt;P&gt;        TBICU.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA: BEGIN OF VALUTAB OCCURS 0.&lt;/P&gt;&lt;P&gt;        INCLUDE STRUCTURE RSPARAMS.&lt;/P&gt;&lt;P&gt;DATA: END OF VALUTAB.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA: BEGIN OF VARTECH.&lt;/P&gt;&lt;P&gt;        INCLUDE STRUCTURE VARID.&lt;/P&gt;&lt;P&gt;DATA: END OF VARTECH.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA: PARMS LIKE ZXXDCONV.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA: REC_COUNT      TYPE  I,&lt;/P&gt;&lt;P&gt;      REC_COUNT_BAD  TYPE  I,&lt;/P&gt;&lt;P&gt;      ZJOBID         LIKE  TBIZU-JOBID,&lt;/P&gt;&lt;P&gt;      ZJOBCOUNT      LIKE  TBIZU-JOBCOUNT,&lt;/P&gt;&lt;P&gt;      ZMATNR         LIKE  MARA-MATNR,&lt;/P&gt;&lt;P&gt;      ZTEXT(80)      TYPE  C.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CONSTANTS: LIT_ZERO(18)  TYPE  C            VALUE '000000000000000000',&lt;/P&gt;&lt;P&gt;           LIT_CHAR      TYPE  C            VALUE '_',&lt;/P&gt;&lt;P&gt;           LIT_CREATE    LIKE  BMM00-TCODE  VALUE 'MM01',&lt;/P&gt;&lt;P&gt;           LIT_CHANGE    LIKE  BMM00-TCODE  VALUE 'MM02',&lt;/P&gt;&lt;P&gt;           LIT_CHECK(1)  TYPE  C            VALUE 'X'.&lt;/P&gt;&lt;P&gt;DATA:  BEGIN OF INP_DATA OCCURS 0,&lt;/P&gt;&lt;P&gt;         MATNR(18)  TYPE C,            " Material code&lt;/P&gt;&lt;P&gt;         UMREN(6)   TYPE C,            " Denominator&lt;/P&gt;&lt;P&gt;         MEINH(3)   TYPE C,            " Alternate UOM&lt;/P&gt;&lt;P&gt;         UMREZ(6)   TYPE C,            " Numerator&lt;/P&gt;&lt;P&gt;       END OF INP_DATA.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*eject&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN BEGIN OF BLOCK INOUT WITH FRAME TITLE TEXT-001.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN BEGIN OF LINE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN COMMENT (13) TEXT-004.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;PARAMETERS:     P_PC        RADIOBUTTON GROUP SRC DEFAULT 'X'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN COMMENT (6) TEXT-005.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;PARAMETERS:     P_UNIX      RADIOBUTTON GROUP SRC.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN COMMENT (6) TEXT-006.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;PARAMETERS:     P_DS_TYP    LIKE     ZXXDCONV-DS_TYP&lt;/P&gt;&lt;P&gt;                               DEFAULT 'ASC'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN END OF LINE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*SELECT-OPTIONS: S_PATH      FOR      PARMS-PATH&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                              NO INTERVALS&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                              LOWER CASE.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;PARAMETERS:  P_PATH TYPE RLGRAP-FILENAME.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;PARAMETERS:     P_HDRLIN   LIKE     ZXXDCONV-HDR_LINES&lt;/P&gt;&lt;P&gt;                               DEFAULT 0,&lt;/P&gt;&lt;P&gt;                P_JOBNAM   LIKE     TBICU_S-JOBNAME&lt;/P&gt;&lt;P&gt;                               MEMORY ID BM1,&lt;/P&gt;&lt;P&gt;                P_DI_EXE    AS       CHECKBOX&lt;/P&gt;&lt;P&gt;                               DEFAULT  LIT_CHECK,&lt;/P&gt;&lt;P&gt;                P_MAPPE     LIKE     BGR00-GROUP&lt;/P&gt;&lt;P&gt;                               DEFAULT  'MRP_UOM_LOAD'&lt;/P&gt;&lt;P&gt;                               NO-DISPLAY.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN END OF BLOCK INOUT.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*eject&lt;/P&gt;&lt;P&gt;AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_PATH.&lt;/P&gt;&lt;P&gt;  CALL FUNCTION 'KD_GET_FILENAME_ON_F4'&lt;/P&gt;&lt;P&gt;       EXPORTING&lt;/P&gt;&lt;P&gt;            PROGRAM_NAME  = SYST-REPID&lt;/P&gt;&lt;P&gt;            DYNPRO_NUMBER = SYST-DYNNR&lt;/P&gt;&lt;P&gt;            FIELD_NAME    = 'P_PATH'&lt;/P&gt;&lt;P&gt;       CHANGING&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;           FILE_NAME     = S_PATH-LOW&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;            FILE_NAME     = P_PATH&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;AT SELECTION-SCREEN.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Set up parameter record&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  PARMS-UNIX      = P_UNIX.&lt;/P&gt;&lt;P&gt;  PARMS-PC        = P_PC.&lt;/P&gt;&lt;P&gt;  PARMS-DS_TYP    = P_DS_TYP.&lt;/P&gt;&lt;P&gt;  PARMS-JOBNAME   = P_JOBNAM.&lt;/P&gt;&lt;P&gt;  PARMS-MAPPE     = P_MAPPE.&lt;/P&gt;&lt;P&gt;  PARMS-HDR_LINES = P_HDRLIN.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*eject&lt;/P&gt;&lt;P&gt;************************************************************************&lt;/P&gt;&lt;UL&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;       Main Processing Routine                                       *&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                                                                     *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;************************************************************************&lt;/P&gt;&lt;P&gt;START-OF-SELECTION.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Initialization&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  PERFORM 0000_HOUSEKEEPING.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;UL&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;Initialize transaction data in I_BM00&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; PERFORM 0500_INIT_BMM00.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Process input files&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; SORT S_PATH BY SIGN OPTION LOW.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     MOVE S_PATH-LOW TO PARMS-PATH.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      MOVE P_PATH TO PARMS-PATH.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; LOOP AT S_PATH.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   AT NEW LOW.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      CLEAR   INP_DATA.&lt;/P&gt;&lt;P&gt;     REFRESH INP_DATA.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Read source data into internal table&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      PERFORM 1000_GET_SOURCE_DATA TABLES INP_DATA.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Processs each record in internal table&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      ZTEXT    = TEXT-007.&lt;/P&gt;&lt;P&gt;      ZTEXT+13 = PARMS-DS_NAME.&lt;/P&gt;&lt;P&gt;      PERFORM 4000_PROGRESS_INDICATOR USING ZTEXT.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;UL&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;Initialize transaction data in I_BM00&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;P&gt;  PERFORM 0500_INIT_BMM00.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      LOOP AT INP_DATA.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Reset tables for each record&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;        BMM00              = I_BMM00.&lt;/P&gt;&lt;P&gt;        BMMH1              = I_BMMH1.&lt;/P&gt;&lt;P&gt;        BMMH6              = I_BMMH6.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Load structures with data&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;        MOVE-CORRESPONDING INP_DATA TO BMM00.&lt;/P&gt;&lt;P&gt;        PERFORM 2000_WRITE_OUTPUT USING BMM00.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        MOVE-CORRESPONDING INP_DATA TO BMMH1.&lt;/P&gt;&lt;P&gt;        PERFORM 2000_WRITE_OUTPUT USING BMMH1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        MOVE-CORRESPONDING INP_DATA TO BMMH6.&lt;/P&gt;&lt;P&gt;        PERFORM 2000_WRITE_OUTPUT USING BMMH6.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        REC_COUNT = REC_COUNT + 1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      ENDLOOP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   ENDAT.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; ENDLOOP.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  IF  REC_COUNT GT 0&lt;/P&gt;&lt;P&gt;  AND P_DI_EXE  EQ LIT_CHECK.&lt;/P&gt;&lt;P&gt;    PERFORM 3000_START_DI_JOB.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt; WRITE: / TEXT-008,&lt;/P&gt;&lt;P&gt;           REC_COUNT.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  PERFORM 9000_END_OF_JOB.&lt;/P&gt;&lt;P&gt;*eject&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Include containing common routines used by direct input programs&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  INCLUDE ZMUSD071.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*eject&lt;/P&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      FORM 0500_INIT_BMM00                                          *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      Initialize I_BMM00 with transaction code and views selected   *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;FORM 0500_INIT_BMM00.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;***&lt;STRONG&gt;this changes done by samson&lt;/STRONG&gt;**&lt;/P&gt;&lt;P&gt;if not inp_data[] is initial.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;select single matnr from mara INTO ZMATNR where matnr = inp_data-matnr.&lt;/P&gt;&lt;P&gt;if sy-subrc = 0.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  I_BMM00-TCODE = LIT_CHANGE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Basic data&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  I_BMM00-XEIK1  = LIT_CHECK.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;else.&lt;/P&gt;&lt;P&gt;  I_BMM00-TCODE = LIT_CREATE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Basic data&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  I_BMM00-XEIK1 = LIT_CHECK.&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;endif.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;**&lt;STRONG&gt;this changes above done by samson&lt;/STRONG&gt;**&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;UL&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;Transaction code&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; I_BMM00-TCODE = LIT_CHANGE.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*&lt;/P&gt;&lt;UL&gt;&lt;UL&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;Basic data&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; I_BMM00-XEIK1  = LIT_CHECK.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.&lt;/P&gt;&lt;P&gt;INCLUDE ZMUSD069.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*eject&lt;/P&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      FORM 0000_HOUSEKEEPING                                        *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      Initialization routines                                       *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM 0000_HOUSEKEEPING.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  PERFORM 0010_LDS_NAME.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  PERFORM 0020_DS_NAME.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  PERFORM 0030_OPEN_FILE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  PERFORM 0040_INIT_STRUCTS.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*eject&lt;/P&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      FORM 0010_LDS_NAME                                            *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      Obtain logical file name from DI job details                  *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;FORM 0010_LDS_NAME.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Check valid job name&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  SELECT SINGLE * FROM  TBICU&lt;/P&gt;&lt;P&gt;                  WHERE JOBNAME EQ PARMS-JOBNAME.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  IF SY-SUBRC EQ 0.&lt;/P&gt;&lt;P&gt;    CALL FUNCTION 'RS_VARIANT_VALUES_TECH_DATA'&lt;/P&gt;&lt;P&gt;         EXPORTING&lt;/P&gt;&lt;P&gt;              REPORT               = TBICU-REPNAME&lt;/P&gt;&lt;P&gt;              VARIANT              = TBICU-VARIANT&lt;/P&gt;&lt;P&gt;         IMPORTING&lt;/P&gt;&lt;P&gt;              TECHN_DATA           = VARTECH&lt;/P&gt;&lt;P&gt;         TABLES&lt;/P&gt;&lt;P&gt;              VARIANT_VALUES       = VALUTAB&lt;/P&gt;&lt;P&gt;         EXCEPTIONS&lt;/P&gt;&lt;P&gt;              VARIANT_NON_EXISTENT = 1&lt;/P&gt;&lt;P&gt;              VARIANT_OBSOLETE     = 2&lt;/P&gt;&lt;P&gt;              OTHERS               = 3.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    IF SY-SUBRC EQ 0.&lt;/P&gt;&lt;P&gt;      READ TABLE VALUTAB WITH KEY 'LDS_NAME'.&lt;/P&gt;&lt;P&gt;      MOVE VALUTAB-LOW TO PARMS-LDS_NAME.&lt;/P&gt;&lt;P&gt;    ELSE.&lt;/P&gt;&lt;P&gt;      MESSAGE I001 WITH PARMS-JOBNAME.&lt;/P&gt;&lt;P&gt;      MESSAGE A099.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;  ELSE.&lt;/P&gt;&lt;P&gt;    MESSAGE I000 WITH PARMS-JOBNAME.&lt;/P&gt;&lt;P&gt;    MESSAGE A099.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*eject&lt;/P&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      FORM 0040_INIT_STRUCTS                                        *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      Initialize structures for direct input records                *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;FORM 0040_INIT_STRUCTS.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Start of standard SAP initialization from example program RMMMBIME&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*------- Write session record -&lt;/P&gt;&lt;P&gt;-&lt;/P&gt;&lt;HR originaltext="---------------------------------------" /&gt;&lt;P&gt;  CLEAR BGR00.&lt;/P&gt;&lt;P&gt;  BGR00-STYPE  = MAPPENSATZ.&lt;/P&gt;&lt;P&gt;  BGR00-GROUP  = PARMS-MAPPE.&lt;/P&gt;&lt;P&gt;  BGR00-NODATA = C_NODATA.&lt;/P&gt;&lt;P&gt;  BGR00-MANDT  = SY-MANDT.&lt;/P&gt;&lt;P&gt;  BGR00-USNAM  = SY-UNAME.&lt;/P&gt;&lt;P&gt;  BGR00-START  = BGR00-NODATA.&lt;/P&gt;&lt;P&gt;  BGR00-XKEEP  = BGR00-NODATA.&lt;/P&gt;&lt;P&gt;  PERFORM 2000_WRITE_OUTPUT USING BGR00.&lt;/P&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;*----- Initialize structures -&lt;/P&gt;&lt;P&gt;-&lt;/P&gt;&lt;HR originaltext="---------------------------------------" /&gt;&lt;P&gt;  NODATA = BGR00-NODATA.&lt;/P&gt;&lt;P&gt;  PERFORM INIT_STRUKTUREN_ERZEUGEN(RMMMBIMI) USING NODATA.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;End of standard SAP initialization from example program RMMMBIME&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*eject.&lt;/P&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      FORM 3000_START_DI_JOB                                        *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      Start direct input job                                        *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;FORM 3000_START_DI_JOB.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  ZTEXT = 'Starting '(021).&lt;/P&gt;&lt;P&gt;  ZTEXT+9 = TBICU-JOBNAME.&lt;/P&gt;&lt;P&gt;  PERFORM 4000_PROGRESS_INDICATOR USING ZTEXT.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CALL FUNCTION 'BI_START_JOB'&lt;/P&gt;&lt;P&gt;       EXPORTING&lt;/P&gt;&lt;P&gt;            JOBID                 = ' '&lt;/P&gt;&lt;P&gt;            JOBTEXT               = TBICU-JOBNAME&lt;/P&gt;&lt;P&gt;            REPNAME               = TBICU-REPNAME&lt;/P&gt;&lt;P&gt;            SERVER                = TBICU-EXECSERVER&lt;/P&gt;&lt;P&gt;            VARIANT               = TBICU-VARIANT&lt;/P&gt;&lt;P&gt;            NEW_JOB               = 'X'&lt;/P&gt;&lt;P&gt;            CONTINUE_JOB          = ' '&lt;/P&gt;&lt;P&gt;            START_IMMEDIATE       = 'X'&lt;/P&gt;&lt;P&gt;            DO_NOT_PRINT          = 'X'&lt;/P&gt;&lt;P&gt;            USERNAME              = SY-UNAME&lt;/P&gt;&lt;P&gt;       IMPORTING&lt;/P&gt;&lt;P&gt;            JOBID                 = ZJOBID&lt;/P&gt;&lt;P&gt;            JOBCOUNT              = ZJOBCOUNT&lt;/P&gt;&lt;P&gt;       EXCEPTIONS&lt;/P&gt;&lt;P&gt;            JOB_OPEN_FAILED       = 1&lt;/P&gt;&lt;P&gt;            JOB_CLOSE_FAILED      = 2&lt;/P&gt;&lt;P&gt;            JOB_SUBMIT_FAILED     = 3&lt;/P&gt;&lt;P&gt;            WRONG_PARAMETERS      = 4&lt;/P&gt;&lt;P&gt;            JOB_DOES_NOT_EXIST    = 5&lt;/P&gt;&lt;P&gt;            WRONG_STARTTIME_GIVEN = 6&lt;/P&gt;&lt;P&gt;            JOB_NOT_RELEASED      = 7&lt;/P&gt;&lt;P&gt;            WRONG_VARIANT         = 8&lt;/P&gt;&lt;P&gt;            NO_AUTHORITY          = 9&lt;/P&gt;&lt;P&gt;            DIALOG_CANCELLED      = 10&lt;/P&gt;&lt;P&gt;            JOB_ALREADY_EXISTS    = 11&lt;/P&gt;&lt;P&gt;            PERIODIC_NOT_ALLOWED  = 12&lt;/P&gt;&lt;P&gt;            ERROR_NUMBER_GET_NEXT = 13&lt;/P&gt;&lt;P&gt;            OTHERS                = 14.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  IF SY-SUBRC EQ 0.&lt;/P&gt;&lt;P&gt;    WRITE: / 'Direct input job'(022), TBICU-JOBNAME, 'started'.&lt;/P&gt;&lt;P&gt;  ELSE.&lt;/P&gt;&lt;P&gt;    WRITE: / 'Direct input failed with return code'(023), SY-SUBRC.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM 0020_DS_NAME.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CALL FUNCTION 'FILE_GET_NAME'&lt;/P&gt;&lt;P&gt;       EXPORTING&lt;/P&gt;&lt;P&gt;            CLIENT           = SY-MANDT&lt;/P&gt;&lt;P&gt;            LOGICAL_FILENAME = PARMS-LDS_NAME&lt;/P&gt;&lt;P&gt;            OPERATING_SYSTEM = SY-OPSYS&lt;/P&gt;&lt;P&gt;       IMPORTING&lt;/P&gt;&lt;P&gt;            FILE_NAME        = PARMS-DS_NAME&lt;/P&gt;&lt;P&gt;       EXCEPTIONS&lt;/P&gt;&lt;P&gt;            FILE_NOT_FOUND   = 1&lt;/P&gt;&lt;P&gt;            OTHERS           = 2.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  IF SY-SUBRC NE 0.&lt;/P&gt;&lt;P&gt;    MESSAGE E002 WITH PARMS-LDS_NAME.&lt;/P&gt;&lt;P&gt;    MESSAGE A099.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*eject&lt;/P&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      FORM 0030_OPEN_FILE                                           *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      Open physical file for output                                 *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;FORM 0030_OPEN_FILE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; OPEN DATASET PARMS-DS_NAME FOR OUTPUT IN TEXT MODE. "thg191105&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  OPEN DATASET PARMS-DS_NAME FOR OUTPUT IN TEXT MODE&lt;/P&gt;&lt;P&gt;                                 encoding default. "thg191105&lt;/P&gt;&lt;P&gt;  IF SY-SUBRC NE 0.&lt;/P&gt;&lt;P&gt;    MESSAGE E003 WITH PARMS-DS_NAME.&lt;/P&gt;&lt;P&gt;    MESSAGE A099.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*eject&lt;/P&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      FORM 1000_GET_SOURCE_DATA                                     *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      Read source data into internal table                          *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; --&amp;gt;  INP_DATA   " Name of internal table passed as parameter       *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;FORM 1000_GET_SOURCE_DATA TABLES INP_DATA.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CALL FUNCTION 'Z_FILE_UPLOAD'&lt;/P&gt;&lt;P&gt;       EXPORTING&lt;/P&gt;&lt;P&gt;            UNIX                = PARMS-UNIX&lt;/P&gt;&lt;P&gt;            PC                  = PARMS-PC&lt;/P&gt;&lt;P&gt;            FILETYPE            = PARMS-DS_TYP&lt;/P&gt;&lt;P&gt;            FILENAME            = PARMS-PATH&lt;/P&gt;&lt;P&gt;            HDR_LINES           = PARMS-HDR_LINES&lt;/P&gt;&lt;P&gt;       TABLES&lt;/P&gt;&lt;P&gt;            DATA_TAB            = INP_DATA&lt;/P&gt;&lt;P&gt;       EXCEPTIONS&lt;/P&gt;&lt;P&gt;            CONVERSION_ERROR    = 1&lt;/P&gt;&lt;P&gt;            FILE_OPEN_ERROR     = 2&lt;/P&gt;&lt;P&gt;            FILE_READ_ERROR     = 3&lt;/P&gt;&lt;P&gt;            INVALID_TABLE_WIDTH = 4&lt;/P&gt;&lt;P&gt;            INVALID_TYPE        = 5&lt;/P&gt;&lt;P&gt;            NO_BATCH            = 6&lt;/P&gt;&lt;P&gt;            UNKNOWN_ERROR       = 7&lt;/P&gt;&lt;P&gt;            INVALID_SOURCE      = 8&lt;/P&gt;&lt;P&gt;            OTHERS              = 9.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*eject&lt;/P&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      FORM 2000_WRITE_OUTPUT                                        *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      Write record in standard SAP structure to UNIX file           *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; --&amp;gt;  I_STRUCT   " Name of record passed as parameter               *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;*FORM 2000_WRITE_OUTPUT USING I_STRUCT."SRY28NOV05&lt;/P&gt;&lt;P&gt;FORM 2000_WRITE_OUTPUT USING I_STRUCT TYPE ANY.      "SRY28NOV05&lt;/P&gt;&lt;P&gt;   TRANSFER I_STRUCT TO PARMS-DS_NAME.&lt;/P&gt;&lt;P&gt;  IF SY-SUBRC NE 0.&lt;/P&gt;&lt;P&gt;    MESSAGE E004 WITH PARMS-DS_NAME.&lt;/P&gt;&lt;P&gt;    MESSAGE A099.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*eject&lt;/P&gt;&lt;P&gt;*&amp;amp;----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  2100_WS_DOWNLOAD&lt;/P&gt;&lt;P&gt;*&amp;amp;----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      text                                                           *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; --&amp;gt;  p1        text&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; &amp;lt;--  p2        text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;FORM 2100_WS_DOWNLOAD TABLES INP_DATA.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; DATA: FILENAME LIKE RLGRAP-FILENAME.   "SRY28NOV05&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  DATA: W_FILENAME TYPE STRING.             "SRY28NOV05&lt;/P&gt;&lt;P&gt;  DATA: W_FTYP(10) TYPE C VALUE 'DAT'.      "SRY28NOV05&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; MOVE PARMS-DS_NAME TO FILENAME.       "SRY28NOV05&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  MOVE PARMS-DS_NAME TO W_FILENAME.      "SRY28NOV05&lt;/P&gt;&lt;P&gt;*BEGIN OF BLOCK COMMENT BY SRY28NOV05&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; CALL FUNCTION 'WS_DOWNLOAD'&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      EXPORTING&lt;/P&gt;&lt;/LI&gt;&lt;UL&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;        BIN_FILESIZE        = ' '&lt;/P&gt;&lt;/LI&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;        CODEPAGE            = ' '&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;           FILENAME            = FILENAME&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;           FILETYPE            = 'DAT'&lt;/P&gt;&lt;/LI&gt;&lt;UL&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;        MODE                = ' '&lt;/P&gt;&lt;/LI&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;        WK1_N_FORMAT        = ' '&lt;/P&gt;&lt;/LI&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;        WK1_N_SIZE          = ' '&lt;/P&gt;&lt;/LI&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;        WK1_T_FORMAT        = ' '&lt;/P&gt;&lt;/LI&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;        WK1_T_SIZE          = ' '&lt;/P&gt;&lt;/LI&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;        COL_SELECT          = ' '&lt;/P&gt;&lt;/LI&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;        COL_SELECTMASK      = ' '&lt;/P&gt;&lt;/LI&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;   importing&lt;/P&gt;&lt;/LI&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;        filelength          =&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      TABLES&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;           DATA_TAB            = INP_DATA&lt;/P&gt;&lt;/LI&gt;&lt;UL&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;        FIELDNAMES          =&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      EXCEPTIONS&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;           FILE_OPEN_ERROR     = 1&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;           FILE_WRITE_ERROR    = 2&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;           INVALID_FILESIZE    = 3&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;           INVALID_TABLE_WIDTH = 4&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;           INVALID_TYPE        = 5&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;           NO_BATCH            = 6&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;           UNKNOWN_ERROR       = 7&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;           OTHERS              = 8.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*END OF BLOCK COMMENT BY SRY28NOV05&lt;/P&gt;&lt;P&gt;*BEGIN OF BLOCK ADDED BY SRY28NOV05&lt;/P&gt;&lt;P&gt;  CALL FUNCTION 'GUI_DOWNLOAD'&lt;/P&gt;&lt;P&gt;    EXPORTING&lt;/P&gt;&lt;P&gt;      FILENAME                        = W_FILENAME&lt;/P&gt;&lt;P&gt;      FILETYPE                        = W_FTYP&lt;/P&gt;&lt;P&gt;    TABLES&lt;/P&gt;&lt;P&gt;      DATA_TAB                        = INP_DATA&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 NE 0.&lt;/P&gt;&lt;P&gt;     MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO&lt;/P&gt;&lt;P&gt;           WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*END OF BLOCK ADDED BY SRY28NOV05&lt;/P&gt;&lt;P&gt;ENDFORM.                               " 2100_WS_DOWNLOAD&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*eject&lt;/P&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      FORM 4000_PROGRESS_INDICATOR                                  *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      Write progress text to status bar                             *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; --&amp;gt;  TEXT   " Text passed as parameter                             *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;FORM 4000_PROGRESS_INDICATOR USING TEXT.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CALL FUNCTION 'SAPGUI_PROGRESS_INDICATOR'&lt;/P&gt;&lt;P&gt;       EXPORTING&lt;/P&gt;&lt;P&gt;            PERCENTAGE = 0&lt;/P&gt;&lt;P&gt;            TEXT       = TEXT&lt;/P&gt;&lt;P&gt;       EXCEPTIONS&lt;/P&gt;&lt;P&gt;            OTHERS     = 1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*eject.&lt;/P&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      FORM 9000_END_OF_JOB                                          *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      Close files on UNIX                                           *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;FORM 9000_END_OF_JOB.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CLOSE DATASET PARMS-DS_NAME.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.&lt;/P&gt;&lt;P&gt;FORM 1000_GET_SOURCE_DATA TABLES INP_DATA.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CALL FUNCTION 'Z_FILE_UPLOAD'&lt;/P&gt;&lt;P&gt;       EXPORTING&lt;/P&gt;&lt;P&gt;            UNIX                = PARMS-UNIX&lt;/P&gt;&lt;P&gt;            PC                  = PARMS-PC&lt;/P&gt;&lt;P&gt;            FILETYPE            = PARMS-DS_TYP&lt;/P&gt;&lt;P&gt;            FILENAME            = PARMS-PATH&lt;/P&gt;&lt;P&gt;            HDR_LINES           = PARMS-HDR_LINES&lt;/P&gt;&lt;P&gt;       TABLES&lt;/P&gt;&lt;P&gt;            DATA_TAB            = INP_DATA&lt;/P&gt;&lt;P&gt;       EXCEPTIONS&lt;/P&gt;&lt;P&gt;            CONVERSION_ERROR    = 1&lt;/P&gt;&lt;P&gt;            FILE_OPEN_ERROR     = 2&lt;/P&gt;&lt;P&gt;            FILE_READ_ERROR     = 3&lt;/P&gt;&lt;P&gt;            INVALID_TABLE_WIDTH = 4&lt;/P&gt;&lt;P&gt;            INVALID_TYPE        = 5&lt;/P&gt;&lt;P&gt;            NO_BATCH            = 6&lt;/P&gt;&lt;P&gt;            UNKNOWN_ERROR       = 7&lt;/P&gt;&lt;P&gt;            INVALID_SOURCE      = 8&lt;/P&gt;&lt;P&gt;            OTHERS              = 9.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*eject&lt;/P&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      FORM 2000_WRITE_OUTPUT                                        *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      Write record in standard SAP structure to UNIX file           *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; --&amp;gt;  I_STRUCT   " Name of record passed as parameter               *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;*FORM 2000_WRITE_OUTPUT USING I_STRUCT."SRY28NOV05&lt;/P&gt;&lt;P&gt;FORM 2000_WRITE_OUTPUT USING I_STRUCT TYPE ANY.      "SRY28NOV05&lt;/P&gt;&lt;P&gt;   TRANSFER I_STRUCT TO PARMS-DS_NAME.&lt;/P&gt;&lt;P&gt;  IF SY-SUBRC NE 0.&lt;/P&gt;&lt;P&gt;    MESSAGE E004 WITH PARMS-DS_NAME.&lt;/P&gt;&lt;P&gt;    MESSAGE A099.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*eject&lt;/P&gt;&lt;P&gt;*&amp;amp;----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  2100_WS_DOWNLOAD&lt;/P&gt;&lt;P&gt;*&amp;amp;----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      text                                                           *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; --&amp;gt;  p1        text&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; &amp;lt;--  p2        text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;FORM 2100_WS_DOWNLOAD TABLES INP_DATA.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Wed, 25 Jul 2007 05:41:32 GMT</pubDate>
    <dc:creator>Former Member</dc:creator>
    <dc:date>2007-07-25T05:41:32Z</dc:date>
    <item>
      <title>problem with direct input program while uploading data into database</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/problem-with-direct-input-program-while-uploading-data-into-database/m-p/2579051#M589621</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;TABLES:  BGR00,                        " Mappensatz&lt;/P&gt;&lt;P&gt;         BMM00,                        " MM01/MM02  BTCI-Kopfdaten&lt;/P&gt;&lt;P&gt;         BMMH1,                        " MM01/MM02 Hauptdaten&lt;/P&gt;&lt;P&gt;         BMMH2,                        " Länderdaten (Steuern)&lt;/P&gt;&lt;P&gt;         BMMH3,                        " Prognosewerte&lt;/P&gt;&lt;P&gt;         BMMH4,                        " Verbrauchswerte&lt;/P&gt;&lt;P&gt;         BMMH5,                        " Kurztexte&lt;/P&gt;&lt;P&gt;         BMMH6,                        " Mengeneinheiten&lt;/P&gt;&lt;P&gt;         BMMH7,                        " Langtexte&lt;/P&gt;&lt;P&gt;         BMMH8.                        " Referentielle EAN's&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;       Satztypen&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;DATA:    MAPPENSATZ  LIKE BMM00-STYPE VALUE '0',&lt;/P&gt;&lt;P&gt;         KOPFSATZ    LIKE BMM00-STYPE VALUE '1',&lt;/P&gt;&lt;P&gt;         HAUPTSATZ   LIKE BMM00-STYPE VALUE '2',&lt;/P&gt;&lt;P&gt;         KUN_SATZ    LIKE BMM00-STYPE VALUE 'Z',&lt;/P&gt;&lt;P&gt;         LANDSATZ    LIKE BMM00-STYPE VALUE '3',&lt;/P&gt;&lt;P&gt;         PROGSATZ    LIKE BMM00-STYPE VALUE '4',&lt;/P&gt;&lt;P&gt;         VERBSATZ    LIKE BMM00-STYPE VALUE '5',&lt;/P&gt;&lt;P&gt;         KTEXTSATZ   LIKE BMM00-STYPE VALUE '6',&lt;/P&gt;&lt;P&gt;         MESATZ      LIKE BMM00-STYPE VALUE '7',&lt;/P&gt;&lt;P&gt;         TEXTSATZ    LIKE BMM00-STYPE VALUE '8',&lt;/P&gt;&lt;P&gt;         EANSATZ     LIKE BMM00-STYPE VALUE '9'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*----&lt;/P&gt;&lt;P&gt;-&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; Common Data Bereich fuer die extern aufgerufenen Routinen&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;P&gt;-&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;       Initialstrukturen&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;DATA:  BEGIN OF COMMON PART RMMMBIMY.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA:    BEGIN OF I_BMM00.&lt;/P&gt;&lt;P&gt;           INCLUDE STRUCTURE BMM00.    " Kopfdaten&lt;/P&gt;&lt;P&gt;DATA:    END OF I_BMM00.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA:    BEGIN OF I_BMMH1.&lt;/P&gt;&lt;P&gt;           INCLUDE STRUCTURE BMMH1.    " Haupdaten&lt;/P&gt;&lt;P&gt;DATA:    END OF I_BMMH1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA:    BEGIN OF I_BMMH2.&lt;/P&gt;&lt;P&gt;           INCLUDE STRUCTURE BMMH2.    " Länderdaten&lt;/P&gt;&lt;P&gt;DATA:    END OF I_BMMH2.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA:    BEGIN OF I_BMMH3.&lt;/P&gt;&lt;P&gt;           INCLUDE STRUCTURE BMMH3.    " Prognosewerte&lt;/P&gt;&lt;P&gt;DATA:    END OF I_BMMH3.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA:    BEGIN OF I_BMMH4.&lt;/P&gt;&lt;P&gt;           INCLUDE STRUCTURE BMMH4.    " Verbrauchswerte&lt;/P&gt;&lt;P&gt;DATA:    END OF I_BMMH4.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA:    BEGIN OF I_BMMH5.&lt;/P&gt;&lt;P&gt;           INCLUDE STRUCTURE BMMH5.    " Kurztexte&lt;/P&gt;&lt;P&gt;DATA:    END OF I_BMMH5.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA:    BEGIN OF I_BMMH6.&lt;/P&gt;&lt;P&gt;           INCLUDE STRUCTURE BMMH6.    " Mengeneinheiten&lt;/P&gt;&lt;P&gt;DATA:    END OF I_BMMH6.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA:    BEGIN OF I_BMMH7.&lt;/P&gt;&lt;P&gt;           INCLUDE STRUCTURE BMMH7.    " Textzeilen&lt;/P&gt;&lt;P&gt;DATA:    END OF I_BMMH7.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA:    BEGIN OF I_BMMH8.&lt;/P&gt;&lt;P&gt;           INCLUDE STRUCTURE BMMH8.    " Referentielle EAN's&lt;/P&gt;&lt;P&gt;DATA:    END OF I_BMMH8.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA:  END OF COMMON PART.&lt;/P&gt;&lt;P&gt;DATA: WA LIKE TEDATA-DATA.&lt;/P&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;       Einzelfelder&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA:    GROUP_COUNT(6) TYPE C,    " Anzahl Mappen&lt;/P&gt;&lt;P&gt;         TRANS_COUNT(6) TYPE C,    " alte Definition für rmmmbim0&lt;/P&gt;&lt;P&gt;         SATZ_COUNT  LIKE MUEB_REST-TRANC, " Trans.zähler neu&lt;/P&gt;&lt;P&gt;         H_IND_COUNT LIKE MUEB_REST-D_IND, " Index welches Feld zurücks.&lt;/P&gt;&lt;P&gt;         SATZ2_COUNT(6) TYPE C.    " Anz. Sätze je Trans. ohne Kopfsatz&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA:    XEOF(1)          TYPE C,  " X=End of File erreicht&lt;/P&gt;&lt;P&gt;         XHAUPTSATZ_EXIST TYPE C,  " X=Hauptsatz zum Kopf exi.&lt;/P&gt;&lt;P&gt;         NODATA(1)        TYPE C.  " kein BI für dieses Feld&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;mk/15.08.94:&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;DATA:    GROUP_OPEN(1)  TYPE C.             " X=Mappe schon geöffnet&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*eject&lt;/P&gt;&lt;P&gt;*----&lt;/P&gt;&lt;P&gt;-&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;       Konstanten&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;P&gt;-&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;DATA:    C_NODATA(1)    TYPE C VALUE '/'.   " Default für NODATA&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA:    MATNR_ERW     LIKE MARA-MATNR  VALUE '0                 '.&lt;/P&gt;&lt;P&gt;DATA:    MATNR_ERW_INT LIKE MARA-MATNR.  "internal sight of '0      '&lt;/P&gt;&lt;P&gt;DATA:    MATNR_LAST    LIKE MARA-MATNR.  "Material number&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;********************************************************************&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;mk/11.08.94 2.1H:&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; If this flag is initial, the database updates will be done directly&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; during background maintenance instead of using a separate update&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; task. (no usage of this flag in dialogue mode!)&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;********************************************************************&lt;/P&gt;&lt;P&gt; DATA: DBUPDATE_VB(1) VALUE ' '.       "note 306628&lt;/P&gt;&lt;P&gt; data: matsync type mat_sync. "wk/99a no update in dialog if called&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;***INCLUDE ZMUSD070.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;TABLES: MARA,                          "Material Master: General Data&lt;/P&gt;&lt;P&gt;        MARC,                          "Material Master: C Segment&lt;/P&gt;&lt;P&gt;        MARD,                          "Material Master: St Loc/Batch&lt;/P&gt;&lt;P&gt;        MBEW,                          "Material Valuation&lt;/P&gt;&lt;P&gt;        MVKE,                          "Material Master: Sales Data&lt;/P&gt;&lt;P&gt;        MLGN,                          "Material Data per Whse Number&lt;/P&gt;&lt;P&gt;        MLAN,                          "Tax Classification: Material&lt;/P&gt;&lt;P&gt;        T001W,                         "Plants/Branches&lt;/P&gt;&lt;P&gt;        TBICU.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA: BEGIN OF VALUTAB OCCURS 0.&lt;/P&gt;&lt;P&gt;        INCLUDE STRUCTURE RSPARAMS.&lt;/P&gt;&lt;P&gt;DATA: END OF VALUTAB.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA: BEGIN OF VARTECH.&lt;/P&gt;&lt;P&gt;        INCLUDE STRUCTURE VARID.&lt;/P&gt;&lt;P&gt;DATA: END OF VARTECH.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA: PARMS LIKE ZXXDCONV.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA: REC_COUNT      TYPE  I,&lt;/P&gt;&lt;P&gt;      REC_COUNT_BAD  TYPE  I,&lt;/P&gt;&lt;P&gt;      ZJOBID         LIKE  TBIZU-JOBID,&lt;/P&gt;&lt;P&gt;      ZJOBCOUNT      LIKE  TBIZU-JOBCOUNT,&lt;/P&gt;&lt;P&gt;      ZMATNR         LIKE  MARA-MATNR,&lt;/P&gt;&lt;P&gt;      ZTEXT(80)      TYPE  C.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CONSTANTS: LIT_ZERO(18)  TYPE  C            VALUE '000000000000000000',&lt;/P&gt;&lt;P&gt;           LIT_CHAR      TYPE  C            VALUE '_',&lt;/P&gt;&lt;P&gt;           LIT_CREATE    LIKE  BMM00-TCODE  VALUE 'MM01',&lt;/P&gt;&lt;P&gt;           LIT_CHANGE    LIKE  BMM00-TCODE  VALUE 'MM02',&lt;/P&gt;&lt;P&gt;           LIT_CHECK(1)  TYPE  C            VALUE 'X'.&lt;/P&gt;&lt;P&gt;DATA:  BEGIN OF INP_DATA OCCURS 0,&lt;/P&gt;&lt;P&gt;         MATNR(18)  TYPE C,            " Material code&lt;/P&gt;&lt;P&gt;         UMREN(6)   TYPE C,            " Denominator&lt;/P&gt;&lt;P&gt;         MEINH(3)   TYPE C,            " Alternate UOM&lt;/P&gt;&lt;P&gt;         UMREZ(6)   TYPE C,            " Numerator&lt;/P&gt;&lt;P&gt;       END OF INP_DATA.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*eject&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN BEGIN OF BLOCK INOUT WITH FRAME TITLE TEXT-001.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN BEGIN OF LINE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN COMMENT (13) TEXT-004.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;PARAMETERS:     P_PC        RADIOBUTTON GROUP SRC DEFAULT 'X'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN COMMENT (6) TEXT-005.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;PARAMETERS:     P_UNIX      RADIOBUTTON GROUP SRC.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN COMMENT (6) TEXT-006.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;PARAMETERS:     P_DS_TYP    LIKE     ZXXDCONV-DS_TYP&lt;/P&gt;&lt;P&gt;                               DEFAULT 'ASC'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN END OF LINE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*SELECT-OPTIONS: S_PATH      FOR      PARMS-PATH&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                              NO INTERVALS&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                              LOWER CASE.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;PARAMETERS:  P_PATH TYPE RLGRAP-FILENAME.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;PARAMETERS:     P_HDRLIN   LIKE     ZXXDCONV-HDR_LINES&lt;/P&gt;&lt;P&gt;                               DEFAULT 0,&lt;/P&gt;&lt;P&gt;                P_JOBNAM   LIKE     TBICU_S-JOBNAME&lt;/P&gt;&lt;P&gt;                               MEMORY ID BM1,&lt;/P&gt;&lt;P&gt;                P_DI_EXE    AS       CHECKBOX&lt;/P&gt;&lt;P&gt;                               DEFAULT  LIT_CHECK,&lt;/P&gt;&lt;P&gt;                P_MAPPE     LIKE     BGR00-GROUP&lt;/P&gt;&lt;P&gt;                               DEFAULT  'MRP_UOM_LOAD'&lt;/P&gt;&lt;P&gt;                               NO-DISPLAY.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN END OF BLOCK INOUT.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*eject&lt;/P&gt;&lt;P&gt;AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_PATH.&lt;/P&gt;&lt;P&gt;  CALL FUNCTION 'KD_GET_FILENAME_ON_F4'&lt;/P&gt;&lt;P&gt;       EXPORTING&lt;/P&gt;&lt;P&gt;            PROGRAM_NAME  = SYST-REPID&lt;/P&gt;&lt;P&gt;            DYNPRO_NUMBER = SYST-DYNNR&lt;/P&gt;&lt;P&gt;            FIELD_NAME    = 'P_PATH'&lt;/P&gt;&lt;P&gt;       CHANGING&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;           FILE_NAME     = S_PATH-LOW&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;            FILE_NAME     = P_PATH&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;AT SELECTION-SCREEN.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Set up parameter record&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  PARMS-UNIX      = P_UNIX.&lt;/P&gt;&lt;P&gt;  PARMS-PC        = P_PC.&lt;/P&gt;&lt;P&gt;  PARMS-DS_TYP    = P_DS_TYP.&lt;/P&gt;&lt;P&gt;  PARMS-JOBNAME   = P_JOBNAM.&lt;/P&gt;&lt;P&gt;  PARMS-MAPPE     = P_MAPPE.&lt;/P&gt;&lt;P&gt;  PARMS-HDR_LINES = P_HDRLIN.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*eject&lt;/P&gt;&lt;P&gt;************************************************************************&lt;/P&gt;&lt;UL&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;       Main Processing Routine                                       *&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                                                                     *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;************************************************************************&lt;/P&gt;&lt;P&gt;START-OF-SELECTION.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Initialization&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  PERFORM 0000_HOUSEKEEPING.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;UL&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;Initialize transaction data in I_BM00&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; PERFORM 0500_INIT_BMM00.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Process input files&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; SORT S_PATH BY SIGN OPTION LOW.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     MOVE S_PATH-LOW TO PARMS-PATH.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      MOVE P_PATH TO PARMS-PATH.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; LOOP AT S_PATH.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   AT NEW LOW.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      CLEAR   INP_DATA.&lt;/P&gt;&lt;P&gt;     REFRESH INP_DATA.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Read source data into internal table&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      PERFORM 1000_GET_SOURCE_DATA TABLES INP_DATA.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Processs each record in internal table&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      ZTEXT    = TEXT-007.&lt;/P&gt;&lt;P&gt;      ZTEXT+13 = PARMS-DS_NAME.&lt;/P&gt;&lt;P&gt;      PERFORM 4000_PROGRESS_INDICATOR USING ZTEXT.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;UL&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;Initialize transaction data in I_BM00&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;P&gt;  PERFORM 0500_INIT_BMM00.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      LOOP AT INP_DATA.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Reset tables for each record&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;        BMM00              = I_BMM00.&lt;/P&gt;&lt;P&gt;        BMMH1              = I_BMMH1.&lt;/P&gt;&lt;P&gt;        BMMH6              = I_BMMH6.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Load structures with data&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;        MOVE-CORRESPONDING INP_DATA TO BMM00.&lt;/P&gt;&lt;P&gt;        PERFORM 2000_WRITE_OUTPUT USING BMM00.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        MOVE-CORRESPONDING INP_DATA TO BMMH1.&lt;/P&gt;&lt;P&gt;        PERFORM 2000_WRITE_OUTPUT USING BMMH1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        MOVE-CORRESPONDING INP_DATA TO BMMH6.&lt;/P&gt;&lt;P&gt;        PERFORM 2000_WRITE_OUTPUT USING BMMH6.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        REC_COUNT = REC_COUNT + 1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      ENDLOOP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   ENDAT.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; ENDLOOP.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  IF  REC_COUNT GT 0&lt;/P&gt;&lt;P&gt;  AND P_DI_EXE  EQ LIT_CHECK.&lt;/P&gt;&lt;P&gt;    PERFORM 3000_START_DI_JOB.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt; WRITE: / TEXT-008,&lt;/P&gt;&lt;P&gt;           REC_COUNT.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  PERFORM 9000_END_OF_JOB.&lt;/P&gt;&lt;P&gt;*eject&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Include containing common routines used by direct input programs&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  INCLUDE ZMUSD071.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*eject&lt;/P&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      FORM 0500_INIT_BMM00                                          *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      Initialize I_BMM00 with transaction code and views selected   *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;FORM 0500_INIT_BMM00.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;***&lt;STRONG&gt;this changes done by samson&lt;/STRONG&gt;**&lt;/P&gt;&lt;P&gt;if not inp_data[] is initial.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;select single matnr from mara INTO ZMATNR where matnr = inp_data-matnr.&lt;/P&gt;&lt;P&gt;if sy-subrc = 0.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  I_BMM00-TCODE = LIT_CHANGE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Basic data&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  I_BMM00-XEIK1  = LIT_CHECK.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;else.&lt;/P&gt;&lt;P&gt;  I_BMM00-TCODE = LIT_CREATE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Basic data&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  I_BMM00-XEIK1 = LIT_CHECK.&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;endif.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;**&lt;STRONG&gt;this changes above done by samson&lt;/STRONG&gt;**&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;UL&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;Transaction code&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; I_BMM00-TCODE = LIT_CHANGE.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*&lt;/P&gt;&lt;UL&gt;&lt;UL&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;Basic data&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; I_BMM00-XEIK1  = LIT_CHECK.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.&lt;/P&gt;&lt;P&gt;INCLUDE ZMUSD069.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*eject&lt;/P&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      FORM 0000_HOUSEKEEPING                                        *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      Initialization routines                                       *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM 0000_HOUSEKEEPING.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  PERFORM 0010_LDS_NAME.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  PERFORM 0020_DS_NAME.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  PERFORM 0030_OPEN_FILE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  PERFORM 0040_INIT_STRUCTS.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*eject&lt;/P&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      FORM 0010_LDS_NAME                                            *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      Obtain logical file name from DI job details                  *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;FORM 0010_LDS_NAME.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Check valid job name&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  SELECT SINGLE * FROM  TBICU&lt;/P&gt;&lt;P&gt;                  WHERE JOBNAME EQ PARMS-JOBNAME.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  IF SY-SUBRC EQ 0.&lt;/P&gt;&lt;P&gt;    CALL FUNCTION 'RS_VARIANT_VALUES_TECH_DATA'&lt;/P&gt;&lt;P&gt;         EXPORTING&lt;/P&gt;&lt;P&gt;              REPORT               = TBICU-REPNAME&lt;/P&gt;&lt;P&gt;              VARIANT              = TBICU-VARIANT&lt;/P&gt;&lt;P&gt;         IMPORTING&lt;/P&gt;&lt;P&gt;              TECHN_DATA           = VARTECH&lt;/P&gt;&lt;P&gt;         TABLES&lt;/P&gt;&lt;P&gt;              VARIANT_VALUES       = VALUTAB&lt;/P&gt;&lt;P&gt;         EXCEPTIONS&lt;/P&gt;&lt;P&gt;              VARIANT_NON_EXISTENT = 1&lt;/P&gt;&lt;P&gt;              VARIANT_OBSOLETE     = 2&lt;/P&gt;&lt;P&gt;              OTHERS               = 3.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    IF SY-SUBRC EQ 0.&lt;/P&gt;&lt;P&gt;      READ TABLE VALUTAB WITH KEY 'LDS_NAME'.&lt;/P&gt;&lt;P&gt;      MOVE VALUTAB-LOW TO PARMS-LDS_NAME.&lt;/P&gt;&lt;P&gt;    ELSE.&lt;/P&gt;&lt;P&gt;      MESSAGE I001 WITH PARMS-JOBNAME.&lt;/P&gt;&lt;P&gt;      MESSAGE A099.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;  ELSE.&lt;/P&gt;&lt;P&gt;    MESSAGE I000 WITH PARMS-JOBNAME.&lt;/P&gt;&lt;P&gt;    MESSAGE A099.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*eject&lt;/P&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      FORM 0040_INIT_STRUCTS                                        *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      Initialize structures for direct input records                *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;FORM 0040_INIT_STRUCTS.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Start of standard SAP initialization from example program RMMMBIME&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*------- Write session record -&lt;/P&gt;&lt;P&gt;-&lt;/P&gt;&lt;HR originaltext="---------------------------------------" /&gt;&lt;P&gt;  CLEAR BGR00.&lt;/P&gt;&lt;P&gt;  BGR00-STYPE  = MAPPENSATZ.&lt;/P&gt;&lt;P&gt;  BGR00-GROUP  = PARMS-MAPPE.&lt;/P&gt;&lt;P&gt;  BGR00-NODATA = C_NODATA.&lt;/P&gt;&lt;P&gt;  BGR00-MANDT  = SY-MANDT.&lt;/P&gt;&lt;P&gt;  BGR00-USNAM  = SY-UNAME.&lt;/P&gt;&lt;P&gt;  BGR00-START  = BGR00-NODATA.&lt;/P&gt;&lt;P&gt;  BGR00-XKEEP  = BGR00-NODATA.&lt;/P&gt;&lt;P&gt;  PERFORM 2000_WRITE_OUTPUT USING BGR00.&lt;/P&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;*----- Initialize structures -&lt;/P&gt;&lt;P&gt;-&lt;/P&gt;&lt;HR originaltext="---------------------------------------" /&gt;&lt;P&gt;  NODATA = BGR00-NODATA.&lt;/P&gt;&lt;P&gt;  PERFORM INIT_STRUKTUREN_ERZEUGEN(RMMMBIMI) USING NODATA.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;End of standard SAP initialization from example program RMMMBIME&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*eject.&lt;/P&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      FORM 3000_START_DI_JOB                                        *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      Start direct input job                                        *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;FORM 3000_START_DI_JOB.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  ZTEXT = 'Starting '(021).&lt;/P&gt;&lt;P&gt;  ZTEXT+9 = TBICU-JOBNAME.&lt;/P&gt;&lt;P&gt;  PERFORM 4000_PROGRESS_INDICATOR USING ZTEXT.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CALL FUNCTION 'BI_START_JOB'&lt;/P&gt;&lt;P&gt;       EXPORTING&lt;/P&gt;&lt;P&gt;            JOBID                 = ' '&lt;/P&gt;&lt;P&gt;            JOBTEXT               = TBICU-JOBNAME&lt;/P&gt;&lt;P&gt;            REPNAME               = TBICU-REPNAME&lt;/P&gt;&lt;P&gt;            SERVER                = TBICU-EXECSERVER&lt;/P&gt;&lt;P&gt;            VARIANT               = TBICU-VARIANT&lt;/P&gt;&lt;P&gt;            NEW_JOB               = 'X'&lt;/P&gt;&lt;P&gt;            CONTINUE_JOB          = ' '&lt;/P&gt;&lt;P&gt;            START_IMMEDIATE       = 'X'&lt;/P&gt;&lt;P&gt;            DO_NOT_PRINT          = 'X'&lt;/P&gt;&lt;P&gt;            USERNAME              = SY-UNAME&lt;/P&gt;&lt;P&gt;       IMPORTING&lt;/P&gt;&lt;P&gt;            JOBID                 = ZJOBID&lt;/P&gt;&lt;P&gt;            JOBCOUNT              = ZJOBCOUNT&lt;/P&gt;&lt;P&gt;       EXCEPTIONS&lt;/P&gt;&lt;P&gt;            JOB_OPEN_FAILED       = 1&lt;/P&gt;&lt;P&gt;            JOB_CLOSE_FAILED      = 2&lt;/P&gt;&lt;P&gt;            JOB_SUBMIT_FAILED     = 3&lt;/P&gt;&lt;P&gt;            WRONG_PARAMETERS      = 4&lt;/P&gt;&lt;P&gt;            JOB_DOES_NOT_EXIST    = 5&lt;/P&gt;&lt;P&gt;            WRONG_STARTTIME_GIVEN = 6&lt;/P&gt;&lt;P&gt;            JOB_NOT_RELEASED      = 7&lt;/P&gt;&lt;P&gt;            WRONG_VARIANT         = 8&lt;/P&gt;&lt;P&gt;            NO_AUTHORITY          = 9&lt;/P&gt;&lt;P&gt;            DIALOG_CANCELLED      = 10&lt;/P&gt;&lt;P&gt;            JOB_ALREADY_EXISTS    = 11&lt;/P&gt;&lt;P&gt;            PERIODIC_NOT_ALLOWED  = 12&lt;/P&gt;&lt;P&gt;            ERROR_NUMBER_GET_NEXT = 13&lt;/P&gt;&lt;P&gt;            OTHERS                = 14.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  IF SY-SUBRC EQ 0.&lt;/P&gt;&lt;P&gt;    WRITE: / 'Direct input job'(022), TBICU-JOBNAME, 'started'.&lt;/P&gt;&lt;P&gt;  ELSE.&lt;/P&gt;&lt;P&gt;    WRITE: / 'Direct input failed with return code'(023), SY-SUBRC.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM 0020_DS_NAME.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CALL FUNCTION 'FILE_GET_NAME'&lt;/P&gt;&lt;P&gt;       EXPORTING&lt;/P&gt;&lt;P&gt;            CLIENT           = SY-MANDT&lt;/P&gt;&lt;P&gt;            LOGICAL_FILENAME = PARMS-LDS_NAME&lt;/P&gt;&lt;P&gt;            OPERATING_SYSTEM = SY-OPSYS&lt;/P&gt;&lt;P&gt;       IMPORTING&lt;/P&gt;&lt;P&gt;            FILE_NAME        = PARMS-DS_NAME&lt;/P&gt;&lt;P&gt;       EXCEPTIONS&lt;/P&gt;&lt;P&gt;            FILE_NOT_FOUND   = 1&lt;/P&gt;&lt;P&gt;            OTHERS           = 2.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  IF SY-SUBRC NE 0.&lt;/P&gt;&lt;P&gt;    MESSAGE E002 WITH PARMS-LDS_NAME.&lt;/P&gt;&lt;P&gt;    MESSAGE A099.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*eject&lt;/P&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      FORM 0030_OPEN_FILE                                           *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      Open physical file for output                                 *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;FORM 0030_OPEN_FILE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; OPEN DATASET PARMS-DS_NAME FOR OUTPUT IN TEXT MODE. "thg191105&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  OPEN DATASET PARMS-DS_NAME FOR OUTPUT IN TEXT MODE&lt;/P&gt;&lt;P&gt;                                 encoding default. "thg191105&lt;/P&gt;&lt;P&gt;  IF SY-SUBRC NE 0.&lt;/P&gt;&lt;P&gt;    MESSAGE E003 WITH PARMS-DS_NAME.&lt;/P&gt;&lt;P&gt;    MESSAGE A099.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*eject&lt;/P&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      FORM 1000_GET_SOURCE_DATA                                     *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      Read source data into internal table                          *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; --&amp;gt;  INP_DATA   " Name of internal table passed as parameter       *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;FORM 1000_GET_SOURCE_DATA TABLES INP_DATA.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CALL FUNCTION 'Z_FILE_UPLOAD'&lt;/P&gt;&lt;P&gt;       EXPORTING&lt;/P&gt;&lt;P&gt;            UNIX                = PARMS-UNIX&lt;/P&gt;&lt;P&gt;            PC                  = PARMS-PC&lt;/P&gt;&lt;P&gt;            FILETYPE            = PARMS-DS_TYP&lt;/P&gt;&lt;P&gt;            FILENAME            = PARMS-PATH&lt;/P&gt;&lt;P&gt;            HDR_LINES           = PARMS-HDR_LINES&lt;/P&gt;&lt;P&gt;       TABLES&lt;/P&gt;&lt;P&gt;            DATA_TAB            = INP_DATA&lt;/P&gt;&lt;P&gt;       EXCEPTIONS&lt;/P&gt;&lt;P&gt;            CONVERSION_ERROR    = 1&lt;/P&gt;&lt;P&gt;            FILE_OPEN_ERROR     = 2&lt;/P&gt;&lt;P&gt;            FILE_READ_ERROR     = 3&lt;/P&gt;&lt;P&gt;            INVALID_TABLE_WIDTH = 4&lt;/P&gt;&lt;P&gt;            INVALID_TYPE        = 5&lt;/P&gt;&lt;P&gt;            NO_BATCH            = 6&lt;/P&gt;&lt;P&gt;            UNKNOWN_ERROR       = 7&lt;/P&gt;&lt;P&gt;            INVALID_SOURCE      = 8&lt;/P&gt;&lt;P&gt;            OTHERS              = 9.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*eject&lt;/P&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      FORM 2000_WRITE_OUTPUT                                        *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      Write record in standard SAP structure to UNIX file           *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; --&amp;gt;  I_STRUCT   " Name of record passed as parameter               *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;*FORM 2000_WRITE_OUTPUT USING I_STRUCT."SRY28NOV05&lt;/P&gt;&lt;P&gt;FORM 2000_WRITE_OUTPUT USING I_STRUCT TYPE ANY.      "SRY28NOV05&lt;/P&gt;&lt;P&gt;   TRANSFER I_STRUCT TO PARMS-DS_NAME.&lt;/P&gt;&lt;P&gt;  IF SY-SUBRC NE 0.&lt;/P&gt;&lt;P&gt;    MESSAGE E004 WITH PARMS-DS_NAME.&lt;/P&gt;&lt;P&gt;    MESSAGE A099.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*eject&lt;/P&gt;&lt;P&gt;*&amp;amp;----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  2100_WS_DOWNLOAD&lt;/P&gt;&lt;P&gt;*&amp;amp;----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      text                                                           *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; --&amp;gt;  p1        text&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; &amp;lt;--  p2        text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;FORM 2100_WS_DOWNLOAD TABLES INP_DATA.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; DATA: FILENAME LIKE RLGRAP-FILENAME.   "SRY28NOV05&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  DATA: W_FILENAME TYPE STRING.             "SRY28NOV05&lt;/P&gt;&lt;P&gt;  DATA: W_FTYP(10) TYPE C VALUE 'DAT'.      "SRY28NOV05&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; MOVE PARMS-DS_NAME TO FILENAME.       "SRY28NOV05&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  MOVE PARMS-DS_NAME TO W_FILENAME.      "SRY28NOV05&lt;/P&gt;&lt;P&gt;*BEGIN OF BLOCK COMMENT BY SRY28NOV05&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; CALL FUNCTION 'WS_DOWNLOAD'&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      EXPORTING&lt;/P&gt;&lt;/LI&gt;&lt;UL&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;        BIN_FILESIZE        = ' '&lt;/P&gt;&lt;/LI&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;        CODEPAGE            = ' '&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;           FILENAME            = FILENAME&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;           FILETYPE            = 'DAT'&lt;/P&gt;&lt;/LI&gt;&lt;UL&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;        MODE                = ' '&lt;/P&gt;&lt;/LI&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;        WK1_N_FORMAT        = ' '&lt;/P&gt;&lt;/LI&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;        WK1_N_SIZE          = ' '&lt;/P&gt;&lt;/LI&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;        WK1_T_FORMAT        = ' '&lt;/P&gt;&lt;/LI&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;        WK1_T_SIZE          = ' '&lt;/P&gt;&lt;/LI&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;        COL_SELECT          = ' '&lt;/P&gt;&lt;/LI&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;        COL_SELECTMASK      = ' '&lt;/P&gt;&lt;/LI&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;   importing&lt;/P&gt;&lt;/LI&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;        filelength          =&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      TABLES&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;           DATA_TAB            = INP_DATA&lt;/P&gt;&lt;/LI&gt;&lt;UL&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;        FIELDNAMES          =&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      EXCEPTIONS&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;           FILE_OPEN_ERROR     = 1&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;           FILE_WRITE_ERROR    = 2&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;           INVALID_FILESIZE    = 3&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;           INVALID_TABLE_WIDTH = 4&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;           INVALID_TYPE        = 5&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;           NO_BATCH            = 6&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;           UNKNOWN_ERROR       = 7&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;           OTHERS              = 8.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*END OF BLOCK COMMENT BY SRY28NOV05&lt;/P&gt;&lt;P&gt;*BEGIN OF BLOCK ADDED BY SRY28NOV05&lt;/P&gt;&lt;P&gt;  CALL FUNCTION 'GUI_DOWNLOAD'&lt;/P&gt;&lt;P&gt;    EXPORTING&lt;/P&gt;&lt;P&gt;      FILENAME                        = W_FILENAME&lt;/P&gt;&lt;P&gt;      FILETYPE                        = W_FTYP&lt;/P&gt;&lt;P&gt;    TABLES&lt;/P&gt;&lt;P&gt;      DATA_TAB                        = INP_DATA&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 NE 0.&lt;/P&gt;&lt;P&gt;     MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO&lt;/P&gt;&lt;P&gt;           WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*END OF BLOCK ADDED BY SRY28NOV05&lt;/P&gt;&lt;P&gt;ENDFORM.                               " 2100_WS_DOWNLOAD&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*eject&lt;/P&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      FORM 4000_PROGRESS_INDICATOR                                  *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      Write progress text to status bar                             *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; --&amp;gt;  TEXT   " Text passed as parameter                             *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;FORM 4000_PROGRESS_INDICATOR USING TEXT.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CALL FUNCTION 'SAPGUI_PROGRESS_INDICATOR'&lt;/P&gt;&lt;P&gt;       EXPORTING&lt;/P&gt;&lt;P&gt;            PERCENTAGE = 0&lt;/P&gt;&lt;P&gt;            TEXT       = TEXT&lt;/P&gt;&lt;P&gt;       EXCEPTIONS&lt;/P&gt;&lt;P&gt;            OTHERS     = 1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*eject.&lt;/P&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      FORM 9000_END_OF_JOB                                          *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      Close files on UNIX                                           *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;FORM 9000_END_OF_JOB.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CLOSE DATASET PARMS-DS_NAME.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.&lt;/P&gt;&lt;P&gt;FORM 1000_GET_SOURCE_DATA TABLES INP_DATA.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CALL FUNCTION 'Z_FILE_UPLOAD'&lt;/P&gt;&lt;P&gt;       EXPORTING&lt;/P&gt;&lt;P&gt;            UNIX                = PARMS-UNIX&lt;/P&gt;&lt;P&gt;            PC                  = PARMS-PC&lt;/P&gt;&lt;P&gt;            FILETYPE            = PARMS-DS_TYP&lt;/P&gt;&lt;P&gt;            FILENAME            = PARMS-PATH&lt;/P&gt;&lt;P&gt;            HDR_LINES           = PARMS-HDR_LINES&lt;/P&gt;&lt;P&gt;       TABLES&lt;/P&gt;&lt;P&gt;            DATA_TAB            = INP_DATA&lt;/P&gt;&lt;P&gt;       EXCEPTIONS&lt;/P&gt;&lt;P&gt;            CONVERSION_ERROR    = 1&lt;/P&gt;&lt;P&gt;            FILE_OPEN_ERROR     = 2&lt;/P&gt;&lt;P&gt;            FILE_READ_ERROR     = 3&lt;/P&gt;&lt;P&gt;            INVALID_TABLE_WIDTH = 4&lt;/P&gt;&lt;P&gt;            INVALID_TYPE        = 5&lt;/P&gt;&lt;P&gt;            NO_BATCH            = 6&lt;/P&gt;&lt;P&gt;            UNKNOWN_ERROR       = 7&lt;/P&gt;&lt;P&gt;            INVALID_SOURCE      = 8&lt;/P&gt;&lt;P&gt;            OTHERS              = 9.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*eject&lt;/P&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      FORM 2000_WRITE_OUTPUT                                        *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      Write record in standard SAP structure to UNIX file           *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; --&amp;gt;  I_STRUCT   " Name of record passed as parameter               *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;*FORM 2000_WRITE_OUTPUT USING I_STRUCT."SRY28NOV05&lt;/P&gt;&lt;P&gt;FORM 2000_WRITE_OUTPUT USING I_STRUCT TYPE ANY.      "SRY28NOV05&lt;/P&gt;&lt;P&gt;   TRANSFER I_STRUCT TO PARMS-DS_NAME.&lt;/P&gt;&lt;P&gt;  IF SY-SUBRC NE 0.&lt;/P&gt;&lt;P&gt;    MESSAGE E004 WITH PARMS-DS_NAME.&lt;/P&gt;&lt;P&gt;    MESSAGE A099.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*eject&lt;/P&gt;&lt;P&gt;*&amp;amp;----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  2100_WS_DOWNLOAD&lt;/P&gt;&lt;P&gt;*&amp;amp;----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      text                                                           *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; --&amp;gt;  p1        text&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; &amp;lt;--  p2        text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;FORM 2100_WS_DOWNLOAD TABLES INP_DATA.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 25 Jul 2007 05:41:32 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/problem-with-direct-input-program-while-uploading-data-into-database/m-p/2579051#M589621</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-07-25T05:41:32Z</dc:date>
    </item>
    <item>
      <title>Re: problem with direct input program while uploading data into database</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/problem-with-direct-input-program-while-uploading-data-into-database/m-p/2579052#M589622</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;It will be much more useful if you explain us your problem. Much better than just post thousand lines of code.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;My advice: explain your problem, and if you need to put some code to explain it better, use the "Code" button you will find near "Spell Check". If you are getting an error message, post it too, and put just the code related with that message/error.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Good luck,&lt;/P&gt;&lt;P&gt;V&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 25 Jul 2007 06:43:47 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/problem-with-direct-input-program-while-uploading-data-into-database/m-p/2579052#M589622</guid>
      <dc:creator>VXLozano</dc:creator>
      <dc:date>2007-07-25T06:43:47Z</dc:date>
    </item>
    <item>
      <title>Re: problem with direct input program while uploading data into database</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/problem-with-direct-input-program-while-uploading-data-into-database/m-p/2579053#M589623</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;Thnaks for your reply, This is my requirement.&lt;/P&gt;&lt;P&gt;Here my problem is i am trying to upload the data from flatfile which contain materil number, denominator, Actual UOM, Nominator field values.&lt;/P&gt;&lt;P&gt;Which is the data i need to upload into MM02 and MM01, if material number is new then it has to create the material, if material is already existing it has to update the UOM values.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;here i am getting data into my internal table INP_DATA, from that i am trying to upload the data to database by using job name MRP_MATERIAL_MASTER_DATA_UPLOAD with direct input program RMDATIND.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;when i execute my program i am getting success message all the records writtin from flatfile to application server. and job started message.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;then if i go into sm37 screen there i execute the job it is also giving active message. if i refresh it it is showing job completed message.&lt;/P&gt;&lt;P&gt;then i look at job log status. there i found that for existing material it is expecting material type, for new material it is giving some gravity error.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;So could u help me in this it will be gr8.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks &amp;amp; Regards,&lt;/P&gt;&lt;P&gt;RamNV&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 25 Jul 2007 08:02:34 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/problem-with-direct-input-program-while-uploading-data-into-database/m-p/2579053#M589623</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-07-25T08:02:34Z</dc:date>
    </item>
  </channel>
</rss>

