<?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 The input file format in Application Development and Automation Discussions</title>
    <link>https://community.sap.com/t5/application-development-and-automation-discussions/the-input-file-format/m-p/2426893#M542189</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Experts,&lt;/P&gt;&lt;P&gt;I have a tricky situation here. We have a program to load the master recipe(tcode C201) into SAP from a file. This was written long time back. Now I have to formulate the input file to make this program work. But honestly I am unable to do this. Can somebody please let me know what is the format of the input file.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I appreciate your help.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards.&lt;/P&gt;&lt;P&gt;SK&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Here's the program..............&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;REPORT zvtest1 MESSAGE-ID fb.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA: rec_type,                        "record type 0 = header,&lt;/P&gt;&lt;P&gt;                                                "                 1=material allocation&lt;/P&gt;&lt;P&gt;                                                "                 2 = operation detail&lt;/P&gt;&lt;P&gt;      sv_rec_type,&lt;/P&gt;&lt;P&gt;      fcode(4),&lt;/P&gt;&lt;P&gt;      first_time_in_op(1),&lt;/P&gt;&lt;P&gt;      op_line(2) TYPE n,&lt;/P&gt;&lt;P&gt;      scr_line(2) TYPE n,&lt;/P&gt;&lt;P&gt;      workspace(200).&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA: BEGIN OF hdr_rec,&lt;/P&gt;&lt;P&gt;      plnnr(8),                        "planner group&lt;/P&gt;&lt;P&gt;      profidnetz(7),                   "profile id&lt;/P&gt;&lt;P&gt;      werks(4),                        "Plant&lt;/P&gt;&lt;P&gt;      ktext(40),                       " recipe text&lt;/P&gt;&lt;P&gt;      verwe(3),                        " usage&lt;/P&gt;&lt;P&gt;      statu(3),                        " status&lt;/P&gt;&lt;P&gt;      losvn(13),                       " qty from&lt;/P&gt;&lt;P&gt;      losbs(13),                       " qty to&lt;/P&gt;&lt;P&gt;      plnme(3),                        " header uom&lt;/P&gt;&lt;P&gt;      END OF hdr_rec.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA: BEGIN OF oper_rec,&lt;/P&gt;&lt;P&gt;      vornr(4),                        " activity #&lt;/P&gt;&lt;P&gt;      phflg(1),                        "phase flag&lt;/P&gt;&lt;P&gt;      pvznr(4),                        " superior oper#&lt;/P&gt;&lt;P&gt;      phseq(2),                        " control recipe dest&lt;/P&gt;&lt;P&gt;      arbpl(8),                        " resource&lt;/P&gt;&lt;P&gt;      ltxa1(40),                       " oper short desc&lt;/P&gt;&lt;P&gt;      vgw01(11),                       "duration&lt;/P&gt;&lt;P&gt;      vge01(3),                        "duration units&lt;/P&gt;&lt;P&gt;      bmsch(13),                       "base&lt;/P&gt;&lt;P&gt;      steus(4),                        "control key&lt;/P&gt;&lt;P&gt;      END OF oper_rec.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA: BEGIN OF mtl_rec,&lt;/P&gt;&lt;P&gt;      plnal(2),                        " recipe #&lt;/P&gt;&lt;P&gt;      matnr(18),                       " bulk material&lt;/P&gt;&lt;P&gt;      werks(4),                        " Plant&lt;/P&gt;&lt;P&gt;      verid(4),                        "production verion#&lt;/P&gt;&lt;P&gt;      stlal(2),                        "Alt BOM&lt;/P&gt;&lt;P&gt;      stlan(1),                        "BOM usage&lt;/P&gt;&lt;P&gt;      END OF mtl_rec.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA: fld_vornr(15),&lt;/P&gt;&lt;P&gt;      fld_phflg(15),&lt;/P&gt;&lt;P&gt;      fld_pvznr(15),&lt;/P&gt;&lt;P&gt;      fld_phseq(15),&lt;/P&gt;&lt;P&gt;      fld_arbpl(15),&lt;/P&gt;&lt;P&gt;      fld_ltxa1(15),&lt;/P&gt;&lt;P&gt;      fld_flg_sel(17),&lt;/P&gt;&lt;P&gt;      fld_prev_flg(17),&lt;/P&gt;&lt;P&gt;      fld_steus(17).&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA: first-rec TYPE c VALUE 'Y',&lt;/P&gt;&lt;P&gt;      first-header TYPE c VALUE 'Y'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;PARAMETERS file(70) DEFAULT 'm:\sapc\spf3'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA: wa LIKE workspace OCCURS 0 WITH HEADER LINE,&lt;/P&gt;&lt;P&gt;      bdc_tab LIKE bdcdata OCCURS 0 WITH HEADER LINE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;AT SELECTION-SCREEN.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  OPEN DATASET file FOR INPUT IN TEXT MODE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  IF sy-subrc &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;P&gt;    MESSAGE e002(fb) WITH file.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   File &amp;amp; could not be opened&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;START-OF-SELECTION.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  DO.&lt;/P&gt;&lt;P&gt;    READ DATASET file INTO wa.&lt;/P&gt;&lt;P&gt;    IF sy-subrc &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;P&gt;      EXIT.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;    APPEND wa.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  ENDDO.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CALL FUNCTION 'BDC_OPEN_GROUP'&lt;/P&gt;&lt;P&gt;       EXPORTING&lt;/P&gt;&lt;P&gt;            client = sy-mandt&lt;/P&gt;&lt;P&gt;            group  = 'RECIPE'&lt;/P&gt;&lt;P&gt;            keep   = 'X'&lt;/P&gt;&lt;P&gt;            user   = sy-uname.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  LOOP AT wa.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    IF first-rec = 'N'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      CASE rec_type.&lt;/P&gt;&lt;P&gt;        WHEN '0'.&lt;/P&gt;&lt;P&gt;          op_line = 0.&lt;/P&gt;&lt;P&gt;          IF first-header = 'N'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;            CALL FUNCTION 'BDC_INSERT'&lt;/P&gt;&lt;P&gt;                 EXPORTING&lt;/P&gt;&lt;P&gt;                      tcode          = 'C201'&lt;/P&gt;&lt;P&gt;                 TABLES&lt;/P&gt;&lt;P&gt;                      dynprotab      = bdc_tab&lt;/P&gt;&lt;P&gt;                 EXCEPTIONS&lt;/P&gt;&lt;P&gt;                      internal_error = 1&lt;/P&gt;&lt;P&gt;                      not_open       = 2&lt;/P&gt;&lt;P&gt;                      queue_error    = 3&lt;/P&gt;&lt;P&gt;                      tcode_invalid  = 4&lt;/P&gt;&lt;P&gt;                      OTHERS         = 5.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;            REFRESH bdc_tab.&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;          first-header = 'N'.&lt;/P&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;          PERFORM generate_hdr_data.   " fill bdc_table&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        WHEN '1'.&lt;/P&gt;&lt;P&gt;          PERFORM generate_mtl_alloc_data.     " fill bdc_table&lt;/P&gt;&lt;P&gt;        WHEN '2'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;          op_line = op_line + 1.&lt;/P&gt;&lt;P&gt;          PERFORM generate_detail_data.&lt;/P&gt;&lt;P&gt;          IF oper_rec-phflg = 'X'.&lt;/P&gt;&lt;P&gt;            PERFORM generate_std_data.&lt;/P&gt;&lt;P&gt;          ENDIF.&lt;/P&gt;&lt;P&gt;      ENDCASE.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    first-rec = 'N'.&lt;/P&gt;&lt;P&gt;    sv_rec_type = rec_type.&lt;/P&gt;&lt;P&gt;    rec_type = wa(1).&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    CASE rec_type.&lt;/P&gt;&lt;P&gt;      WHEN '0'.&lt;/P&gt;&lt;P&gt;        IF first-header &amp;lt;&amp;gt; 'Y'.        "last record for group&lt;/P&gt;&lt;P&gt;          PERFORM save_recipe.&lt;/P&gt;&lt;P&gt;        ENDIF.&lt;/P&gt;&lt;P&gt;        MOVE wa+1 TO hdr_rec.&lt;/P&gt;&lt;P&gt;        first_time_in_op = 'Y'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      WHEN '1'.&lt;/P&gt;&lt;P&gt;        MOVE wa+1 TO mtl_rec.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      WHEN '2'.&lt;/P&gt;&lt;P&gt;        MOVE wa+1 TO oper_rec.&lt;/P&gt;&lt;P&gt;    ENDCASE.&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;save last record group&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  CASE rec_type.&lt;/P&gt;&lt;P&gt;    WHEN '0'.&lt;/P&gt;&lt;P&gt;      PERFORM generate_hdr_data.       " fill bdc_table&lt;/P&gt;&lt;P&gt;    WHEN '1'.&lt;/P&gt;&lt;P&gt;      PERFORM generate_mtl_alloc_data. " fill bdc_table&lt;/P&gt;&lt;P&gt;    WHEN '2'.&lt;/P&gt;&lt;P&gt;      op_line = op_line + 1.&lt;/P&gt;&lt;P&gt;      PERFORM generate_detail_data.&lt;/P&gt;&lt;P&gt;      IF oper_rec-phflg = 'X'.&lt;/P&gt;&lt;P&gt;        PERFORM generate_std_data.&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;P&gt;  ENDCASE.&lt;/P&gt;&lt;P&gt;  PERFORM save_recipe.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;submit the job to the system, it's completed.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  CALL FUNCTION 'BDC_INSERT'&lt;/P&gt;&lt;P&gt;       EXPORTING&lt;/P&gt;&lt;P&gt;            tcode          = 'C201'&lt;/P&gt;&lt;P&gt;       TABLES&lt;/P&gt;&lt;P&gt;            dynprotab      = bdc_tab&lt;/P&gt;&lt;P&gt;       EXCEPTIONS&lt;/P&gt;&lt;P&gt;            internal_error = 1&lt;/P&gt;&lt;P&gt;            not_open       = 2&lt;/P&gt;&lt;P&gt;            queue_error    = 3&lt;/P&gt;&lt;P&gt;            tcode_invalid  = 4&lt;/P&gt;&lt;P&gt;            OTHERS         = 5.&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;End the batch transaction...&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  CALL FUNCTION 'BDC_CLOSE_GROUP'.&lt;/P&gt;&lt;P&gt;  WRITE: /'Session created'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;END-OF-SELECTION.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  GENERATE_HDR_DATA&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      Input the header data into the appropriate screen fields.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM generate_hdr_data.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  PERFORM dynpro USING:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        'X' 'SAPLCPDI'         '4000', " Initial Screen&lt;/P&gt;&lt;P&gt;        ' ' 'RC271-PLNNR'      hdr_rec-plnnr,       " recipe group&lt;/P&gt;&lt;P&gt;        ' ' 'RC271-PROFIDNETZ' hdr_rec-profidnetz,  " Document type&lt;/P&gt;&lt;P&gt;        ' ' 'RC271-WERKS'      hdr_rec-werks,       " Plant&lt;/P&gt;&lt;P&gt;        ' ' 'RC271-STTAG'      '08111998',&lt;/P&gt;&lt;P&gt;        ' ' 'BDC_OKCODE'       '  ',   " set up recipe&lt;/P&gt;&lt;P&gt;        'X' 'SAPLCPDA'        '4210',  "Header general view&lt;/P&gt;&lt;P&gt;        ' ' 'PLKOD-KTEXT'     hdr_rec-ktext,       "recipe short desc&lt;/P&gt;&lt;P&gt;        ' ' 'PLKOD-VERWE'     hdr_rec-verwe,       "usage&lt;/P&gt;&lt;P&gt;        ' ' 'PLKOD-STATU'     hdr_rec-statu,       "recipe status&lt;/P&gt;&lt;P&gt;        ' ' 'PLKOD-LOSVN'     hdr_rec-losvn,       "charge from&lt;/P&gt;&lt;P&gt;        ' ' 'PLKOD-LOSBS'     hdr_rec-losbs,       "charge to&lt;/P&gt;&lt;P&gt;        ' ' 'PLKOD-PLNME'     hdr_rec-plnme.       "header UOM&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      ' ' 'BDC_OKCODE'      '/16 '.  "go to operations&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                               " GL_HDR_DATA&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  GENERATE_MTL_ALLOC&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      Input the material allocation.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM generate_mtl_alloc_data.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  PERFORM dynpro USING:&lt;/P&gt;&lt;P&gt;        ' ' 'BDC_OKCODE'    '/16',&lt;/P&gt;&lt;P&gt;        'X' 'SAPLCZDI'      '4230',    " Material alloc screen&lt;/P&gt;&lt;P&gt;        ' ' 'MAPL-PLNAL(1)'     mtl_rec-plnal,       " recipe #&lt;/P&gt;&lt;P&gt;        ' ' 'MAPL-MATNR(1)'     mtl_rec-matnr,       " Bulk material&lt;/P&gt;&lt;P&gt;        ' ' 'MAPL-WERKS(1)'     mtl_rec-werks,      " Plant&lt;/P&gt;&lt;P&gt;        ' ' 'BDC_OKCODE'     '/2 ',    " go to prod version&lt;/P&gt;&lt;P&gt;        'X' 'SAPLCMFV'        '0200',  "Prod version screen&lt;/P&gt;&lt;P&gt;        ' ' 'MKAL-VERID'     mtl_rec-verid,       "recipe short desc&lt;/P&gt;&lt;P&gt;        ' ' 'MKAL-STLAL'     mtl_rec-stlal,       "Alt BOM&lt;/P&gt;&lt;P&gt;        ' ' 'MKAL-STLAN'     mtl_rec-stlan,       "BOM usage&lt;/P&gt;&lt;P&gt;        ' ' 'BDC_OKCODE'     '   ',    "go back&lt;/P&gt;&lt;P&gt;        'X' 'SAPLCZDI'        '4230',  "back to alloc screen&lt;/P&gt;&lt;P&gt;        ' ' 'BDC_OKCODE'     '/8  ',   "go back to hdr&lt;/P&gt;&lt;P&gt;        'X' 'SAPLCPDA'       '4210'.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;       ' ' 'BDC_OKCODE'     '/8  '.   "go to oper screen&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;ENDFORM.                               " generate_mtl_alloc_data&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  generate_detail_data.&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      Input the detail data into the appropriate screen fields.     *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM generate_detail_data.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  IF op_line &amp;gt; 10.&lt;/P&gt;&lt;P&gt;    scr_line = ( op_line MOD 9 ).&lt;/P&gt;&lt;P&gt;    CASE scr_line.&lt;/P&gt;&lt;P&gt;      WHEN 0.&lt;/P&gt;&lt;P&gt;        scr_line = 9.&lt;/P&gt;&lt;P&gt;      WHEN 1.&lt;/P&gt;&lt;P&gt;        scr_line = 10.&lt;/P&gt;&lt;P&gt;      WHEN 2.&lt;/P&gt;&lt;P&gt;        PERFORM dynpro USING:&lt;/P&gt;&lt;P&gt;           ' ' 'BDC_OKCODE'   '/23 '.&lt;/P&gt;&lt;P&gt;    ENDCASE.&lt;/P&gt;&lt;P&gt;  ELSE.&lt;/P&gt;&lt;P&gt;    scr_line = op_line.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;  CONCATENATE 'PLPOD-VORNR(' scr_line  ')' INTO fld_vornr.&lt;/P&gt;&lt;P&gt;  CONCATENATE 'PLPOD-PHFLG(' scr_line  ')' INTO fld_phflg.&lt;/P&gt;&lt;P&gt;  CONCATENATE 'PLPOD-PVZNR(' scr_line  ')' INTO fld_pvznr.&lt;/P&gt;&lt;P&gt;  CONCATENATE 'PLPOD-PHSEQ(' scr_line  ')' INTO fld_phseq.&lt;/P&gt;&lt;P&gt;  CONCATENATE 'PLPOD-ARBPL(' scr_line  ')' INTO fld_arbpl.&lt;/P&gt;&lt;P&gt;  CONCATENATE 'PLPOD-LTXA1(' scr_line  ')' INTO fld_ltxa1.&lt;/P&gt;&lt;P&gt;  CONCATENATE 'PLPOD-STEUS(' scr_line  ')' INTO fld_steus.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;first time in this screen for a product, we have to set send a&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;function code to indicate which screen we want to go to.  We may&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;either be coming from the header screen or the material allocation&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;screen.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  IF first_time_in_op = 'Y'.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;if sv_rec_type = '0'.          " no material allocation record&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    fcode = '/8'.                " header was last screen&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  else.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    fcode = '/16'.               " material allocation was last screen&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  endif.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    PERFORM dynpro USING:&lt;/P&gt;&lt;P&gt;       ' ' 'BDC_OKCODE'  '/8'.&lt;/P&gt;&lt;P&gt;    first_time_in_op = 'N'.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  PERFORM dynpro USING:&lt;/P&gt;&lt;P&gt;          'X' 'SAPLCPDI'      '4400',  "Operations overview&lt;/P&gt;&lt;P&gt;          ' '  fld_vornr   oper_rec-vornr,    "activity&lt;/P&gt;&lt;P&gt;          ' ' fld_phflg    oper_rec-phflg,    "phase flag&lt;/P&gt;&lt;P&gt;          ' ' fld_pvznr    oper_rec-pvznr,   "superior op#&lt;/P&gt;&lt;P&gt;          ' ' fld_phseq    oper_rec-phseq,   "control recipe dest&lt;/P&gt;&lt;P&gt;          ' ' fld_arbpl    oper_rec-arbpl,   "resource&lt;/P&gt;&lt;P&gt;          ' ' fld_steus    oper_rec-steus,   "control key&lt;/P&gt;&lt;P&gt;          ' ' fld_ltxa1    oper_rec-ltxa1,   "operation description&lt;/P&gt;&lt;P&gt;          ' ' 'BDC_OKCODE'       '   '.&lt;/P&gt;&lt;P&gt;ENDFORM.                               " GL_G001_DATA&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  save_recipe.&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      Input the save command.     *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM save_recipe.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  PERFORM dynpro USING:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;          ' ' 'BDC_OKCODE'       '/11 '.&lt;/P&gt;&lt;P&gt;ENDFORM.                               " GL_G001_DATA&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  GENERATE_STD_DATA&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      Input the header data into the appropriate screen fields.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM generate_std_data.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CONCATENATE 'RC27X-FLG_SEL(' scr_line ')' INTO fld_flg_sel.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  PERFORM dynpro USING:&lt;/P&gt;&lt;P&gt;         ' '  fld_flg_sel       'X',   "mark selected activity&lt;/P&gt;&lt;P&gt;         ' ' 'BDC_OKCODE'       'ARBD'," go to std values screen&lt;/P&gt;&lt;P&gt;         'X' 'SAPLCPDO'       '4410',  "STD values screen&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;       ' ' 'bdc_okcode'      ' ',&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;         ' ' 'bdc_okcode'      '/00',&lt;/P&gt;&lt;P&gt;         'X' 'SAPLCPDO'        '4410',&lt;/P&gt;&lt;P&gt;         ' '  'PLPOD-VGW01'   oper_rec-vgw01,     "duration&lt;/P&gt;&lt;P&gt;         ' '  'PLPOD-VGE01'   oper_rec-vge01.     "duration units&lt;/P&gt;&lt;P&gt;  IF oper_rec-bmsch = '            /'.&lt;/P&gt;&lt;P&gt;    PERFORM dynpro USING:&lt;/P&gt;&lt;P&gt;        'X' 'SAPLCPDO'       '4410',&lt;/P&gt;&lt;P&gt;        ' '  'BDC_OKCODE'    '/3 '.&lt;/P&gt;&lt;P&gt;  ELSE.&lt;/P&gt;&lt;P&gt;    PERFORM dynpro USING:&lt;/P&gt;&lt;P&gt;          'X' 'SAPLCPDO'       '4410',&lt;/P&gt;&lt;P&gt;          ' '  'PLPOD-BMSCH'   oper_rec-bmsch,    "base&lt;/P&gt;&lt;P&gt;          ' '  'bdc_okcode'    '/3  '. "go back to select screen&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;  PERFORM dynpro USING:&lt;/P&gt;&lt;P&gt;        'X' 'SAPLCPDI'         '4400', "Operations screen&lt;/P&gt;&lt;P&gt;        ' '  fld_flg_sel       ' '.    "mark selected activity&lt;/P&gt;&lt;P&gt;ENDFORM.                               " generate_std_data&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  DYNPRO&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM dynpro USING dynbegin name value.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Clean bdc-tab for all processing...&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  CLEAR  bdc_tab.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  IF dynbegin =  'X'.                  " Initialize the first screen.&lt;/P&gt;&lt;P&gt;    MOVE: name  TO bdc_tab-program,&lt;/P&gt;&lt;P&gt;          value TO bdc_tab-dynpro ,&lt;/P&gt;&lt;P&gt;          'X'   TO bdc_tab-dynbegin.&lt;/P&gt;&lt;P&gt;  ELSE.                                " Perform input into the screen&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    MOVE: name TO bdc_tab-fnam,&lt;/P&gt;&lt;P&gt;          value TO bdc_tab-fval.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Append bdc_tab for all processing...&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  APPEND bdc_tab.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                               " DYNPRO&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Tue, 03 Jul 2007 19:23:03 GMT</pubDate>
    <dc:creator>Former Member</dc:creator>
    <dc:date>2007-07-03T19:23:03Z</dc:date>
    <item>
      <title>The input file format</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/the-input-file-format/m-p/2426893#M542189</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Experts,&lt;/P&gt;&lt;P&gt;I have a tricky situation here. We have a program to load the master recipe(tcode C201) into SAP from a file. This was written long time back. Now I have to formulate the input file to make this program work. But honestly I am unable to do this. Can somebody please let me know what is the format of the input file.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I appreciate your help.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards.&lt;/P&gt;&lt;P&gt;SK&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Here's the program..............&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;REPORT zvtest1 MESSAGE-ID fb.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA: rec_type,                        "record type 0 = header,&lt;/P&gt;&lt;P&gt;                                                "                 1=material allocation&lt;/P&gt;&lt;P&gt;                                                "                 2 = operation detail&lt;/P&gt;&lt;P&gt;      sv_rec_type,&lt;/P&gt;&lt;P&gt;      fcode(4),&lt;/P&gt;&lt;P&gt;      first_time_in_op(1),&lt;/P&gt;&lt;P&gt;      op_line(2) TYPE n,&lt;/P&gt;&lt;P&gt;      scr_line(2) TYPE n,&lt;/P&gt;&lt;P&gt;      workspace(200).&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA: BEGIN OF hdr_rec,&lt;/P&gt;&lt;P&gt;      plnnr(8),                        "planner group&lt;/P&gt;&lt;P&gt;      profidnetz(7),                   "profile id&lt;/P&gt;&lt;P&gt;      werks(4),                        "Plant&lt;/P&gt;&lt;P&gt;      ktext(40),                       " recipe text&lt;/P&gt;&lt;P&gt;      verwe(3),                        " usage&lt;/P&gt;&lt;P&gt;      statu(3),                        " status&lt;/P&gt;&lt;P&gt;      losvn(13),                       " qty from&lt;/P&gt;&lt;P&gt;      losbs(13),                       " qty to&lt;/P&gt;&lt;P&gt;      plnme(3),                        " header uom&lt;/P&gt;&lt;P&gt;      END OF hdr_rec.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA: BEGIN OF oper_rec,&lt;/P&gt;&lt;P&gt;      vornr(4),                        " activity #&lt;/P&gt;&lt;P&gt;      phflg(1),                        "phase flag&lt;/P&gt;&lt;P&gt;      pvznr(4),                        " superior oper#&lt;/P&gt;&lt;P&gt;      phseq(2),                        " control recipe dest&lt;/P&gt;&lt;P&gt;      arbpl(8),                        " resource&lt;/P&gt;&lt;P&gt;      ltxa1(40),                       " oper short desc&lt;/P&gt;&lt;P&gt;      vgw01(11),                       "duration&lt;/P&gt;&lt;P&gt;      vge01(3),                        "duration units&lt;/P&gt;&lt;P&gt;      bmsch(13),                       "base&lt;/P&gt;&lt;P&gt;      steus(4),                        "control key&lt;/P&gt;&lt;P&gt;      END OF oper_rec.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA: BEGIN OF mtl_rec,&lt;/P&gt;&lt;P&gt;      plnal(2),                        " recipe #&lt;/P&gt;&lt;P&gt;      matnr(18),                       " bulk material&lt;/P&gt;&lt;P&gt;      werks(4),                        " Plant&lt;/P&gt;&lt;P&gt;      verid(4),                        "production verion#&lt;/P&gt;&lt;P&gt;      stlal(2),                        "Alt BOM&lt;/P&gt;&lt;P&gt;      stlan(1),                        "BOM usage&lt;/P&gt;&lt;P&gt;      END OF mtl_rec.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA: fld_vornr(15),&lt;/P&gt;&lt;P&gt;      fld_phflg(15),&lt;/P&gt;&lt;P&gt;      fld_pvznr(15),&lt;/P&gt;&lt;P&gt;      fld_phseq(15),&lt;/P&gt;&lt;P&gt;      fld_arbpl(15),&lt;/P&gt;&lt;P&gt;      fld_ltxa1(15),&lt;/P&gt;&lt;P&gt;      fld_flg_sel(17),&lt;/P&gt;&lt;P&gt;      fld_prev_flg(17),&lt;/P&gt;&lt;P&gt;      fld_steus(17).&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA: first-rec TYPE c VALUE 'Y',&lt;/P&gt;&lt;P&gt;      first-header TYPE c VALUE 'Y'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;PARAMETERS file(70) DEFAULT 'm:\sapc\spf3'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA: wa LIKE workspace OCCURS 0 WITH HEADER LINE,&lt;/P&gt;&lt;P&gt;      bdc_tab LIKE bdcdata OCCURS 0 WITH HEADER LINE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;AT SELECTION-SCREEN.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  OPEN DATASET file FOR INPUT IN TEXT MODE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  IF sy-subrc &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;P&gt;    MESSAGE e002(fb) WITH file.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   File &amp;amp; could not be opened&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;START-OF-SELECTION.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  DO.&lt;/P&gt;&lt;P&gt;    READ DATASET file INTO wa.&lt;/P&gt;&lt;P&gt;    IF sy-subrc &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;P&gt;      EXIT.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;    APPEND wa.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  ENDDO.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CALL FUNCTION 'BDC_OPEN_GROUP'&lt;/P&gt;&lt;P&gt;       EXPORTING&lt;/P&gt;&lt;P&gt;            client = sy-mandt&lt;/P&gt;&lt;P&gt;            group  = 'RECIPE'&lt;/P&gt;&lt;P&gt;            keep   = 'X'&lt;/P&gt;&lt;P&gt;            user   = sy-uname.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  LOOP AT wa.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    IF first-rec = 'N'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      CASE rec_type.&lt;/P&gt;&lt;P&gt;        WHEN '0'.&lt;/P&gt;&lt;P&gt;          op_line = 0.&lt;/P&gt;&lt;P&gt;          IF first-header = 'N'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;            CALL FUNCTION 'BDC_INSERT'&lt;/P&gt;&lt;P&gt;                 EXPORTING&lt;/P&gt;&lt;P&gt;                      tcode          = 'C201'&lt;/P&gt;&lt;P&gt;                 TABLES&lt;/P&gt;&lt;P&gt;                      dynprotab      = bdc_tab&lt;/P&gt;&lt;P&gt;                 EXCEPTIONS&lt;/P&gt;&lt;P&gt;                      internal_error = 1&lt;/P&gt;&lt;P&gt;                      not_open       = 2&lt;/P&gt;&lt;P&gt;                      queue_error    = 3&lt;/P&gt;&lt;P&gt;                      tcode_invalid  = 4&lt;/P&gt;&lt;P&gt;                      OTHERS         = 5.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;            REFRESH bdc_tab.&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;          first-header = 'N'.&lt;/P&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;          PERFORM generate_hdr_data.   " fill bdc_table&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        WHEN '1'.&lt;/P&gt;&lt;P&gt;          PERFORM generate_mtl_alloc_data.     " fill bdc_table&lt;/P&gt;&lt;P&gt;        WHEN '2'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;          op_line = op_line + 1.&lt;/P&gt;&lt;P&gt;          PERFORM generate_detail_data.&lt;/P&gt;&lt;P&gt;          IF oper_rec-phflg = 'X'.&lt;/P&gt;&lt;P&gt;            PERFORM generate_std_data.&lt;/P&gt;&lt;P&gt;          ENDIF.&lt;/P&gt;&lt;P&gt;      ENDCASE.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    first-rec = 'N'.&lt;/P&gt;&lt;P&gt;    sv_rec_type = rec_type.&lt;/P&gt;&lt;P&gt;    rec_type = wa(1).&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    CASE rec_type.&lt;/P&gt;&lt;P&gt;      WHEN '0'.&lt;/P&gt;&lt;P&gt;        IF first-header &amp;lt;&amp;gt; 'Y'.        "last record for group&lt;/P&gt;&lt;P&gt;          PERFORM save_recipe.&lt;/P&gt;&lt;P&gt;        ENDIF.&lt;/P&gt;&lt;P&gt;        MOVE wa+1 TO hdr_rec.&lt;/P&gt;&lt;P&gt;        first_time_in_op = 'Y'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      WHEN '1'.&lt;/P&gt;&lt;P&gt;        MOVE wa+1 TO mtl_rec.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      WHEN '2'.&lt;/P&gt;&lt;P&gt;        MOVE wa+1 TO oper_rec.&lt;/P&gt;&lt;P&gt;    ENDCASE.&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;save last record group&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  CASE rec_type.&lt;/P&gt;&lt;P&gt;    WHEN '0'.&lt;/P&gt;&lt;P&gt;      PERFORM generate_hdr_data.       " fill bdc_table&lt;/P&gt;&lt;P&gt;    WHEN '1'.&lt;/P&gt;&lt;P&gt;      PERFORM generate_mtl_alloc_data. " fill bdc_table&lt;/P&gt;&lt;P&gt;    WHEN '2'.&lt;/P&gt;&lt;P&gt;      op_line = op_line + 1.&lt;/P&gt;&lt;P&gt;      PERFORM generate_detail_data.&lt;/P&gt;&lt;P&gt;      IF oper_rec-phflg = 'X'.&lt;/P&gt;&lt;P&gt;        PERFORM generate_std_data.&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;P&gt;  ENDCASE.&lt;/P&gt;&lt;P&gt;  PERFORM save_recipe.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;submit the job to the system, it's completed.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  CALL FUNCTION 'BDC_INSERT'&lt;/P&gt;&lt;P&gt;       EXPORTING&lt;/P&gt;&lt;P&gt;            tcode          = 'C201'&lt;/P&gt;&lt;P&gt;       TABLES&lt;/P&gt;&lt;P&gt;            dynprotab      = bdc_tab&lt;/P&gt;&lt;P&gt;       EXCEPTIONS&lt;/P&gt;&lt;P&gt;            internal_error = 1&lt;/P&gt;&lt;P&gt;            not_open       = 2&lt;/P&gt;&lt;P&gt;            queue_error    = 3&lt;/P&gt;&lt;P&gt;            tcode_invalid  = 4&lt;/P&gt;&lt;P&gt;            OTHERS         = 5.&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;End the batch transaction...&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  CALL FUNCTION 'BDC_CLOSE_GROUP'.&lt;/P&gt;&lt;P&gt;  WRITE: /'Session created'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;END-OF-SELECTION.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  GENERATE_HDR_DATA&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      Input the header data into the appropriate screen fields.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM generate_hdr_data.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  PERFORM dynpro USING:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        'X' 'SAPLCPDI'         '4000', " Initial Screen&lt;/P&gt;&lt;P&gt;        ' ' 'RC271-PLNNR'      hdr_rec-plnnr,       " recipe group&lt;/P&gt;&lt;P&gt;        ' ' 'RC271-PROFIDNETZ' hdr_rec-profidnetz,  " Document type&lt;/P&gt;&lt;P&gt;        ' ' 'RC271-WERKS'      hdr_rec-werks,       " Plant&lt;/P&gt;&lt;P&gt;        ' ' 'RC271-STTAG'      '08111998',&lt;/P&gt;&lt;P&gt;        ' ' 'BDC_OKCODE'       '  ',   " set up recipe&lt;/P&gt;&lt;P&gt;        'X' 'SAPLCPDA'        '4210',  "Header general view&lt;/P&gt;&lt;P&gt;        ' ' 'PLKOD-KTEXT'     hdr_rec-ktext,       "recipe short desc&lt;/P&gt;&lt;P&gt;        ' ' 'PLKOD-VERWE'     hdr_rec-verwe,       "usage&lt;/P&gt;&lt;P&gt;        ' ' 'PLKOD-STATU'     hdr_rec-statu,       "recipe status&lt;/P&gt;&lt;P&gt;        ' ' 'PLKOD-LOSVN'     hdr_rec-losvn,       "charge from&lt;/P&gt;&lt;P&gt;        ' ' 'PLKOD-LOSBS'     hdr_rec-losbs,       "charge to&lt;/P&gt;&lt;P&gt;        ' ' 'PLKOD-PLNME'     hdr_rec-plnme.       "header UOM&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      ' ' 'BDC_OKCODE'      '/16 '.  "go to operations&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                               " GL_HDR_DATA&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  GENERATE_MTL_ALLOC&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      Input the material allocation.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM generate_mtl_alloc_data.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  PERFORM dynpro USING:&lt;/P&gt;&lt;P&gt;        ' ' 'BDC_OKCODE'    '/16',&lt;/P&gt;&lt;P&gt;        'X' 'SAPLCZDI'      '4230',    " Material alloc screen&lt;/P&gt;&lt;P&gt;        ' ' 'MAPL-PLNAL(1)'     mtl_rec-plnal,       " recipe #&lt;/P&gt;&lt;P&gt;        ' ' 'MAPL-MATNR(1)'     mtl_rec-matnr,       " Bulk material&lt;/P&gt;&lt;P&gt;        ' ' 'MAPL-WERKS(1)'     mtl_rec-werks,      " Plant&lt;/P&gt;&lt;P&gt;        ' ' 'BDC_OKCODE'     '/2 ',    " go to prod version&lt;/P&gt;&lt;P&gt;        'X' 'SAPLCMFV'        '0200',  "Prod version screen&lt;/P&gt;&lt;P&gt;        ' ' 'MKAL-VERID'     mtl_rec-verid,       "recipe short desc&lt;/P&gt;&lt;P&gt;        ' ' 'MKAL-STLAL'     mtl_rec-stlal,       "Alt BOM&lt;/P&gt;&lt;P&gt;        ' ' 'MKAL-STLAN'     mtl_rec-stlan,       "BOM usage&lt;/P&gt;&lt;P&gt;        ' ' 'BDC_OKCODE'     '   ',    "go back&lt;/P&gt;&lt;P&gt;        'X' 'SAPLCZDI'        '4230',  "back to alloc screen&lt;/P&gt;&lt;P&gt;        ' ' 'BDC_OKCODE'     '/8  ',   "go back to hdr&lt;/P&gt;&lt;P&gt;        'X' 'SAPLCPDA'       '4210'.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;       ' ' 'BDC_OKCODE'     '/8  '.   "go to oper screen&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;ENDFORM.                               " generate_mtl_alloc_data&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  generate_detail_data.&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      Input the detail data into the appropriate screen fields.     *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM generate_detail_data.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  IF op_line &amp;gt; 10.&lt;/P&gt;&lt;P&gt;    scr_line = ( op_line MOD 9 ).&lt;/P&gt;&lt;P&gt;    CASE scr_line.&lt;/P&gt;&lt;P&gt;      WHEN 0.&lt;/P&gt;&lt;P&gt;        scr_line = 9.&lt;/P&gt;&lt;P&gt;      WHEN 1.&lt;/P&gt;&lt;P&gt;        scr_line = 10.&lt;/P&gt;&lt;P&gt;      WHEN 2.&lt;/P&gt;&lt;P&gt;        PERFORM dynpro USING:&lt;/P&gt;&lt;P&gt;           ' ' 'BDC_OKCODE'   '/23 '.&lt;/P&gt;&lt;P&gt;    ENDCASE.&lt;/P&gt;&lt;P&gt;  ELSE.&lt;/P&gt;&lt;P&gt;    scr_line = op_line.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;  CONCATENATE 'PLPOD-VORNR(' scr_line  ')' INTO fld_vornr.&lt;/P&gt;&lt;P&gt;  CONCATENATE 'PLPOD-PHFLG(' scr_line  ')' INTO fld_phflg.&lt;/P&gt;&lt;P&gt;  CONCATENATE 'PLPOD-PVZNR(' scr_line  ')' INTO fld_pvznr.&lt;/P&gt;&lt;P&gt;  CONCATENATE 'PLPOD-PHSEQ(' scr_line  ')' INTO fld_phseq.&lt;/P&gt;&lt;P&gt;  CONCATENATE 'PLPOD-ARBPL(' scr_line  ')' INTO fld_arbpl.&lt;/P&gt;&lt;P&gt;  CONCATENATE 'PLPOD-LTXA1(' scr_line  ')' INTO fld_ltxa1.&lt;/P&gt;&lt;P&gt;  CONCATENATE 'PLPOD-STEUS(' scr_line  ')' INTO fld_steus.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;first time in this screen for a product, we have to set send a&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;function code to indicate which screen we want to go to.  We may&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;either be coming from the header screen or the material allocation&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;screen.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  IF first_time_in_op = 'Y'.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;if sv_rec_type = '0'.          " no material allocation record&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    fcode = '/8'.                " header was last screen&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  else.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    fcode = '/16'.               " material allocation was last screen&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  endif.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    PERFORM dynpro USING:&lt;/P&gt;&lt;P&gt;       ' ' 'BDC_OKCODE'  '/8'.&lt;/P&gt;&lt;P&gt;    first_time_in_op = 'N'.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  PERFORM dynpro USING:&lt;/P&gt;&lt;P&gt;          'X' 'SAPLCPDI'      '4400',  "Operations overview&lt;/P&gt;&lt;P&gt;          ' '  fld_vornr   oper_rec-vornr,    "activity&lt;/P&gt;&lt;P&gt;          ' ' fld_phflg    oper_rec-phflg,    "phase flag&lt;/P&gt;&lt;P&gt;          ' ' fld_pvznr    oper_rec-pvznr,   "superior op#&lt;/P&gt;&lt;P&gt;          ' ' fld_phseq    oper_rec-phseq,   "control recipe dest&lt;/P&gt;&lt;P&gt;          ' ' fld_arbpl    oper_rec-arbpl,   "resource&lt;/P&gt;&lt;P&gt;          ' ' fld_steus    oper_rec-steus,   "control key&lt;/P&gt;&lt;P&gt;          ' ' fld_ltxa1    oper_rec-ltxa1,   "operation description&lt;/P&gt;&lt;P&gt;          ' ' 'BDC_OKCODE'       '   '.&lt;/P&gt;&lt;P&gt;ENDFORM.                               " GL_G001_DATA&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  save_recipe.&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      Input the save command.     *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM save_recipe.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  PERFORM dynpro USING:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;          ' ' 'BDC_OKCODE'       '/11 '.&lt;/P&gt;&lt;P&gt;ENDFORM.                               " GL_G001_DATA&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  GENERATE_STD_DATA&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      Input the header data into the appropriate screen fields.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM generate_std_data.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CONCATENATE 'RC27X-FLG_SEL(' scr_line ')' INTO fld_flg_sel.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  PERFORM dynpro USING:&lt;/P&gt;&lt;P&gt;         ' '  fld_flg_sel       'X',   "mark selected activity&lt;/P&gt;&lt;P&gt;         ' ' 'BDC_OKCODE'       'ARBD'," go to std values screen&lt;/P&gt;&lt;P&gt;         'X' 'SAPLCPDO'       '4410',  "STD values screen&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;       ' ' 'bdc_okcode'      ' ',&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;         ' ' 'bdc_okcode'      '/00',&lt;/P&gt;&lt;P&gt;         'X' 'SAPLCPDO'        '4410',&lt;/P&gt;&lt;P&gt;         ' '  'PLPOD-VGW01'   oper_rec-vgw01,     "duration&lt;/P&gt;&lt;P&gt;         ' '  'PLPOD-VGE01'   oper_rec-vge01.     "duration units&lt;/P&gt;&lt;P&gt;  IF oper_rec-bmsch = '            /'.&lt;/P&gt;&lt;P&gt;    PERFORM dynpro USING:&lt;/P&gt;&lt;P&gt;        'X' 'SAPLCPDO'       '4410',&lt;/P&gt;&lt;P&gt;        ' '  'BDC_OKCODE'    '/3 '.&lt;/P&gt;&lt;P&gt;  ELSE.&lt;/P&gt;&lt;P&gt;    PERFORM dynpro USING:&lt;/P&gt;&lt;P&gt;          'X' 'SAPLCPDO'       '4410',&lt;/P&gt;&lt;P&gt;          ' '  'PLPOD-BMSCH'   oper_rec-bmsch,    "base&lt;/P&gt;&lt;P&gt;          ' '  'bdc_okcode'    '/3  '. "go back to select screen&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;  PERFORM dynpro USING:&lt;/P&gt;&lt;P&gt;        'X' 'SAPLCPDI'         '4400', "Operations screen&lt;/P&gt;&lt;P&gt;        ' '  fld_flg_sel       ' '.    "mark selected activity&lt;/P&gt;&lt;P&gt;ENDFORM.                               " generate_std_data&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  DYNPRO&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM dynpro USING dynbegin name value.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Clean bdc-tab for all processing...&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  CLEAR  bdc_tab.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  IF dynbegin =  'X'.                  " Initialize the first screen.&lt;/P&gt;&lt;P&gt;    MOVE: name  TO bdc_tab-program,&lt;/P&gt;&lt;P&gt;          value TO bdc_tab-dynpro ,&lt;/P&gt;&lt;P&gt;          'X'   TO bdc_tab-dynbegin.&lt;/P&gt;&lt;P&gt;  ELSE.                                " Perform input into the screen&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    MOVE: name TO bdc_tab-fnam,&lt;/P&gt;&lt;P&gt;          value TO bdc_tab-fval.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Append bdc_tab for all processing...&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  APPEND bdc_tab.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                               " DYNPRO&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 03 Jul 2007 19:23:03 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/the-input-file-format/m-p/2426893#M542189</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-07-03T19:23:03Z</dc:date>
    </item>
    <item>
      <title>Re: The input file format</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/the-input-file-format/m-p/2426894#M542190</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;in your program, the format of the input file is TEXT.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;analyse the below code, definetly you will find the solution.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE&gt;&lt;CODE&gt;DATA FNAME VALUE &amp;#145;myfile&amp;#146;.
DATA: TEXT1 VALUE &amp;#145;abcdefghijkl&amp;#146;,

TEXT2,
LENG TYPE I.
OPEN DATASET FNAME FOR OUTPUT IN BINARY MODE.
TRANSFER TEXT1 TO FNAME.
CLOSE DATASET FNAME.
OPEN DATASET FNAME FOR INPUT IN BINARY MODE.
DO.
READ DATASET FNAME INTO TEXT2 LENGTH LENG.
WRITE: / SY-SUBRC, TEXT2, LENG.
IF SY-SUBRC 0.
EXIT.
ENDIF.
ENDDO.
CLOSE DATASET FNAME.
The output is:
0 abcde 5
0 fghij 5
4 kl### 2&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;This example fills the file &amp;#147;myfile&amp;#148; with 12 bytes from the field TEXT1. It is then read into the field TEXT2 in 5-byte portions. Note here that the system fills up the last three bytes of TEXT2 with zeros after the end of the file has been reached. The number of bytes transferred is contained in the field LENG.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;If you are working in text mode, you can use the LENGTH addition to find out the length of the current line in the file. The system sets the value of the variable to the length of the line. The system calculates this by counting the number of bytes between the current position and the next end of line marker in the file.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE&gt;&lt;CODE&gt;DATA FNAME VALUE &amp;#145;myfile&amp;#146;.
DATA: TEXT1 VALUE &amp;#145;1234 &amp;#145;,

TEXT2 VALUE &amp;#145;12345678&amp;#146;,
TEXT3,
LENG TYPE I.
OPEN DATASET FNAME FOR OUTPUT IN TEXT MODE.
TRANSFER: TEXT1 TO FNAME,
TEXT2 TO FNAME.
CLOSE DATASET FNAME.
OPEN DATASET FNAME FOR INPUT IN TEXT MODE.
DO 2 TIMES.
READ DATASET FNAME INTO TEXT3 LENGTH LENG.
WRITE: / TEXT3, LENG.
ENDDO.
CLOSE DATASET FNAME.
The output appears as follows:
12 4
12 8&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;This example writes the strings TEXT1 and TEXT2 to the file &amp;#147;myfile&amp;#148; in text mode. They are then read into the string TEXT3 (length 2). The amount of memory occupied by the lines is read into the field LENG.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;regards,&lt;/P&gt;&lt;P&gt;Ashok Reddy&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 03 Jul 2007 19:50:31 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/the-input-file-format/m-p/2426894#M542190</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-07-03T19:50:31Z</dc:date>
    </item>
    <item>
      <title>Re: The input file format</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/the-input-file-format/m-p/2426895#M542191</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Depending on the first character of each record, the rest of the record is read into either structure hdr_rec, oper_rec or mtl_rec.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Rob&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 03 Jul 2007 20:07:04 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/the-input-file-format/m-p/2426895#M542191</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-07-03T20:07:04Z</dc:date>
    </item>
  </channel>
</rss>

