<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: About BDC programming in Application Development and Automation Discussions</title>
    <link>https://community.sap.com/t5/application-development-and-automation-discussions/about-bdc-programming/m-p/3612082#M870216</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;An example abap program of handling Table Control during bdc programming.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;REPORT zmm_bdcp_purchaseorderkb02&lt;/P&gt;&lt;P&gt;       NO STANDARD PAGE HEADING LINE-SIZE 255.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                Declaring internal tables                            *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*-----Declaring line structure&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA : BEGIN OF it_dummy OCCURS 0,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;         dummy(255) TYPE c,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;       END OF it_dummy.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*-----Internal table for line items&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA :  BEGIN OF it_idata OCCURS 0,&lt;/P&gt;&lt;P&gt;          ematn(18),      "Material Number.&lt;/P&gt;&lt;P&gt;          menge(13),      "Qyantity.&lt;/P&gt;&lt;P&gt;          netpr(11),      "Net Price.&lt;/P&gt;&lt;P&gt;          werks(4),       "Plant.&lt;/P&gt;&lt;P&gt;          ebelp(5),       "Item Number.&lt;/P&gt;&lt;P&gt;        END OF it_idata.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*-----Deep structure for header data and line items&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA  :  BEGIN OF it_me21 OCCURS 0,&lt;/P&gt;&lt;P&gt;           lifnr(10),      "Vendor A/c No.&lt;/P&gt;&lt;P&gt;           bsart(4),       "A/c Type.&lt;/P&gt;&lt;P&gt;           bedat(8),       "Date of creation of PO.&lt;/P&gt;&lt;P&gt;           ekorg(4),       "Purchasing Organisation.&lt;/P&gt;&lt;P&gt;           ekgrp(3),       "Purchasing Group.&lt;/P&gt;&lt;P&gt;           x_data LIKE TABLE OF it_idata,&lt;/P&gt;&lt;P&gt;         END OF it_me21.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA  :  x_idata LIKE LINE OF it_idata.&lt;/P&gt;&lt;P&gt;DATA  :  v_delimit VALUE ','.&lt;/P&gt;&lt;P&gt;DATA  :  v_indx(3) TYPE n.&lt;/P&gt;&lt;P&gt;DATA  :  v_fnam(30) TYPE c.&lt;/P&gt;&lt;P&gt;DATA  :  v_count TYPE n.&lt;/P&gt;&lt;P&gt;DATA  :  v_ne TYPE i.&lt;/P&gt;&lt;P&gt;DATA  :  v_ns TYPE i.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*include bdcrecx1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;INCLUDE zmm_incl_purchaseorderkb01.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                Search help for file                                 *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_file.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CALL FUNCTION 'F4_FILENAME'&lt;/P&gt;&lt;P&gt;    EXPORTING&lt;/P&gt;&lt;P&gt;      program_name  = syst-cprog&lt;/P&gt;&lt;P&gt;      dynpro_number = syst-dynnr&lt;/P&gt;&lt;P&gt;    IMPORTING&lt;/P&gt;&lt;P&gt;      file_name     = p_file.&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;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;       To upload the data into line structure                        *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CALL FUNCTION 'WS_UPLOAD'&lt;/P&gt;&lt;P&gt;    EXPORTING&lt;/P&gt;&lt;P&gt;      filename = p_file&lt;/P&gt;&lt;P&gt;      filetype = 'DAT'&lt;/P&gt;&lt;P&gt;    TABLES&lt;/P&gt;&lt;P&gt;      data_tab = it_dummy.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    Processing the data from line structure to internal tables       *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  REFRESH:it_me21.&lt;/P&gt;&lt;P&gt;  CLEAR  :it_me21.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  LOOP AT it_dummy.&lt;/P&gt;&lt;P&gt;    IF it_dummy-dummy+0(01) = 'H'.&lt;/P&gt;&lt;P&gt;      v_indx = v_indx + 1.&lt;/P&gt;&lt;P&gt;      CLEAR   it_idata.&lt;/P&gt;&lt;P&gt;      REFRESH it_idata.&lt;/P&gt;&lt;P&gt;      CLEAR   it_me21-x_data.&lt;/P&gt;&lt;P&gt;      REFRESH it_me21-x_data.&lt;/P&gt;&lt;P&gt;      SHIFT it_dummy.&lt;/P&gt;&lt;P&gt;      SPLIT it_dummy AT v_delimit INTO it_me21-lifnr&lt;/P&gt;&lt;P&gt;                                       it_me21-bsart&lt;/P&gt;&lt;P&gt;                                       it_me21-bedat&lt;/P&gt;&lt;P&gt;                                       it_me21-ekorg&lt;/P&gt;&lt;P&gt;                                       it_me21-ekgrp.&lt;/P&gt;&lt;P&gt;      APPEND it_me21.&lt;/P&gt;&lt;P&gt;    ELSEIF it_dummy-dummy+0(01) = 'L'.&lt;/P&gt;&lt;P&gt;      SHIFT it_dummy.&lt;/P&gt;&lt;P&gt;      SPLIT it_dummy AT v_delimit INTO it_idata-ematn&lt;/P&gt;&lt;P&gt;                                       it_idata-menge&lt;/P&gt;&lt;P&gt;                                       it_idata-netpr&lt;/P&gt;&lt;P&gt;                                       it_idata-werks&lt;/P&gt;&lt;P&gt;                                       it_idata-ebelp.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      APPEND it_idata TO it_me21-x_data.&lt;/P&gt;&lt;P&gt;      MODIFY it_me21 INDEX v_indx.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                To open the group                                    *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  PERFORM open_group.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;        To populate the bdcdata table for header data                *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  LOOP AT it_me21.&lt;/P&gt;&lt;P&gt;    v_count = v_count + 1.&lt;/P&gt;&lt;P&gt;    REFRESH it_bdcdata.&lt;/P&gt;&lt;P&gt;    PERFORM subr_bdc_table USING:   'X' 'SAPMM06E'    '0100',&lt;/P&gt;&lt;P&gt;                                    ' ' 'BDC_CURSOR'  'EKKO-LIFNR',&lt;/P&gt;&lt;P&gt;                                    ' ' 'BDC_OKCODE'  '/00',&lt;/P&gt;&lt;P&gt;                                    ' ' 'EKKO-LIFNR'  it_me21-lifnr,&lt;/P&gt;&lt;P&gt;                                    ' ' 'RM06E-BSART' it_me21-bsart,&lt;/P&gt;&lt;P&gt;                                    ' ' 'RM06E-BEDAT' it_me21-bedat,&lt;/P&gt;&lt;P&gt;                                    ' ' 'EKKO-EKORG'  it_me21-ekorg,&lt;/P&gt;&lt;P&gt;                                    ' ' 'EKKO-EKGRP'  it_me21-ekgrp,&lt;/P&gt;&lt;P&gt;                                    ' ' 'RM06E-LPEIN' 'T'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    PERFORM subr_bdc_table USING:   'X' 'SAPMM06E'    '0120',&lt;/P&gt;&lt;P&gt;                                    ' ' 'BDC_CURSOR'  'RM06E-EBELP',&lt;/P&gt;&lt;P&gt;                                    ' ' 'BDC_OKCODE'  '/00'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    MOVE 1 TO v_indx.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*-----To populate the bdcdata table for line item data&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    LOOP AT it_me21-x_data INTO x_idata.&lt;/P&gt;&lt;P&gt;      CONCATENATE 'EKPO-EMATN(' v_indx ')'  INTO v_fnam.&lt;/P&gt;&lt;P&gt;      PERFORM  subr_bdc_table USING ' ' v_fnam x_idata-ematn.&lt;/P&gt;&lt;P&gt;      CONCATENATE 'EKPO-MENGE(' v_indx ')'  INTO v_fnam.&lt;/P&gt;&lt;P&gt;      PERFORM  subr_bdc_table USING ' ' v_fnam x_idata-menge.&lt;/P&gt;&lt;P&gt;      CONCATENATE 'EKPO-NETPR(' v_indx ')'  INTO v_fnam.&lt;/P&gt;&lt;P&gt;      PERFORM  subr_bdc_table USING ' ' v_fnam x_idata-netpr.&lt;/P&gt;&lt;P&gt;      CONCATENATE 'EKPO-WERKS(' v_indx ')'  INTO v_fnam.&lt;/P&gt;&lt;P&gt;      PERFORM  subr_bdc_table USING ' ' v_fnam x_idata-werks.&lt;/P&gt;&lt;P&gt;      v_indx = v_indx + 1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      PERFORM subr_bdc_table USING:  'X' 'SAPMM06E'    '0120',&lt;/P&gt;&lt;P&gt;                                     ' ' 'BDC_CURSOR'  'RM06E-EBELP',&lt;/P&gt;&lt;P&gt;                                     ' ' 'BDC_OKCODE'  '/00'.&lt;/P&gt;&lt;P&gt;    ENDLOOP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    PERFORM subr_bdc_table USING:    'X' 'SAPMM06E'    '0120',&lt;/P&gt;&lt;P&gt;                                     ' ' 'BDC_CURSOR'  'RM06E-EBELP',&lt;/P&gt;&lt;P&gt;                                     ' ' 'BDC_OKCODE'  '=BU'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    PERFORM bdc_transaction USING 'ME21'.&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt;  PERFORM close_group.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                  End of selection event                             *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;END-OF-SELECTION.&lt;/P&gt;&lt;P&gt;  IF session NE 'X'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*-----To display the successful records&lt;/P&gt;&lt;P&gt;    WRITE :/10  text-001.          "Sucess records&lt;/P&gt;&lt;P&gt;    WRITE :/10  SY-ULINE(20).&lt;/P&gt;&lt;P&gt;    SKIP.&lt;/P&gt;&lt;P&gt;    IF it_sucess IS INITIAL.&lt;/P&gt;&lt;P&gt;      WRITE &lt;span class="lia-unicode-emoji" title=":confused_face:"&gt;😕&lt;/span&gt;  text-002.&lt;/P&gt;&lt;P&gt;    ELSE.&lt;/P&gt;&lt;P&gt;      WRITE &lt;span class="lia-unicode-emoji" title=":confused_face:"&gt;😕&lt;/span&gt;   text-008,          "Total number of Succesful records&lt;/P&gt;&lt;P&gt;              35 v_ns.&lt;/P&gt;&lt;P&gt;      SKIP.&lt;/P&gt;&lt;P&gt;      WRITE:/   text-003,          "Vendor Number&lt;/P&gt;&lt;P&gt;             17 text-004,          "Record number&lt;/P&gt;&lt;P&gt;             30 text-005.          "Message&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    LOOP AT it_sucess.&lt;/P&gt;&lt;P&gt;      WRITE:/4  it_sucess-lifnr,&lt;/P&gt;&lt;P&gt;             17 it_sucess-tabix CENTERED,&lt;/P&gt;&lt;P&gt;             30 it_sucess-sucess_rec.&lt;/P&gt;&lt;P&gt;    ENDLOOP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    SKIP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*-----To display the erroneous records&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    WRITE:/10   text-006.          "Error Records&lt;/P&gt;&lt;P&gt;    WRITE:/10   SY-ULINE(17).&lt;/P&gt;&lt;P&gt;    SKIP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    IF it_error IS INITIAL.&lt;/P&gt;&lt;P&gt;      WRITE:/   text-007.          "No error records&lt;/P&gt;&lt;P&gt;    ELSE.&lt;/P&gt;&lt;P&gt;      WRITE:/   text-009,          "Total number of erroneous records&lt;/P&gt;&lt;P&gt;             35 v_ne.&lt;/P&gt;&lt;P&gt;      SKIP.&lt;/P&gt;&lt;P&gt;      WRITE:/   text-003,          "Vendor Number&lt;/P&gt;&lt;P&gt;             17 text-004,          "Record number&lt;/P&gt;&lt;P&gt;             30 text-005.          "Message&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    LOOP AT it_error.&lt;/P&gt;&lt;P&gt;      WRITE:/4  it_error-lifnr,&lt;/P&gt;&lt;P&gt;             17 it_error-tabix CENTERED,&lt;/P&gt;&lt;P&gt;             30 it_error-error_rec.&lt;/P&gt;&lt;P&gt;    ENDLOOP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    REFRESH it_sucess.&lt;/P&gt;&lt;P&gt;    REFRESH it_error.&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;CODE IN INCLUDE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; Include           ZMM_INCL_PURCHASEORDERKB01&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA:   it_BDCDATA LIKE BDCDATA    OCCURS 0 WITH HEADER LINE.&lt;/P&gt;&lt;P&gt;DATA:   it_MESSTAB LIKE BDCMSGCOLL OCCURS 0 WITH HEADER LINE.&lt;/P&gt;&lt;P&gt;DATA:   E_GROUP_OPENED.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*-----Internal table to store sucess records&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA:BEGIN OF it_sucess OCCURS 0,&lt;/P&gt;&lt;P&gt;       msgtyp(1)   TYPE c,&lt;/P&gt;&lt;P&gt;       lifnr  LIKE  ekko-lifnr,&lt;/P&gt;&lt;P&gt;       tabix  LIKE  sy-tabix,&lt;/P&gt;&lt;P&gt;       sucess_rec(125),&lt;/P&gt;&lt;P&gt;     END OF it_sucess.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA: g_mess(125) type c.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*-----Internal table to store error records&lt;/P&gt;&lt;P&gt;DATA:BEGIN OF it_error OCCURS 0,&lt;/P&gt;&lt;P&gt;       msgtyp(1)   TYPE c,&lt;/P&gt;&lt;P&gt;       lifnr  LIKE  ekko-lifnr,&lt;/P&gt;&lt;P&gt;       tabix  LIKE  sy-tabix,&lt;/P&gt;&lt;P&gt;       error_rec(125),&lt;/P&gt;&lt;P&gt;     END OF it_error.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;       Selection screen&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN BEGIN OF LINE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;PARAMETERS session RADIOBUTTON GROUP ctu.  "create session&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN COMMENT 3(20) text-s07 FOR FIELD session.&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN POSITION 45.&lt;/P&gt;&lt;P&gt;PARAMETERS ctu RADIOBUTTON GROUP ctu.     "call transaction&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN COMMENT 48(20) text-s08 FOR FIELD ctu.&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN END OF LINE.&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN BEGIN OF LINE.&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN COMMENT 3(20) text-s01 FOR FIELD group.&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN POSITION 25.&lt;/P&gt;&lt;P&gt;PARAMETERS group(12).                      "group name of session&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN COMMENT 48(20) text-s05 FOR FIELD ctumode.&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN POSITION 70.&lt;/P&gt;&lt;P&gt;PARAMETERS ctumode LIKE ctu_params-dismode DEFAULT 'N'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;"A: show all dynpros&lt;/P&gt;&lt;P&gt;"E: show dynpro on error only&lt;/P&gt;&lt;P&gt;"N: do not display dynpro&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN END OF LINE.&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN BEGIN OF LINE.&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN COMMENT 48(20) text-s06 FOR FIELD cupdate.&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN POSITION 70.&lt;/P&gt;&lt;P&gt;PARAMETERS cupdate LIKE ctu_params-updmode DEFAULT 'L'.&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN END OF LINE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN BEGIN OF LINE.&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN COMMENT 3(20) text-s03 FOR FIELD keep.&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN POSITION 25.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;PARAMETERS: keep AS CHECKBOX.       "' ' = delete session if finished&lt;/P&gt;&lt;P&gt;"'X' = keep   session if finished&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN COMMENT 48(20) text-s09 FOR FIELD e_group.&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN POSITION 70.&lt;/P&gt;&lt;P&gt;PARAMETERS e_group(12).             "group name of error-session&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN END OF LINE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN BEGIN OF LINE.&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN COMMENT 51(17) text-s03 FOR FIELD e_keep.&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN POSITION 70.&lt;/P&gt;&lt;P&gt;PARAMETERS: e_keep AS CHECKBOX.     "' ' = delete session if finished&lt;/P&gt;&lt;P&gt;"'X' = keep   session if finished&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN END OF LINE.&lt;/P&gt;&lt;P&gt;PARAMETERS:p_file LIKE rlgrap-filename.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  at selection screen                                                *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&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;group and user must be filled for create session&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  IF SESSION = 'X' AND&lt;/P&gt;&lt;P&gt;     GROUP = SPACE. "OR USER = SPACE.&lt;/P&gt;&lt;P&gt;    MESSAGE E613(MS).&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  create batchinput session                                          *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM OPEN_GROUP.&lt;/P&gt;&lt;P&gt;  IF SESSION = 'X'.&lt;/P&gt;&lt;P&gt;    SKIP.&lt;/P&gt;&lt;P&gt;    WRITE: /(20) 'Create group'(I01), GROUP.&lt;/P&gt;&lt;P&gt;    SKIP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*----open batchinput group&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  = GROUP&lt;/P&gt;&lt;P&gt;        USER   = sy-uname.&lt;/P&gt;&lt;P&gt;    WRITE:/(30) 'BDC_OPEN_GROUP'(I02),&lt;/P&gt;&lt;P&gt;            (12) 'returncode:'(I05),&lt;/P&gt;&lt;P&gt;                 SY-SUBRC.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;ENDFORM.                    "OPEN_GROUP&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  end batchinput session                                             *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM CLOSE_GROUP.&lt;/P&gt;&lt;P&gt;  IF SESSION = 'X'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*------close batchinput group&lt;/P&gt;&lt;P&gt;    CALL FUNCTION 'BDC_CLOSE_GROUP'.&lt;/P&gt;&lt;P&gt;    WRITE: /(30) 'BDC_CLOSE_GROUP'(I04),&lt;/P&gt;&lt;P&gt;            (12) 'returncode:'(I05),&lt;/P&gt;&lt;P&gt;                 SY-SUBRC.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  ELSE.&lt;/P&gt;&lt;P&gt;    IF E_GROUP_OPENED = 'X'.&lt;/P&gt;&lt;P&gt;      CALL FUNCTION 'BDC_CLOSE_GROUP'.&lt;/P&gt;&lt;P&gt;      WRITE: /.&lt;/P&gt;&lt;P&gt;      WRITE: /(30) 'Fehlermappe wurde erzeugt'(I06).&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;ENDFORM.                    "CLOSE_GROUP&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;       Start new transaction according to parameters                 *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM BDC_TRANSACTION USING TCODE TYPE ANY.&lt;/P&gt;&lt;P&gt;  DATA: L_SUBRC LIKE SY-SUBRC.&lt;/P&gt;&lt;P&gt;*------batch input session&lt;/P&gt;&lt;P&gt;  IF SESSION = 'X'.&lt;/P&gt;&lt;P&gt;    CALL FUNCTION 'BDC_INSERT'&lt;/P&gt;&lt;P&gt;      EXPORTING&lt;/P&gt;&lt;P&gt;        TCODE     = TCODE&lt;/P&gt;&lt;P&gt;      TABLES&lt;/P&gt;&lt;P&gt;        DYNPROTAB = it_BDCDATA.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    WRITE: / 'BDC_INSERT'(I03),&lt;/P&gt;&lt;P&gt;             TCODE,&lt;/P&gt;&lt;P&gt;             'returncode:'(I05),&lt;/P&gt;&lt;P&gt;             SY-SUBRC,&lt;/P&gt;&lt;P&gt;             'RECORD:',&lt;/P&gt;&lt;P&gt;             SY-INDEX.&lt;/P&gt;&lt;P&gt;  ELSE.&lt;/P&gt;&lt;P&gt;    REFRESH it_MESSTAB.&lt;/P&gt;&lt;P&gt;    CALL TRANSACTION TCODE USING it_BDCDATA&lt;/P&gt;&lt;P&gt;                     MODE   CTUMODE&lt;/P&gt;&lt;P&gt;                     UPDATE CUPDATE&lt;/P&gt;&lt;P&gt;                     MESSAGES INTO it_MESSTAB.&lt;/P&gt;&lt;P&gt;    L_SUBRC = SY-SUBRC.&lt;/P&gt;&lt;P&gt;    WRITE: / 'CALL_TRANSACTION',&lt;/P&gt;&lt;P&gt;             TCODE,&lt;/P&gt;&lt;P&gt;             'returncode:'(I05),&lt;/P&gt;&lt;P&gt;             L_SUBRC,&lt;/P&gt;&lt;P&gt;             'RECORD:',&lt;/P&gt;&lt;P&gt;             SY-INDEX.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  Message handling for Call Transaction                              *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  perform subr_mess_hand using g_mess.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*-----Erzeugen fehlermappe&lt;/P&gt;&lt;P&gt;  IF L_SUBRC &amp;lt;&amp;gt; 0 AND E_GROUP &amp;lt;&amp;gt; SPACE.&lt;/P&gt;&lt;P&gt;    IF E_GROUP_OPENED = ' '.&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  = E_GROUP&lt;/P&gt;&lt;P&gt;          USER   = sy-uname&lt;/P&gt;&lt;P&gt;          KEEP   = E_KEEP.&lt;/P&gt;&lt;P&gt;      E_GROUP_OPENED = 'X'.&lt;/P&gt;&lt;P&gt;    ENDIF.&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     = TCODE&lt;/P&gt;&lt;P&gt;      TABLES&lt;/P&gt;&lt;P&gt;        DYNPROTAB = it_BDCDATA.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  REFRESH it_BDCDATA.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    "BDC_TRANSACTION&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     Form  subr_bdc_table                                            *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     --&amp;gt;P_0220   text                                                *&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     --&amp;gt;P_0221   text                                                *&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     --&amp;gt;P_0222   text                                                *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM subr_bdc_table  USING      VALUE(P_0220) TYPE ANY&lt;/P&gt;&lt;P&gt;                                VALUE(P_0221) TYPE ANY&lt;/P&gt;&lt;P&gt;                                VALUE(P_0222) TYPE ANY.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CLEAR it_bdcdata.&lt;/P&gt;&lt;P&gt;  IF P_0220 = ' '.&lt;/P&gt;&lt;P&gt;    CLEAR it_bdcdata.&lt;/P&gt;&lt;P&gt;    it_bdcdata-fnam     = P_0221.&lt;/P&gt;&lt;P&gt;    it_bdcdata-fval     = P_0222.&lt;/P&gt;&lt;P&gt;    APPEND it_bdcdata.&lt;/P&gt;&lt;P&gt;  ELSE.&lt;/P&gt;&lt;P&gt;    it_bdcdata-dynbegin = P_0220.&lt;/P&gt;&lt;P&gt;    it_bdcdata-program  = P_0221.&lt;/P&gt;&lt;P&gt;    it_bdcdata-dynpro   = P_0222.&lt;/P&gt;&lt;P&gt;    APPEND it_bdcdata.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " subr_bdc_table&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     Form  subr_mess_hand                                            *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      text                                                           *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     --&amp;gt;P_G_MESS  text                                               *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM subr_mess_hand USING  P_G_MESS TYPE ANY.&lt;/P&gt;&lt;P&gt;  LOOP AT IT_MESSTAB.&lt;/P&gt;&lt;P&gt;    CALL FUNCTION 'FORMAT_MESSAGE'&lt;/P&gt;&lt;P&gt;      EXPORTING&lt;/P&gt;&lt;P&gt;        ID     = it_messtab-msgid&lt;/P&gt;&lt;P&gt;        LANG   = it_messtab-msgspra&lt;/P&gt;&lt;P&gt;        NO     = it_messtab-msgnr&lt;/P&gt;&lt;P&gt;        v1     = it_messtab-msgv1&lt;/P&gt;&lt;P&gt;        v2     = it_messtab-msgv2&lt;/P&gt;&lt;P&gt;      IMPORTING&lt;/P&gt;&lt;P&gt;        MSG    = P_G_MESS&lt;/P&gt;&lt;P&gt;      EXCEPTIONS&lt;/P&gt;&lt;P&gt;        OTHERS = 0.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    CASE it_messtab-msgtyp.&lt;/P&gt;&lt;P&gt;      when 'E'.&lt;/P&gt;&lt;P&gt;        it_error-error_rec   =  P_G_MESS.&lt;/P&gt;&lt;P&gt;        it_error-lifnr       =  it_me21-lifnr.&lt;/P&gt;&lt;P&gt;        it_error-tabix       =  v_count.&lt;/P&gt;&lt;P&gt;        APPEND IT_ERROR.&lt;/P&gt;&lt;P&gt;      when 'S'.&lt;/P&gt;&lt;P&gt;        it_sucess-sucess_rec =  P_G_MESS.&lt;/P&gt;&lt;P&gt;        it_sucess-lifnr      =  it_me21-lifnr.&lt;/P&gt;&lt;P&gt;        it_sucess-tabix      =  v_count.&lt;/P&gt;&lt;P&gt;        APPEND IT_SUCESS.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    endcase.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt;  Describe table it_sucess lines v_ns.&lt;/P&gt;&lt;P&gt;  Describe table it_error  lines v_ne.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " subr_mess_hand&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks&amp;amp;Regards,&lt;/P&gt;&lt;P&gt;Phani,&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;lt;REMOVED BY MODERATOR&amp;gt;&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Edited by: Alvaro Tejada Galindo on Apr 2, 2008 1:52 PM&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Wed, 02 Apr 2008 17:06:17 GMT</pubDate>
    <dc:creator>Former Member</dc:creator>
    <dc:date>2008-04-02T17:06:17Z</dc:date>
    <item>
      <title>About BDC programming</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/about-bdc-programming/m-p/3612080#M870214</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;1 Can you explain table control in BDC as a theritical and program code?&lt;/P&gt;&lt;P&gt;2. In BDC open dataset file for output in text mode &lt;/P&gt;&lt;P&gt;encoding default. what is the use of encouding can u explain?&lt;/P&gt;&lt;P&gt;3how many types of secondary indexes?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;4. can u give the some sap-script programs?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Edited by: Alvaro Tejada Galindo on Apr 2, 2008 3:11 PM&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 02 Apr 2008 13:24:45 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/about-bdc-programming/m-p/3612080#M870214</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2008-04-02T13:24:45Z</dc:date>
    </item>
    <item>
      <title>Re: About BDC programming</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/about-bdc-programming/m-p/3612081#M870215</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;REPORT  zva01_bdc NO STANDARD PAGE HEADING.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                        TYPE DECLARATIONS                            *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;TYPES : BEGIN OF st_data,&lt;/P&gt;&lt;P&gt;       data(1500) TYPE c,&lt;/P&gt;&lt;P&gt;          END OF st_data.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*To store header field values for call transaction&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;TYPES : BEGIN OF st_header,&lt;/P&gt;&lt;P&gt;          ind1(1) TYPE c,            " Indicator&lt;/P&gt;&lt;P&gt;           hcount TYPE i,            " Counter to map Item Details&lt;/P&gt;&lt;P&gt;            auart TYPE vbak-auart,   " Order Type&lt;/P&gt;&lt;P&gt;            vkorg TYPE vbak-vkorg,   " Sales Organisation&lt;/P&gt;&lt;P&gt;           kunnr1 TYPE vbak-kunnr,   " Sold-to-Party&lt;/P&gt;&lt;P&gt;           kunnr2 TYPE vbak-kunnr,   " Ship-to-Party&lt;/P&gt;&lt;P&gt;            vtweg TYPE vbak-vtweg,   " Distribution Channel&lt;/P&gt;&lt;P&gt;            spart TYPE vbak-spart,   " Division&lt;/P&gt;&lt;P&gt;            bstnk TYPE vbak-bstnk,   " Customer purchase order number&lt;/P&gt;&lt;P&gt;          END OF st_header.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*To store item field values for call transaction&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;TYPES : BEGIN OF st_item,&lt;/P&gt;&lt;P&gt;        ind2(1) TYPE c,              " Indicator&lt;/P&gt;&lt;P&gt;         icount TYPE i,              " Counter to map Item Details&lt;/P&gt;&lt;P&gt;          posnr TYPE vbap-posnr,     " Item Number&lt;/P&gt;&lt;P&gt;          matnr TYPE vbap-matnr,     " Material Number&lt;/P&gt;&lt;P&gt;     kwmeng(17) TYPE c,              " Quantity&lt;/P&gt;&lt;P&gt;          pstyv TYPE vbap-pstyv,     " Item Category&lt;/P&gt;&lt;P&gt;          werks TYPE vbap-werks,     " Plant&lt;/P&gt;&lt;P&gt;          END OF st_item.&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;Types for Error Log File&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;TYPES : BEGIN OF st_errh,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;          ind1(1) TYPE c,            " Line Indicator&lt;/P&gt;&lt;P&gt;           hcount TYPE i,            " Counter to map Item Details&lt;/P&gt;&lt;P&gt;            auart TYPE vbak-auart,   " Order Type&lt;/P&gt;&lt;P&gt;            vkorg TYPE vbak-vkorg,   " Sales Organisation&lt;/P&gt;&lt;P&gt;           kunnr1 TYPE vbak-kunnr,   " Sold-to-Party&lt;/P&gt;&lt;P&gt;           kunnr2 TYPE vbak-kunnr,   " Ship-to-Party&lt;/P&gt;&lt;P&gt;            vtweg TYPE vbak-vtweg,   " Distribution Channel&lt;/P&gt;&lt;P&gt;            spart TYPE vbak-spart,   " Division&lt;/P&gt;&lt;P&gt;            bstnk TYPE vbak-bstnk,   " Customer purchase order number&lt;/P&gt;&lt;P&gt;            matnr TYPE vbap-matnr,   " Material Number&lt;/P&gt;&lt;P&gt;            field TYPE string,       " Field Name&lt;/P&gt;&lt;P&gt;            value TYPE string,       " Field Value&lt;/P&gt;&lt;P&gt;             desc TYPE string,       " Error Message&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;          END OF st_errh.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Structure for internal table to store Plants for validation&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;TYPES : BEGIN OF st_werks,&lt;/P&gt;&lt;P&gt;         werks TYPE vbap-werks,&lt;/P&gt;&lt;P&gt;          END OF st_werks.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*Structure for internal table to store Order Type for validation&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;TYPES : BEGIN OF st_auart,&lt;/P&gt;&lt;P&gt;         auart TYPE vbak-auart,&lt;/P&gt;&lt;P&gt;          END OF st_auart.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*Structure for internal table to store Sales Org for validation&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;TYPES : BEGIN OF st_vkorg,&lt;/P&gt;&lt;P&gt;         vkorg TYPE vbak-vkorg,&lt;/P&gt;&lt;P&gt;          END OF st_vkorg.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*Structure for internal table to store Distribution Channel for Validation&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;TYPES : BEGIN OF st_vtweg,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;         vkorg TYPE vbak-vkorg,&lt;/P&gt;&lt;P&gt;         vtweg TYPE vbak-vtweg,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;          END OF st_vtweg.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*Structure for internal table to store Distribution Channel for Validation&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;TYPES : BEGIN OF st_makt,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;         matnr TYPE makt-matnr,&lt;/P&gt;&lt;P&gt;         maktx TYPE makt-maktx,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;          END OF st_makt.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                         DATA DECLARATIONS&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA :   it_data TYPE STANDARD TABLE OF st_data,     " Flat Internal Table to Store the File&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;         wa_data TYPE st_data.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA : it_header TYPE STANDARD TABLE OF st_header,   " Internal Table to store Header Details&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;       wa_header TYPE st_header.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA :   it_item TYPE STANDARD TABLE OF st_item,     " Internal Table to store Item Details&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;         wa_item TYPE st_item.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA :  it_werks TYPE STANDARD TABLE OF st_werks,    " Internal Table to store Plant Values for Pre Validation&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        wa_werks TYPE st_werks.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA :  it_auart TYPE STANDARD TABLE OF st_auart,    " Internal Table to store OrderType for Pre Validation&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        wa_auart TYPE st_auart.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA :  it_vkorg TYPE STANDARD TABLE OF st_vkorg,    " Internal Table to store Sales Organisation for Pre Validation&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        wa_vkorg TYPE st_vkorg.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA :  it_vtweg TYPE STANDARD TABLE OF st_vtweg,    " Internal Table to store Distribution Channel for Pre Validation&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        wa_vtweg TYPE st_vtweg.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA :  it_makt TYPE STANDARD TABLE OF st_makt,    " Internal Table to store Material Description&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        wa_makt TYPE st_makt.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Internal Type the custom table for insertion into data base.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA :&lt;/P&gt;&lt;P&gt;     wa_cus_head TYPE z20t_head_sales,&lt;/P&gt;&lt;P&gt;     wa_cus_item TYPE z20t_item_sales.&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;Internal Table to hold the errors.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;DATA :&lt;/P&gt;&lt;P&gt;         wa_errh TYPE st_errh,&lt;/P&gt;&lt;P&gt;         it_errh TYPE STANDARD TABLE OF st_errh.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*To hold Split data and to check item or header details&lt;/P&gt;&lt;P&gt;DATA :&lt;/P&gt;&lt;P&gt;     l_check1(1) TYPE c,&lt;/P&gt;&lt;P&gt;        l_check2 TYPE string.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA:&lt;/P&gt;&lt;P&gt;      l_filename TYPE string.                        " To store File name&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA:&lt;/P&gt;&lt;P&gt;       l_counter TYPE n LENGTH 2,                   " To count line items&lt;/P&gt;&lt;P&gt;        l_hcount TYPE i,                            " Counter to identify item&lt;/P&gt;&lt;P&gt;           l_err TYPE i VALUE 0,                    " Error identificaton flag.&lt;/P&gt;&lt;P&gt;       l_errflag TYPE i VALUE 0.                    " Error identificaton flag.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    Variable storing the TAB&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA:        tab TYPE c VALUE cl_abap_char_utilities=&amp;gt;horizontal_tab. " To store TAB value.&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;   BDC Data Table declaration&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA :&lt;/P&gt;&lt;P&gt;      wa_bdcdata TYPE bdcdata,&lt;/P&gt;&lt;P&gt;      it_bdcdata TYPE STANDARD TABLE OF bdcdata.     " BDCDATA Internal Table&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;MSG collection table&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA : it_bdcmsg TYPE STANDARD TABLE OF bdcmsgcoll,  " Internal Table to store Messages&lt;/P&gt;&lt;P&gt;       wa_bdcmsg TYPE bdcmsgcoll.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA :   l_exist TYPE c,                             " To validate GUI File&lt;/P&gt;&lt;P&gt;        l_acheck TYPE c,                             " To Validate Application Server File&lt;/P&gt;&lt;P&gt;          l_flag TYPE i VALUE 0,&lt;/P&gt;&lt;P&gt;         l_postr TYPE string.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA:     l_file TYPE ibipparms-path.                " To store F4 return file name&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA :   l_mabnr TYPE string,                        " To concatenate the field name and store gor BDC&lt;/P&gt;&lt;P&gt;         l_pstyv TYPE string,&lt;/P&gt;&lt;P&gt;        l_kwmeng TYPE string,&lt;/P&gt;&lt;P&gt;         l_werks TYPE string,&lt;/P&gt;&lt;P&gt;         l_vbeln TYPE vbak-vbeln.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*Audit Report Counters&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA :   l_total TYPE i VALUE 0,                     " Total No. of Records&lt;/P&gt;&lt;P&gt;          l_succ TYPE i VALUE 0,                     " Total no. od successfull records&lt;/P&gt;&lt;P&gt;         l_error TYPE i VALUE 0,                     " No. Error Records&lt;/P&gt;&lt;P&gt;          l_tran TYPE i VALUE 0,                     " No. of succesfull Transactions&lt;/P&gt;&lt;P&gt;         l_trane TYPE i VALUE 0.                     " No. of error transactions&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA:    l_meins TYPE vbap-meins,                    " To insert into Custom Table&lt;/P&gt;&lt;P&gt;         l_netpr TYPE vbap-netpr,&lt;/P&gt;&lt;P&gt;         l_waerk TYPE vbap-waerk.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA:    l_trstr TYPE string,                        " To upload string to application server&lt;/P&gt;&lt;P&gt;          l_coun TYPE string,                        " To transfer counter to string&lt;/P&gt;&lt;P&gt;          l_quan TYPE string.                        " To validate for Quantity Field&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA:    l_date  TYPE c LENGTH 8.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA:&lt;/P&gt;&lt;P&gt;     l_str_vbeln TYPE string.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                       SELECTION SCREEN                              *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-001.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;PARAMETERS : rad1 RADIOBUTTON GROUP g1 DEFAULT 'X' USER-COMMAND usr .                    " Presentation Server&lt;/P&gt;&lt;P&gt;PARAMETERS : p_input(150) TYPE c MODIF ID pr,                           " Presentation File Name&lt;/P&gt;&lt;P&gt;            p_errpre(150) TYPE c MODIF ID pr.                           " Presentation Error Log fileName&lt;/P&gt;&lt;P&gt;PARAMETERS : rad2 RADIOBUTTON GROUP g1.                                 " Application Server&lt;/P&gt;&lt;P&gt;PARAMETERS :p_inputa(150) TYPE c MODIF ID ap,                           " Application Server Input File name&lt;/P&gt;&lt;P&gt;            p_errapl(150) TYPE c MODIF ID ap.                           " Application Server Log File&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN END OF BLOCK b1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN BEGIN OF BLOCK b3 WITH FRAME TITLE text-003.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;PARAMETERS : p_sess TYPE apqi-groupid.                       " Session Name&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN END OF BLOCK b3.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                    SELECTION-SCREEN OUTPUT                          *&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;AT SELECTION-SCREEN OUTPUT.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  PERFORM screen_output.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                         F4 Helps                                    *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_input.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CALL FUNCTION 'F4_FILENAME'&lt;/P&gt;&lt;P&gt;    EXPORTING&lt;/P&gt;&lt;P&gt;      program_name  = syst-cprog&lt;/P&gt;&lt;P&gt;      dynpro_number = syst-dynnr&lt;/P&gt;&lt;P&gt;    IMPORTING&lt;/P&gt;&lt;P&gt;      file_name     = l_file.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  p_input = l_file.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_inputa.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CALL FUNCTION '/SAPDMC/LSM_F4_SERVER_FILE'&lt;/P&gt;&lt;P&gt;     EXPORTING&lt;/P&gt;&lt;P&gt;       directory              = '.\'&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      FILEMASK               = ' '&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;     IMPORTING&lt;/P&gt;&lt;P&gt;       serverfile             = p_inputa&lt;/P&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;      canceled_by_user       = 1&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      OTHERS                 = 2&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;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                       SCREEN VALIDATION                             *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;AT SELECTION-SCREEN ON p_input.   " For Presentation File Path and Name&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  IF sy-ucomm NE 'USR'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    IF p_input IS NOT INITIAL.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      CALL FUNCTION 'TMP_GUI_GET_FILE_EXIST'&lt;/P&gt;&lt;P&gt;        EXPORTING&lt;/P&gt;&lt;P&gt;          fname          = p_input&lt;/P&gt;&lt;P&gt;        IMPORTING&lt;/P&gt;&lt;P&gt;          exist          = l_exist&lt;/P&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;       fileinfo_error = 1&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;       OTHERS         = 2&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;          .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      IF l_exist = ' '.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        MESSAGE i100(z20mes).&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;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;AT SELECTION-SCREEN ON p_inputa. " For applicatoin file name and path.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  IF sy-ucomm NE 'USR'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    IF p_inputa IS NOT INITIAL.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      CALL FUNCTION 'FILE_GET_NAME_USING_PATH'&lt;/P&gt;&lt;P&gt;        EXPORTING&lt;/P&gt;&lt;P&gt;          client                     = sy-mandt&lt;/P&gt;&lt;P&gt;          logical_path               = 'TMP'&lt;/P&gt;&lt;P&gt;          file_name                  = p_inputa&lt;/P&gt;&lt;P&gt;        IMPORTING&lt;/P&gt;&lt;P&gt;          file_name_with_path        = l_acheck&lt;/P&gt;&lt;P&gt;        EXCEPTIONS&lt;/P&gt;&lt;P&gt;          path_not_found             = 1&lt;/P&gt;&lt;P&gt;          missing_parameter          = 2&lt;/P&gt;&lt;P&gt;          operating_system_not_found = 3&lt;/P&gt;&lt;P&gt;          file_system_not_found      = 4&lt;/P&gt;&lt;P&gt;          OTHERS                     = 5.&lt;/P&gt;&lt;P&gt;      IF sy-subrc &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        MESSAGE e101(z20mes).&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;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;AT SELECTION-SCREEN ON p_sess.  " Session Name&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  IF sy-ucomm NE 'USR'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    IF p_inputa  IS NOT  INITIAL.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      IF p_sess IS INITIAL.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        MESSAGE e099(z20mes).&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;    ELSEIF p_input  IS NOT  INITIAL.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      IF p_sess IS INITIAL.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        MESSAGE e099(z20mes).&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;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                       START-OF-SELECTION                            *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&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;When the radio button two is selected that is file is downloaded from the application server&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  IF rad2 = 'X'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    PERFORM action_appl.&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;When the radio button 1 is selected the file is downloaded from the presentation layer&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  ELSEIF rad1 = 'X'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    PERFORM action_pre.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                         END-OF-SELECTION                            *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;END-OF-SELECTION.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; Validating the values&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  PERFORM pre_valid.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; Populating BDCDATA and calling Transaction&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  PERFORM call_transfer.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; Audit Report Creation&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  PERFORM audit_report.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  action_appl&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;      When data has to fetches from Apllication Server&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 action_appl.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  OPEN DATASET p_inputa FOR INPUT IN TEXT MODE ENCODING DEFAULT&lt;/P&gt;&lt;P&gt;                                    WITH SMART LINEFEED.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  IF sy-subrc NE 0.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    MESSAGE e101(z20mes).&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  ELSE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    DO.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      READ DATASET p_inputa INTO wa_data.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      IF sy-subrc EQ 0.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        APPEND wa_data TO it_data.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      ELSE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        EXIT.&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;    ENDDO.&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;  CLOSE DATASET p_inputa.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  LOOP AT it_data INTO wa_data.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    SPLIT wa_data-data AT tab INTO : l_check1 l_check2.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    IF l_check1 = 'H'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      SPLIT wa_data-data AT tab&lt;/P&gt;&lt;P&gt;        INTO:&lt;/P&gt;&lt;P&gt;               wa_header-ind1&lt;/P&gt;&lt;P&gt;               wa_header-auart&lt;/P&gt;&lt;P&gt;               wa_header-vkorg&lt;/P&gt;&lt;P&gt;               wa_header-kunnr1&lt;/P&gt;&lt;P&gt;               wa_header-kunnr2&lt;/P&gt;&lt;P&gt;               wa_header-vtweg&lt;/P&gt;&lt;P&gt;               wa_header-spart&lt;/P&gt;&lt;P&gt;               wa_header-bstnk.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      l_hcount = l_hcount + 1.&lt;/P&gt;&lt;P&gt;      wa_header-hcount = l_hcount.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      APPEND wa_header TO it_header.&lt;/P&gt;&lt;P&gt;      CLEAR wa_header.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    ELSEIF l_check1 = 'I'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      SPLIT wa_data-data AT tab&lt;/P&gt;&lt;P&gt;      INTO:&lt;/P&gt;&lt;P&gt;             wa_item-ind2&lt;/P&gt;&lt;P&gt;             wa_item-posnr&lt;/P&gt;&lt;P&gt;             wa_item-matnr&lt;/P&gt;&lt;P&gt;             wa_item-kwmeng&lt;/P&gt;&lt;P&gt;             wa_item-pstyv&lt;/P&gt;&lt;P&gt;             wa_item-werks.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      wa_item-icount = l_hcount.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      APPEND wa_item TO it_item.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      CLEAR wa_item.&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;  ENDLOOP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    "action_appl&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  action_pre&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;      When data has to be fetched from Presentation Server&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 action_pre.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  l_filename = p_input.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CALL FUNCTION 'GUI_UPLOAD'&lt;/P&gt;&lt;P&gt;    EXPORTING&lt;/P&gt;&lt;P&gt;      filename                      = l_filename&lt;/P&gt;&lt;P&gt;      filetype                      = 'ASC'&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      HAS_FIELD_SEPARATOR           = ' '&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      HEADER_LENGTH                 = 0&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      READ_BY_LINE                  = 'X'&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      DAT_MODE                      = ' '&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      CODEPAGE                      = ' '&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      IGNORE_CERR                   = ABAP_TRUE&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      REPLACEMENT                   = '#'&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      CHECK_BOM                     = ' '&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      VIRUS_SCAN_PROFILE            =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      NO_AUTH_CHECK                 = ' '&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    IMPORTING&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      FILELENGTH                    =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      HEADER                        =&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    TABLES&lt;/P&gt;&lt;P&gt;      data_tab                      = it_data&lt;/P&gt;&lt;P&gt;   EXCEPTIONS&lt;/P&gt;&lt;P&gt;     file_open_error               = 1&lt;/P&gt;&lt;P&gt;     file_read_error               = 2&lt;/P&gt;&lt;P&gt;     no_batch                      = 3&lt;/P&gt;&lt;P&gt;     gui_refuse_filetransfer       = 4&lt;/P&gt;&lt;P&gt;     invalid_type                  = 5&lt;/P&gt;&lt;P&gt;     no_authority                  = 6&lt;/P&gt;&lt;P&gt;     unknown_error                 = 7&lt;/P&gt;&lt;P&gt;     bad_data_format               = 8&lt;/P&gt;&lt;P&gt;     header_not_allowed            = 9&lt;/P&gt;&lt;P&gt;     separator_not_allowed         = 10&lt;/P&gt;&lt;P&gt;     header_too_long               = 11&lt;/P&gt;&lt;P&gt;     unknown_dp_error              = 12&lt;/P&gt;&lt;P&gt;     access_denied                 = 13&lt;/P&gt;&lt;P&gt;     dp_out_of_memory              = 14&lt;/P&gt;&lt;P&gt;     disk_full                     = 15&lt;/P&gt;&lt;P&gt;     dp_timeout                    = 16&lt;/P&gt;&lt;P&gt;     OTHERS                        = 17&lt;/P&gt;&lt;P&gt;            .&lt;/P&gt;&lt;P&gt;  IF sy-subrc &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;P&gt;    MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno&lt;/P&gt;&lt;P&gt;            WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.&lt;/P&gt;&lt;P&gt;&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;  LOOP AT it_data INTO wa_data.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    SPLIT wa_data-data AT tab INTO : l_check1 l_check2.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    IF l_check1 = 'H'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      SPLIT wa_data-data AT tab&lt;/P&gt;&lt;P&gt;        INTO:&lt;/P&gt;&lt;P&gt;               wa_header-ind1&lt;/P&gt;&lt;P&gt;               wa_header-auart&lt;/P&gt;&lt;P&gt;               wa_header-vkorg&lt;/P&gt;&lt;P&gt;               wa_header-kunnr1&lt;/P&gt;&lt;P&gt;               wa_header-kunnr2&lt;/P&gt;&lt;P&gt;               wa_header-vtweg&lt;/P&gt;&lt;P&gt;               wa_header-spart&lt;/P&gt;&lt;P&gt;               wa_header-bstnk.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      l_hcount = l_hcount + 1.&lt;/P&gt;&lt;P&gt;      wa_header-hcount = l_hcount.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      APPEND wa_header TO it_header.&lt;/P&gt;&lt;P&gt;      CLEAR wa_header.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      l_total = l_total + 1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    ELSEIF l_check1 = 'I'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      SPLIT wa_data-data AT tab&lt;/P&gt;&lt;P&gt;      INTO:&lt;/P&gt;&lt;P&gt;             wa_item-ind2&lt;/P&gt;&lt;P&gt;             wa_item-posnr&lt;/P&gt;&lt;P&gt;             wa_item-matnr&lt;/P&gt;&lt;P&gt;             wa_item-kwmeng&lt;/P&gt;&lt;P&gt;             wa_item-pstyv&lt;/P&gt;&lt;P&gt;             wa_item-werks.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      wa_item-icount = l_hcount.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      APPEND wa_item TO it_item.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      CLEAR wa_item.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      l_total = l_total + 1.&lt;/P&gt;&lt;P&gt;&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;  ENDLOOP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    "action_pre&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  call_transfer&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;      BDCDATA internal table insertion for call transactrion&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM call_transfer.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  LOOP AT it_header INTO wa_header.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    PERFORM bdc_dynpro      USING 'SAPMV45A' '0101'.&lt;/P&gt;&lt;P&gt;    PERFORM bdc_field       USING 'BDC_CURSOR'&lt;/P&gt;&lt;P&gt;                                  'VBAK-VKORG'.&lt;/P&gt;&lt;P&gt;    PERFORM bdc_field       USING 'BDC_OKCODE'&lt;/P&gt;&lt;P&gt;                                  '/00'.&lt;/P&gt;&lt;P&gt;    PERFORM bdc_field       USING 'VBAK-AUART'&lt;/P&gt;&lt;P&gt;                                  wa_header-auart.&lt;/P&gt;&lt;P&gt;    PERFORM bdc_field       USING 'VBAK-VKORG'&lt;/P&gt;&lt;P&gt;                                   wa_header-vkorg.&lt;/P&gt;&lt;P&gt;    PERFORM bdc_field       USING 'VBAK-VTWEG'&lt;/P&gt;&lt;P&gt;                                  wa_header-vtweg.&lt;/P&gt;&lt;P&gt;    PERFORM bdc_field       USING 'VBAK-SPART'&lt;/P&gt;&lt;P&gt;                                  wa_header-spart.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    PERFORM bdc_dynpro      USING 'SAPMV45A' '4001'.&lt;/P&gt;&lt;P&gt;    PERFORM bdc_field       USING 'BDC_OKCODE'&lt;/P&gt;&lt;P&gt;                                  '/00'.&lt;/P&gt;&lt;P&gt;    PERFORM bdc_field       USING 'BDC_CURSOR'&lt;/P&gt;&lt;P&gt;                                  'VBKD-BSTKD'.&lt;/P&gt;&lt;P&gt;    PERFORM bdc_field       USING 'VBKD-BSTKD'&lt;/P&gt;&lt;P&gt;                                  wa_header-bstnk.&lt;/P&gt;&lt;P&gt;    PERFORM bdc_field       USING 'KUAGV-KUNNR'&lt;/P&gt;&lt;P&gt;                                  wa_header-kunnr1.&lt;/P&gt;&lt;P&gt;    PERFORM bdc_field       USING 'KUWEV-KUNNR'&lt;/P&gt;&lt;P&gt;                                  wa_header-kunnr2.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   PERFORM bdc_field       USING 'RV45A-KETDAT'&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                                 '01.10.2007'.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   PERFORM bdc_field       USING 'RV45A-KPRGBZ'&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                                 'D'.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    WRITE  sy-datum TO l_date DD/MM/YY.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    PERFORM bdc_field       USING 'VBKD-PRSDT'&lt;/P&gt;&lt;P&gt;                                  l_date .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    LOOP AT it_item INTO wa_item WHERE icount = wa_header-hcount.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      l_counter = l_counter + 1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      IF l_counter GE 2.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        l_counter = 2.&lt;/P&gt;&lt;P&gt;&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;     PERFORM bdc_field       USING 'VBKD-BSTKD'&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                                    wa_header-bstnk.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     PERFORM bdc_field       USING 'KUAGV-KUNNR'&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                                   wa_header-kunnr1.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     PERFORM bdc_field       USING 'KUWEV-KUNNR'&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                                   wa_header-kunnr2.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     PERFORM bdc_field       USING 'RV45A-KETDAT'&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                                   '01.10.2007'.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     PERFORM bdc_field       USING 'RV45A-KPRGBZ'&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                                   'D'.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     PERFORM bdc_field       USING 'VBKD-PRSDT'&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                                   sy-datum.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     PERFORM bdc_field       USING 'VBKD-ZTERM'&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                                   'ZB01'.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     PERFORM bdc_field       USING 'VBKD-INCO1'&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                                   'CIF'.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     PERFORM bdc_field       USING 'VBKD-INCO2'&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                                   'Berlin'.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     PERFORM bdc_field       USING 'BDC_CURSOR'&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                                   'VBAP-WERKS(L_COUNTER)'.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      CONCATENATE 'RV45A-MABNR('  l_counter ')' INTO l_mabnr.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      PERFORM bdc_field       USING l_mabnr&lt;/P&gt;&lt;P&gt;                                    wa_item-matnr.&lt;/P&gt;&lt;P&gt;      CONCATENATE 'VBAP-PSTYV('  l_counter ')' INTO l_pstyv.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      PERFORM bdc_field       USING l_pstyv&lt;/P&gt;&lt;P&gt;                                    wa_item-pstyv.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     CONCATENATE 'VBAP-POSNR('  l_counter ')' INTO l_posnr.&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;     PERFORM bdc_field       USING l_posnr&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                                   wa_item-posnr.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      CONCATENATE 'RV45A-KWMENG('  l_counter ')' INTO l_kwmeng.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      PERFORM bdc_field       USING l_kwmeng&lt;/P&gt;&lt;P&gt;                                         wa_item-kwmeng.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      CONCATENATE 'VBAP-WERKS('  l_counter ')' INTO l_werks.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      PERFORM bdc_field       USING l_werks    wa_item-werks.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      l_succ = l_succ + 1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      PERFORM bdc_dynpro      USING 'SAPMV45A' '4001'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      PERFORM bdc_field       USING 'BDC_OKCODE'&lt;/P&gt;&lt;P&gt;                                    '=POAN'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    ENDLOOP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    PERFORM bdc_dynpro      USING 'SAPMV45A' '4001'.&lt;/P&gt;&lt;P&gt;    PERFORM bdc_field       USING 'BDC_OKCODE'&lt;/P&gt;&lt;P&gt;                                  '=SICH'.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   PERFORM bdc_field       USING 'VBKD-BSTKD'&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                                 'SRV-TestPO3-36'.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   PERFORM bdc_field       USING 'KUAGV-KUNNR'&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                                 '1000'.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   PERFORM bdc_field       USING 'KUWEV-KUNNR'&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                                 '1000'.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   PERFORM bdc_field       USING 'RV45A-KETDAT'&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                                 '01.10.2007'.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   PERFORM bdc_field       USING 'RV45A-KPRGBZ'&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                                 'D'.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   PERFORM bdc_field       USING 'VBKD-PRSDT'&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                                 '29.09.2007'.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   PERFORM bdc_field       USING 'VBKD-ZTERM'&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                                 'ZB01'.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   PERFORM bdc_field       USING 'VBKD-INCO1'&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                                 'CIF'.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   PERFORM bdc_field       USING 'VBKD-INCO2'&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                                 'Berlin'.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   PERFORM bdc_field       USING 'BDC_CURSOR'&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                                 l_mabnr.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    l_counter = 0.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    PERFORM bdc_transaction USING 'VA01'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    l_succ = l_succ + 1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    "call_transfer&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  bdc_dynpro&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     --&amp;gt;PROGRAM    text&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     --&amp;gt;DYNPRO     text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM bdc_dynpro  USING  program dynpro.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  wa_bdcdata-program  = program.&lt;/P&gt;&lt;P&gt;  wa_bdcdata-dynpro   = dynpro.&lt;/P&gt;&lt;P&gt;  wa_bdcdata-dynbegin = 'X'.&lt;/P&gt;&lt;P&gt;  APPEND wa_bdcdata TO it_bdcdata.&lt;/P&gt;&lt;P&gt;  CLEAR wa_bdcdata.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " bdc_dynpro&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  bdc_field&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     --&amp;gt;FNAM       text&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     --&amp;gt;FVAL       text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM bdc_field USING fnam fval.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  wa_bdcdata-fnam = fnam.&lt;/P&gt;&lt;P&gt;  wa_bdcdata-fval = fval.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  APPEND wa_bdcdata TO it_bdcdata.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CLEAR wa_bdcdata.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " bdc_field&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  bdc_transaction&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      CAll Transaction VA01&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     --&amp;gt;TCODE      text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM bdc_transaction USING tcode.&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;Call Transaction method of entry of data into the database table&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*passing tcode and the BDC table&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CALL TRANSACTION tcode USING it_bdcdata&lt;/P&gt;&lt;P&gt;                          MODE 'P'&lt;/P&gt;&lt;P&gt;                        UPDATE 'S'&lt;/P&gt;&lt;P&gt;                      MESSAGES INTO it_bdcmsg.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  l_tran = l_tran + 1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  WAIT UP TO 5 SECONDS.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  GET PARAMETER ID 'AUN' FIELD l_vbeln.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CONCATENATE l_vbeln l_str_vbeln INTO l_str_vbeln SEPARATED BY space.&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;LI level="1" type="ul"&gt;&lt;P&gt; Collecting error messages&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  LOOP AT it_bdcmsg INTO wa_bdcmsg WHERE msgtyp = 'E'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    CALL FUNCTION 'FORMAT_MESSAGE'&lt;/P&gt;&lt;P&gt;      EXPORTING&lt;/P&gt;&lt;P&gt;        id        = wa_bdcmsg-msgid&lt;/P&gt;&lt;P&gt;        lang      = sy-langu&lt;/P&gt;&lt;P&gt;        no        = wa_bdcmsg-msgnr&lt;/P&gt;&lt;P&gt;        v1        = wa_bdcmsg-msgv1&lt;/P&gt;&lt;P&gt;        v2        = wa_bdcmsg-msgv2&lt;/P&gt;&lt;P&gt;        v3        = wa_bdcmsg-msgv3&lt;/P&gt;&lt;P&gt;        v4        = wa_bdcmsg-msgv4&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     IMPORTING&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;       msg       = l_msger&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      EXCEPTIONS&lt;/P&gt;&lt;P&gt;        not_found = 1&lt;/P&gt;&lt;P&gt;        OTHERS    = 2.&lt;/P&gt;&lt;P&gt;    IF sy-subrc &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;P&gt;      MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno&lt;/P&gt;&lt;P&gt;      WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    l_flag = 1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*If Error Exist the BDC Session is open to maintain the error session&lt;/P&gt;&lt;P&gt;  IF l_flag = 1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    PERFORM bdc_open.&lt;/P&gt;&lt;P&gt;    PERFORM insert_bdc.&lt;/P&gt;&lt;P&gt;    PERFORM bdc_close.&lt;/P&gt;&lt;P&gt;    l_trane = l_trane + 1.&lt;/P&gt;&lt;P&gt;    CLEAR it_bdcdata.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  ELSE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; Populating the Custome Tables.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    PERFORM custom_header.  " Populating Custom Header table.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    PERFORM custom_item.    " Populating Custom Item Table&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    CLEAR it_bdcdata.&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;ENDFORM.                    "bdc_transaction&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  bdc_open&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;      BDC Session open with p_sess&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM bdc_open.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CALL FUNCTION 'BDC_OPEN_GROUP'&lt;/P&gt;&lt;P&gt;   EXPORTING&lt;/P&gt;&lt;P&gt;     client                    = sy-mandt&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  DEST                      = FILLER8&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;     group                     = p_sess&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  HOLDDATE                  = FILLER8&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  KEEP                      = FILLER1&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;     user                      = sy-uname&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  RECORD                    = FILLER1&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  PROG                      = SY-CPROG&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  DCPFM                     = '%'&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  DATFM                     = '%'&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;IMPORTING&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  QID                       =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;EXCEPTIONS&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  CLIENT_INVALID            = 1&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  DESTINATION_INVALID       = 2&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  GROUP_INVALID             = 3&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  GROUP_IS_LOCKED           = 4&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  HOLDDATE_INVALID          = 5&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  INTERNAL_ERROR            = 6&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  QUEUE_ERROR               = 7&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  RUNNING                   = 8&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  SYSTEM_LOCK_ERROR         = 9&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  USER_INVALID              = 10&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  OTHERS                    = 11&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    "bdc_open&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  insert_bdc&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM insert_bdc.&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     = 'VA01'&lt;/P&gt;&lt;P&gt;    TABLES&lt;/P&gt;&lt;P&gt;      dynprotab = it_bdcdata.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    "insert_bdc&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  bdc_close&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM bdc_close.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CALL FUNCTION 'BDC_CLOSE_GROUP'&lt;/P&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;  NOT_OPEN          = 1&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  QUEUE_ERROR       = 2&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  OTHERS            = 3&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt; .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    "bdc_close&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  Custom_header&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;       Populating Custom Header Table&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM custom_header.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  wa_cus_head-mandt = sy-mandt.&lt;/P&gt;&lt;P&gt;  wa_cus_head-vbeln = l_vbeln.&lt;/P&gt;&lt;P&gt;  wa_cus_head-vkorg = wa_header-vkorg.&lt;/P&gt;&lt;P&gt;  wa_cus_head-vtweg = wa_header-vtweg.&lt;/P&gt;&lt;P&gt;  wa_cus_head-spart = wa_header-spart.&lt;/P&gt;&lt;P&gt;  wa_cus_head-auart = wa_header-auart.&lt;/P&gt;&lt;P&gt;  wa_cus_head-kunnr1 = wa_header-kunnr1.&lt;/P&gt;&lt;P&gt;  wa_cus_head-kunnr2 = wa_header-kunnr2.&lt;/P&gt;&lt;P&gt;  wa_cus_head-bstnk = wa_header-bstnk.&lt;/P&gt;&lt;P&gt;  wa_cus_head-bstdk = sy-datum.&lt;/P&gt;&lt;P&gt;  wa_cus_head-ernam = sy-uname.&lt;/P&gt;&lt;P&gt;  wa_cus_head-erdat = sy-datum.&lt;/P&gt;&lt;P&gt;  wa_cus_head-erzet = sy-uzeit.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  INSERT into z20t_head_sales values wa_cus_head.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    "custom_header&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  custom_item&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      Populating Custom Item Table&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM custom_item.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  LOOP AT it_item INTO wa_item WHERE icount = wa_header-hcount.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'&lt;/P&gt;&lt;P&gt;      EXPORTING&lt;/P&gt;&lt;P&gt;        input  = wa_item-posnr&lt;/P&gt;&lt;P&gt;      IMPORTING&lt;/P&gt;&lt;P&gt;        output = wa_item-posnr.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    SELECT SINGLE&lt;/P&gt;&lt;P&gt;    meins netpr waerk&lt;/P&gt;&lt;P&gt;    FROM vbap&lt;/P&gt;&lt;P&gt;    INTO (l_meins,l_netpr,l_waerk)&lt;/P&gt;&lt;P&gt;    WHERE vbeln = l_vbeln AND posnr = wa_item-posnr.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    LOOP AT it_makt INTO wa_makt WHERE matnr = wa_item-matnr.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      wa_cus_item-mandt = sy-mandt.&lt;/P&gt;&lt;P&gt;      wa_cus_item-vbeln = l_vbeln.&lt;/P&gt;&lt;P&gt;      wa_cus_item-posnr = wa_item-posnr.&lt;/P&gt;&lt;P&gt;      wa_cus_item-matnr = wa_item-matnr.&lt;/P&gt;&lt;P&gt;      wa_cus_item-maktx = wa_makt-maktx.                " From MAKT&lt;/P&gt;&lt;P&gt;      wa_cus_item-pstyv = wa_item-pstyv.&lt;/P&gt;&lt;P&gt;      wa_cus_item-dzmeng = wa_item-kwmeng.&lt;/P&gt;&lt;P&gt;      wa_cus_item-meins = l_meins.&lt;/P&gt;&lt;P&gt;      wa_cus_item-werks = wa_item-werks.&lt;/P&gt;&lt;P&gt;      wa_cus_item-netpr = l_netpr.&lt;/P&gt;&lt;P&gt;      wa_cus_item-waerk = l_waerk.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      INSERT into z20t_item_sales values wa_cus_item.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    ENDLOOP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt;ENDFORM.                    "custom_item&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  pre_valid&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;      Pre Validation for the 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 pre_valid.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*Selecting Plant Values for validation.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  SELECT werks&lt;/P&gt;&lt;P&gt;  FROM t001w&lt;/P&gt;&lt;P&gt;  INTO TABLE it_werks&lt;/P&gt;&lt;P&gt;  FOR ALL ENTRIES IN it_item&lt;/P&gt;&lt;P&gt;  WHERE werks = it_item-werks.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*Selecting Order Type for validation.&lt;/P&gt;&lt;P&gt;  SELECT auart&lt;/P&gt;&lt;P&gt;  FROM tvak&lt;/P&gt;&lt;P&gt;  INTO TABLE it_auart&lt;/P&gt;&lt;P&gt;  FOR ALL ENTRIES IN it_header&lt;/P&gt;&lt;P&gt;  WHERE auart = it_header-auart.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*Selecting Organisation for validation.&lt;/P&gt;&lt;P&gt;  SELECT vkorg&lt;/P&gt;&lt;P&gt;  FROM tvko&lt;/P&gt;&lt;P&gt;  INTO TABLE it_vkorg&lt;/P&gt;&lt;P&gt;  FOR ALL ENTRIES IN it_header&lt;/P&gt;&lt;P&gt;  WHERE vkorg = it_header-vkorg.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*Selecting Distribution Channel for validation.&lt;/P&gt;&lt;P&gt;  SELECT&lt;/P&gt;&lt;P&gt;  vkorg vtweg&lt;/P&gt;&lt;P&gt;  FROM tvkov&lt;/P&gt;&lt;P&gt;  INTO TABLE it_vtweg&lt;/P&gt;&lt;P&gt;  FOR ALL ENTRIES IN it_header&lt;/P&gt;&lt;P&gt;  WHERE vkorg = it_header-vkorg.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*Selecting Maktx from MAKT&lt;/P&gt;&lt;P&gt;  SELECT&lt;/P&gt;&lt;P&gt;  matnr maktx&lt;/P&gt;&lt;P&gt;  FROM makt&lt;/P&gt;&lt;P&gt;  INTO TABLE it_makt&lt;/P&gt;&lt;P&gt;  FOR ALL ENTRIES IN it_item&lt;/P&gt;&lt;P&gt;  WHERE matnr = it_item-matnr.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*Header Details Validation&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  LOOP AT it_header INTO wa_header.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    IF wa_header-kunnr1 IS INITIAL.                           " Sold to Party Validation&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      l_err = 1.&lt;/P&gt;&lt;P&gt;      l_error = l_error + 1.&lt;/P&gt;&lt;P&gt;      PERFORM transfer_head.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      wa_errh-field = 'Sold to Party'(010).&lt;/P&gt;&lt;P&gt;      wa_errh-value = wa_header-kunnr1.&lt;/P&gt;&lt;P&gt;      wa_errh-desc = 'Sold to Party cannot be initial'(011).&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      APPEND wa_errh TO it_errh.&lt;/P&gt;&lt;P&gt;      CLEAR wa_errh.&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;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    IF wa_header-kunnr2 IS INITIAL.                          " Ship to Party Validation&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      l_err = 1.&lt;/P&gt;&lt;P&gt;      l_error = l_error + 1.&lt;/P&gt;&lt;P&gt;      PERFORM transfer_head.&lt;/P&gt;&lt;P&gt;      wa_errh-field = 'Ship to Party'(012).&lt;/P&gt;&lt;P&gt;      wa_errh-value = wa_header-kunnr2.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      wa_errh-desc = 'Ship to Party cannot be initial'(013).&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      APPEND wa_errh TO it_errh.&lt;/P&gt;&lt;P&gt;      CLEAR wa_errh.&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;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    IF wa_header-auart IS INITIAL.                            " Order Type Validation&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      l_err = 1.&lt;/P&gt;&lt;P&gt;      l_error = l_error + 1.&lt;/P&gt;&lt;P&gt;      PERFORM transfer_head.&lt;/P&gt;&lt;P&gt;      wa_errh-field = 'Order Type'(014).&lt;/P&gt;&lt;P&gt;      wa_errh-value = wa_header-auart.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      wa_errh-desc = 'Order Type cannot be initial'(015).&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      APPEND wa_errh TO it_errh.&lt;/P&gt;&lt;P&gt;      CLEAR wa_errh.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    ELSE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      LOOP AT it_auart INTO wa_auart.                         " Order Type Value Check&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        IF wa_header-auart = wa_auart-auart.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;          l_errflag = 1.&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;      ENDLOOP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      IF l_errflag EQ 0.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        l_err = 1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        l_error = l_error + 1.&lt;/P&gt;&lt;P&gt;        PERFORM transfer_head.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        wa_errh-field = 'Order Type  '(016).&lt;/P&gt;&lt;P&gt;        wa_errh-value = wa_header-auart.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        wa_errh-desc = '  Order Type does not exist  '(017).&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        APPEND wa_errh TO it_errh.&lt;/P&gt;&lt;P&gt;        CLEAR wa_errh.&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;    l_errflag = 0.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    IF wa_header-vkorg IS NOT INITIAL.                     " Sales Organisation Value Validation&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      LOOP AT it_vkorg INTO wa_vkorg.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        IF wa_header-vkorg = wa_vkorg-vkorg.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;          l_errflag = 1.&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;      ENDLOOP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      IF l_errflag = 0.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        l_err = 1.&lt;/P&gt;&lt;P&gt;        l_error = l_error + 1.&lt;/P&gt;&lt;P&gt;        PERFORM transfer_head.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        wa_errh-field = 'Sales Organisation'(018).&lt;/P&gt;&lt;P&gt;        wa_errh-value = wa_header-vkorg.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        wa_errh-desc = 'Sales Organisation does not exist'(019).&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        APPEND wa_errh TO it_errh.&lt;/P&gt;&lt;P&gt;        CLEAR wa_errh.&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;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    l_errflag = 0.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    IF wa_header-vtweg IS NOT INITIAL.                     " Distribution Channel Value Validation&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      LOOP AT it_vtweg INTO wa_vtweg WHERE vkorg = wa_header-vkorg.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        IF wa_header-vtweg = wa_vtweg-vtweg.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;          l_errflag = 1.&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;      ENDLOOP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      IF l_errflag = 0.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        l_err = 1.&lt;/P&gt;&lt;P&gt;        l_error = l_error + 1.&lt;/P&gt;&lt;P&gt;        PERFORM transfer_head.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        wa_errh-field = 'Distribution Channel'(020).&lt;/P&gt;&lt;P&gt;        wa_errh-value = wa_header-vtweg.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        wa_errh-desc = 'Sales Organisation does not exist'(021).&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        APPEND wa_errh TO it_errh.&lt;/P&gt;&lt;P&gt;        CLEAR wa_errh.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*Item Details Validation&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    LOOP AT it_item INTO wa_item WHERE icount = wa_header-hcount.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      IF wa_item-posnr IS NOT INITIAL.                                  " Item Number Value Validation&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        l_postr =  wa_item-posnr.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        CALL FUNCTION 'CATS_ITS_MAKE_STRING_NUMERICAL'&lt;/P&gt;&lt;P&gt;          EXPORTING&lt;/P&gt;&lt;P&gt;            input_string        = l_postr&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;            IMPORTING&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;              VALUE               =&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;         EXCEPTIONS&lt;/P&gt;&lt;P&gt;           not_numerical       = 1&lt;/P&gt;&lt;P&gt;           OTHERS              = 2&lt;/P&gt;&lt;P&gt;                  .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        IF sy-subrc NE 0.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;          l_err = 1.&lt;/P&gt;&lt;P&gt;          l_error = l_error + 1.&lt;/P&gt;&lt;P&gt;          PERFORM transfer_head.&lt;/P&gt;&lt;P&gt;          wa_errh-field = 'Item Number'(022).&lt;/P&gt;&lt;P&gt;          wa_errh-value = wa_item-posnr.&lt;/P&gt;&lt;P&gt;          wa_errh-desc = 'Item Number Should be numeric'(023).&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;          APPEND wa_errh TO it_errh.&lt;/P&gt;&lt;P&gt;          CLEAR wa_errh.&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;      IF wa_item-kwmeng IS NOT INITIAL.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        l_quan =  wa_item-kwmeng.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        CALL FUNCTION 'CATS_ITS_MAKE_STRING_NUMERICAL'                " Quantity Field Validation&lt;/P&gt;&lt;P&gt;         EXPORTING&lt;/P&gt;&lt;P&gt;            input_string        = l_quan&lt;/P&gt;&lt;P&gt;         EXCEPTIONS&lt;/P&gt;&lt;P&gt;            not_numerical       = 1&lt;/P&gt;&lt;P&gt;            OTHERS              = 2&lt;/P&gt;&lt;P&gt;            .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        IF sy-subrc NE 0.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;          l_err = 1.&lt;/P&gt;&lt;P&gt;          l_error = l_error + 1.&lt;/P&gt;&lt;P&gt;          PERFORM transfer_head.&lt;/P&gt;&lt;P&gt;          wa_errh-field = 'Quantity'(024).&lt;/P&gt;&lt;P&gt;          wa_errh-value = wa_item-kwmeng.&lt;/P&gt;&lt;P&gt;          wa_errh-desc = 'Quantity Should be numeric'(025).&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;          APPEND wa_errh TO it_errh.&lt;/P&gt;&lt;P&gt;          CLEAR wa_errh.&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;      IF wa_item-werks IS INITIAL.                                 " Plant Validation&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        l_err = 1.&lt;/P&gt;&lt;P&gt;        l_error = l_error + 1.&lt;/P&gt;&lt;P&gt;        PERFORM transfer_head.&lt;/P&gt;&lt;P&gt;        wa_errh-field = 'Plant'(026).&lt;/P&gt;&lt;P&gt;        wa_errh-value = wa_item-werks.&lt;/P&gt;&lt;P&gt;        wa_errh-desc = 'Plant field is initial'(027).&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        APPEND wa_errh TO it_errh.&lt;/P&gt;&lt;P&gt;        CLEAR wa_errh.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      ELSE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        LOOP AT it_werks INTO wa_werks.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;          IF wa_item-werks = wa_werks-werks.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;            l_errflag = 1.&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;        ENDLOOP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        IF l_errflag = 0.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;          l_errflag = 0.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;          l_err = 1.&lt;/P&gt;&lt;P&gt;          l_error = l_error + 1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;          PERFORM transfer_head.&lt;/P&gt;&lt;P&gt;          wa_errh-field = 'Plant'(028).&lt;/P&gt;&lt;P&gt;          wa_errh-value = wa_item-werks.&lt;/P&gt;&lt;P&gt;          wa_errh-desc = 'Plant does not exist'(029).&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;          APPEND wa_errh TO it_errh.&lt;/P&gt;&lt;P&gt;          CLEAR wa_errh.&lt;/P&gt;&lt;P&gt;&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;    ENDLOOP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    IF l_err = 1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      DELETE it_header INDEX sy-tabix.&lt;/P&gt;&lt;P&gt;      l_err = 0.&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;  ENDLOOP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  IF l_error &amp;gt;= 1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    PERFORM er_load.&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;/P&gt;&lt;P&gt;ENDFORM.                    "pre_valid&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  transfer_head&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      To transfer into work area&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 transfer_head.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  wa_errh-ind1 = wa_header-ind1.&lt;/P&gt;&lt;P&gt;  wa_errh-hcount = wa_header-hcount.&lt;/P&gt;&lt;P&gt;  wa_errh-vkorg = wa_header-vkorg.&lt;/P&gt;&lt;P&gt;  wa_errh-vtweg = wa_header-vtweg.&lt;/P&gt;&lt;P&gt;  wa_errh-spart = wa_header-spart.&lt;/P&gt;&lt;P&gt;  wa_errh-auart = wa_header-auart.&lt;/P&gt;&lt;P&gt;  wa_errh-kunnr1 = wa_header-kunnr1.&lt;/P&gt;&lt;P&gt;  wa_errh-kunnr2 = wa_header-kunnr2.&lt;/P&gt;&lt;P&gt;  wa_errh-bstnk = wa_header-bstnk.&lt;/P&gt;&lt;P&gt;  wa_errh-matnr = wa_item-matnr.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    "transfer_head&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  er_load&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      To load error file into the Server&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 er_load.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  IF rad1 = 'X'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    DATA : l_errpre TYPE string.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    l_errpre = p_errpre.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    CALL FUNCTION 'GUI_DOWNLOAD'&lt;/P&gt;&lt;P&gt;      EXPORTING&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  BIN_FILESIZE                    =&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;        filename                        = l_errpre&lt;/P&gt;&lt;P&gt;        filetype                        = 'ASC'&lt;/P&gt;&lt;P&gt;      TABLES&lt;/P&gt;&lt;P&gt;        data_tab                        = it_errh&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  FIELDNAMES                      =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;EXCEPTIONS&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  FILE_WRITE_ERROR                = 1&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  NO_BATCH                        = 2&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  GUI_REFUSE_FILETRANSFER         = 3&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  INVALID_TYPE                    = 4&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  NO_AUTHORITY                    = 5&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  UNKNOWN_ERROR                   = 6&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  HEADER_NOT_ALLOWED              = 7&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  SEPARATOR_NOT_ALLOWED           = 8&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  FILESIZE_NOT_ALLOWED            = 9&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  HEADER_TOO_LONG                 = 10&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  DP_ERROR_CREATE                 = 11&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  DP_ERROR_SEND                   = 12&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  DP_ERROR_WRITE                  = 13&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  UNKNOWN_DP_ERROR                = 14&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  ACCESS_DENIED                   = 15&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  DP_OUT_OF_MEMORY                = 16&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  DISK_FULL                       = 17&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  DP_TIMEOUT                      = 18&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  FILE_NOT_FOUND                  = 19&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  DATAPROVIDER_EXCEPTION          = 20&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  CONTROL_FLUSH_ERROR             = 21&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  OTHERS                          = 22&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;  ELSEIF rad2 = 'X'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    OPEN DATASET p_errapl FOR OUTPUT IN TEXT MODE ENCODING DEFAULT&lt;/P&gt;&lt;P&gt;                                  WITH SMART LINEFEED.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    IF sy-subrc NE 0.&lt;/P&gt;&lt;P&gt;      MESSAGE e101(z20mes).&lt;/P&gt;&lt;P&gt;    ELSE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      LOOP AT it_errh INTO wa_errh.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        l_coun = wa_errh-hcount.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        CONCATENATE&lt;/P&gt;&lt;P&gt;        wa_errh-ind1&lt;/P&gt;&lt;P&gt;       l_coun&lt;/P&gt;&lt;P&gt;       wa_errh-vkorg&lt;/P&gt;&lt;P&gt;       wa_errh-vtweg&lt;/P&gt;&lt;P&gt;       wa_errh-spart&lt;/P&gt;&lt;P&gt;       wa_errh-auart&lt;/P&gt;&lt;P&gt;       wa_errh-kunnr1&lt;/P&gt;&lt;P&gt;       wa_errh-kunnr2&lt;/P&gt;&lt;P&gt;       wa_errh-bstnk&lt;/P&gt;&lt;P&gt;       wa_errh-matnr&lt;/P&gt;&lt;P&gt;       wa_errh-field&lt;/P&gt;&lt;P&gt;       wa_errh-value&lt;/P&gt;&lt;P&gt;       wa_errh-desc&lt;/P&gt;&lt;P&gt;       INTO l_trstr SEPARATED BY ' '.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        TRANSFER l_trstr TO p_errapl.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      ENDLOOP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      CLOSE DATASET p_errapl.&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;    l_err = 0.&lt;/P&gt;&lt;P&gt;&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;ENDFORM.                    "er_load&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  audit_report&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;      Audit Report to displayed&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 audit_report.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  IF l_tran &amp;gt; 0.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    PERFORM info_popup.&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;  WRITE &lt;span class="lia-unicode-emoji" title=":confused_face:"&gt;😕&lt;/span&gt; 'PROCESSING SUMMARY:'(047).&lt;/P&gt;&lt;P&gt;  SKIP.&lt;/P&gt;&lt;P&gt;  WRITE &lt;span class="lia-unicode-emoji" title=":confused_face:"&gt;😕&lt;/span&gt; 'Program Name:'(048), 45 sy-cprog.&lt;/P&gt;&lt;P&gt;  WRITE &lt;span class="lia-unicode-emoji" title=":confused_face:"&gt;😕&lt;/span&gt; 'Input File Name:'(049), 45 p_input, p_inputa.&lt;/P&gt;&lt;P&gt;  WRITE &lt;span class="lia-unicode-emoji" title=":confused_face:"&gt;😕&lt;/span&gt; 'BDC Session Name:'(004), 45  p_sess.&lt;/P&gt;&lt;P&gt;  SKIP.&lt;/P&gt;&lt;P&gt;  WRITE &lt;span class="lia-unicode-emoji" title=":confused_face:"&gt;😕&lt;/span&gt; 'STATISTICS:'.&lt;/P&gt;&lt;P&gt;  SKIP.&lt;/P&gt;&lt;P&gt;  WRITE &lt;span class="lia-unicode-emoji" title=":confused_face:"&gt;😕&lt;/span&gt; 'Total No. of Records: '(005), 45 l_total.&lt;/P&gt;&lt;P&gt;  WRITE &lt;span class="lia-unicode-emoji" title=":confused_face:"&gt;😕&lt;/span&gt; 'No. of sucess Records: '(006), 45 l_succ.&lt;/P&gt;&lt;P&gt;  WRITE &lt;span class="lia-unicode-emoji" title=":confused_face:"&gt;😕&lt;/span&gt; 'No of Records in error: '(007), 45 l_error.&lt;/P&gt;&lt;P&gt;  WRITE &lt;span class="lia-unicode-emoji" title=":confused_face:"&gt;😕&lt;/span&gt; 'Number of Transactions Posted: '(008), 45 l_tran.&lt;/P&gt;&lt;P&gt;  WRITE &lt;span class="lia-unicode-emoji" title=":confused_face:"&gt;😕&lt;/span&gt; 'Number of Transactions failed: '(009), 45 l_trane.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    "audit_report&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  screen_output&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;      Scrren Output when swaped between radio buttons&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 screen_output.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  LOOP AT SCREEN.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    IF rad1 = 'X'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      IF screen-group1 = 'AP'.&lt;/P&gt;&lt;P&gt;        screen-input = '0'.&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    ELSE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      IF screen-group1 = 'PR'.&lt;/P&gt;&lt;P&gt;        screen-input = '0'.&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;    MODIFY SCREEN.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    "screen_output&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  screen_valid&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM info_popup.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CALL FUNCTION 'POPUP_TO_INFORM'&lt;/P&gt;&lt;P&gt;    EXPORTING&lt;/P&gt;&lt;P&gt;      titel         =  'Sales Order(s) Created'&lt;/P&gt;&lt;P&gt;      txt1          = l_str_vbeln&lt;/P&gt;&lt;P&gt;      txt2          = 'Audit Summary'&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  TXT3          = ' '&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  TXT4          = ' '&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    "info_popup&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 02 Apr 2008 13:28:18 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/about-bdc-programming/m-p/3612081#M870215</guid>
      <dc:creator>former_member210123</dc:creator>
      <dc:date>2008-04-02T13:28:18Z</dc:date>
    </item>
    <item>
      <title>Re: About BDC programming</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/about-bdc-programming/m-p/3612082#M870216</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;An example abap program of handling Table Control during bdc programming.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;REPORT zmm_bdcp_purchaseorderkb02&lt;/P&gt;&lt;P&gt;       NO STANDARD PAGE HEADING LINE-SIZE 255.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                Declaring internal tables                            *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*-----Declaring line structure&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA : BEGIN OF it_dummy OCCURS 0,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;         dummy(255) TYPE c,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;       END OF it_dummy.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*-----Internal table for line items&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA :  BEGIN OF it_idata OCCURS 0,&lt;/P&gt;&lt;P&gt;          ematn(18),      "Material Number.&lt;/P&gt;&lt;P&gt;          menge(13),      "Qyantity.&lt;/P&gt;&lt;P&gt;          netpr(11),      "Net Price.&lt;/P&gt;&lt;P&gt;          werks(4),       "Plant.&lt;/P&gt;&lt;P&gt;          ebelp(5),       "Item Number.&lt;/P&gt;&lt;P&gt;        END OF it_idata.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*-----Deep structure for header data and line items&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA  :  BEGIN OF it_me21 OCCURS 0,&lt;/P&gt;&lt;P&gt;           lifnr(10),      "Vendor A/c No.&lt;/P&gt;&lt;P&gt;           bsart(4),       "A/c Type.&lt;/P&gt;&lt;P&gt;           bedat(8),       "Date of creation of PO.&lt;/P&gt;&lt;P&gt;           ekorg(4),       "Purchasing Organisation.&lt;/P&gt;&lt;P&gt;           ekgrp(3),       "Purchasing Group.&lt;/P&gt;&lt;P&gt;           x_data LIKE TABLE OF it_idata,&lt;/P&gt;&lt;P&gt;         END OF it_me21.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA  :  x_idata LIKE LINE OF it_idata.&lt;/P&gt;&lt;P&gt;DATA  :  v_delimit VALUE ','.&lt;/P&gt;&lt;P&gt;DATA  :  v_indx(3) TYPE n.&lt;/P&gt;&lt;P&gt;DATA  :  v_fnam(30) TYPE c.&lt;/P&gt;&lt;P&gt;DATA  :  v_count TYPE n.&lt;/P&gt;&lt;P&gt;DATA  :  v_ne TYPE i.&lt;/P&gt;&lt;P&gt;DATA  :  v_ns TYPE i.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*include bdcrecx1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;INCLUDE zmm_incl_purchaseorderkb01.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                Search help for file                                 *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_file.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CALL FUNCTION 'F4_FILENAME'&lt;/P&gt;&lt;P&gt;    EXPORTING&lt;/P&gt;&lt;P&gt;      program_name  = syst-cprog&lt;/P&gt;&lt;P&gt;      dynpro_number = syst-dynnr&lt;/P&gt;&lt;P&gt;    IMPORTING&lt;/P&gt;&lt;P&gt;      file_name     = p_file.&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;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;       To upload the data into line structure                        *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CALL FUNCTION 'WS_UPLOAD'&lt;/P&gt;&lt;P&gt;    EXPORTING&lt;/P&gt;&lt;P&gt;      filename = p_file&lt;/P&gt;&lt;P&gt;      filetype = 'DAT'&lt;/P&gt;&lt;P&gt;    TABLES&lt;/P&gt;&lt;P&gt;      data_tab = it_dummy.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    Processing the data from line structure to internal tables       *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  REFRESH:it_me21.&lt;/P&gt;&lt;P&gt;  CLEAR  :it_me21.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  LOOP AT it_dummy.&lt;/P&gt;&lt;P&gt;    IF it_dummy-dummy+0(01) = 'H'.&lt;/P&gt;&lt;P&gt;      v_indx = v_indx + 1.&lt;/P&gt;&lt;P&gt;      CLEAR   it_idata.&lt;/P&gt;&lt;P&gt;      REFRESH it_idata.&lt;/P&gt;&lt;P&gt;      CLEAR   it_me21-x_data.&lt;/P&gt;&lt;P&gt;      REFRESH it_me21-x_data.&lt;/P&gt;&lt;P&gt;      SHIFT it_dummy.&lt;/P&gt;&lt;P&gt;      SPLIT it_dummy AT v_delimit INTO it_me21-lifnr&lt;/P&gt;&lt;P&gt;                                       it_me21-bsart&lt;/P&gt;&lt;P&gt;                                       it_me21-bedat&lt;/P&gt;&lt;P&gt;                                       it_me21-ekorg&lt;/P&gt;&lt;P&gt;                                       it_me21-ekgrp.&lt;/P&gt;&lt;P&gt;      APPEND it_me21.&lt;/P&gt;&lt;P&gt;    ELSEIF it_dummy-dummy+0(01) = 'L'.&lt;/P&gt;&lt;P&gt;      SHIFT it_dummy.&lt;/P&gt;&lt;P&gt;      SPLIT it_dummy AT v_delimit INTO it_idata-ematn&lt;/P&gt;&lt;P&gt;                                       it_idata-menge&lt;/P&gt;&lt;P&gt;                                       it_idata-netpr&lt;/P&gt;&lt;P&gt;                                       it_idata-werks&lt;/P&gt;&lt;P&gt;                                       it_idata-ebelp.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      APPEND it_idata TO it_me21-x_data.&lt;/P&gt;&lt;P&gt;      MODIFY it_me21 INDEX v_indx.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                To open the group                                    *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  PERFORM open_group.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;        To populate the bdcdata table for header data                *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  LOOP AT it_me21.&lt;/P&gt;&lt;P&gt;    v_count = v_count + 1.&lt;/P&gt;&lt;P&gt;    REFRESH it_bdcdata.&lt;/P&gt;&lt;P&gt;    PERFORM subr_bdc_table USING:   'X' 'SAPMM06E'    '0100',&lt;/P&gt;&lt;P&gt;                                    ' ' 'BDC_CURSOR'  'EKKO-LIFNR',&lt;/P&gt;&lt;P&gt;                                    ' ' 'BDC_OKCODE'  '/00',&lt;/P&gt;&lt;P&gt;                                    ' ' 'EKKO-LIFNR'  it_me21-lifnr,&lt;/P&gt;&lt;P&gt;                                    ' ' 'RM06E-BSART' it_me21-bsart,&lt;/P&gt;&lt;P&gt;                                    ' ' 'RM06E-BEDAT' it_me21-bedat,&lt;/P&gt;&lt;P&gt;                                    ' ' 'EKKO-EKORG'  it_me21-ekorg,&lt;/P&gt;&lt;P&gt;                                    ' ' 'EKKO-EKGRP'  it_me21-ekgrp,&lt;/P&gt;&lt;P&gt;                                    ' ' 'RM06E-LPEIN' 'T'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    PERFORM subr_bdc_table USING:   'X' 'SAPMM06E'    '0120',&lt;/P&gt;&lt;P&gt;                                    ' ' 'BDC_CURSOR'  'RM06E-EBELP',&lt;/P&gt;&lt;P&gt;                                    ' ' 'BDC_OKCODE'  '/00'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    MOVE 1 TO v_indx.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*-----To populate the bdcdata table for line item data&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    LOOP AT it_me21-x_data INTO x_idata.&lt;/P&gt;&lt;P&gt;      CONCATENATE 'EKPO-EMATN(' v_indx ')'  INTO v_fnam.&lt;/P&gt;&lt;P&gt;      PERFORM  subr_bdc_table USING ' ' v_fnam x_idata-ematn.&lt;/P&gt;&lt;P&gt;      CONCATENATE 'EKPO-MENGE(' v_indx ')'  INTO v_fnam.&lt;/P&gt;&lt;P&gt;      PERFORM  subr_bdc_table USING ' ' v_fnam x_idata-menge.&lt;/P&gt;&lt;P&gt;      CONCATENATE 'EKPO-NETPR(' v_indx ')'  INTO v_fnam.&lt;/P&gt;&lt;P&gt;      PERFORM  subr_bdc_table USING ' ' v_fnam x_idata-netpr.&lt;/P&gt;&lt;P&gt;      CONCATENATE 'EKPO-WERKS(' v_indx ')'  INTO v_fnam.&lt;/P&gt;&lt;P&gt;      PERFORM  subr_bdc_table USING ' ' v_fnam x_idata-werks.&lt;/P&gt;&lt;P&gt;      v_indx = v_indx + 1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      PERFORM subr_bdc_table USING:  'X' 'SAPMM06E'    '0120',&lt;/P&gt;&lt;P&gt;                                     ' ' 'BDC_CURSOR'  'RM06E-EBELP',&lt;/P&gt;&lt;P&gt;                                     ' ' 'BDC_OKCODE'  '/00'.&lt;/P&gt;&lt;P&gt;    ENDLOOP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    PERFORM subr_bdc_table USING:    'X' 'SAPMM06E'    '0120',&lt;/P&gt;&lt;P&gt;                                     ' ' 'BDC_CURSOR'  'RM06E-EBELP',&lt;/P&gt;&lt;P&gt;                                     ' ' 'BDC_OKCODE'  '=BU'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    PERFORM bdc_transaction USING 'ME21'.&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt;  PERFORM close_group.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                  End of selection event                             *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;END-OF-SELECTION.&lt;/P&gt;&lt;P&gt;  IF session NE 'X'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*-----To display the successful records&lt;/P&gt;&lt;P&gt;    WRITE :/10  text-001.          "Sucess records&lt;/P&gt;&lt;P&gt;    WRITE :/10  SY-ULINE(20).&lt;/P&gt;&lt;P&gt;    SKIP.&lt;/P&gt;&lt;P&gt;    IF it_sucess IS INITIAL.&lt;/P&gt;&lt;P&gt;      WRITE &lt;span class="lia-unicode-emoji" title=":confused_face:"&gt;😕&lt;/span&gt;  text-002.&lt;/P&gt;&lt;P&gt;    ELSE.&lt;/P&gt;&lt;P&gt;      WRITE &lt;span class="lia-unicode-emoji" title=":confused_face:"&gt;😕&lt;/span&gt;   text-008,          "Total number of Succesful records&lt;/P&gt;&lt;P&gt;              35 v_ns.&lt;/P&gt;&lt;P&gt;      SKIP.&lt;/P&gt;&lt;P&gt;      WRITE:/   text-003,          "Vendor Number&lt;/P&gt;&lt;P&gt;             17 text-004,          "Record number&lt;/P&gt;&lt;P&gt;             30 text-005.          "Message&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    LOOP AT it_sucess.&lt;/P&gt;&lt;P&gt;      WRITE:/4  it_sucess-lifnr,&lt;/P&gt;&lt;P&gt;             17 it_sucess-tabix CENTERED,&lt;/P&gt;&lt;P&gt;             30 it_sucess-sucess_rec.&lt;/P&gt;&lt;P&gt;    ENDLOOP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    SKIP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*-----To display the erroneous records&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    WRITE:/10   text-006.          "Error Records&lt;/P&gt;&lt;P&gt;    WRITE:/10   SY-ULINE(17).&lt;/P&gt;&lt;P&gt;    SKIP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    IF it_error IS INITIAL.&lt;/P&gt;&lt;P&gt;      WRITE:/   text-007.          "No error records&lt;/P&gt;&lt;P&gt;    ELSE.&lt;/P&gt;&lt;P&gt;      WRITE:/   text-009,          "Total number of erroneous records&lt;/P&gt;&lt;P&gt;             35 v_ne.&lt;/P&gt;&lt;P&gt;      SKIP.&lt;/P&gt;&lt;P&gt;      WRITE:/   text-003,          "Vendor Number&lt;/P&gt;&lt;P&gt;             17 text-004,          "Record number&lt;/P&gt;&lt;P&gt;             30 text-005.          "Message&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    LOOP AT it_error.&lt;/P&gt;&lt;P&gt;      WRITE:/4  it_error-lifnr,&lt;/P&gt;&lt;P&gt;             17 it_error-tabix CENTERED,&lt;/P&gt;&lt;P&gt;             30 it_error-error_rec.&lt;/P&gt;&lt;P&gt;    ENDLOOP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    REFRESH it_sucess.&lt;/P&gt;&lt;P&gt;    REFRESH it_error.&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;CODE IN INCLUDE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; Include           ZMM_INCL_PURCHASEORDERKB01&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA:   it_BDCDATA LIKE BDCDATA    OCCURS 0 WITH HEADER LINE.&lt;/P&gt;&lt;P&gt;DATA:   it_MESSTAB LIKE BDCMSGCOLL OCCURS 0 WITH HEADER LINE.&lt;/P&gt;&lt;P&gt;DATA:   E_GROUP_OPENED.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*-----Internal table to store sucess records&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA:BEGIN OF it_sucess OCCURS 0,&lt;/P&gt;&lt;P&gt;       msgtyp(1)   TYPE c,&lt;/P&gt;&lt;P&gt;       lifnr  LIKE  ekko-lifnr,&lt;/P&gt;&lt;P&gt;       tabix  LIKE  sy-tabix,&lt;/P&gt;&lt;P&gt;       sucess_rec(125),&lt;/P&gt;&lt;P&gt;     END OF it_sucess.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA: g_mess(125) type c.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*-----Internal table to store error records&lt;/P&gt;&lt;P&gt;DATA:BEGIN OF it_error OCCURS 0,&lt;/P&gt;&lt;P&gt;       msgtyp(1)   TYPE c,&lt;/P&gt;&lt;P&gt;       lifnr  LIKE  ekko-lifnr,&lt;/P&gt;&lt;P&gt;       tabix  LIKE  sy-tabix,&lt;/P&gt;&lt;P&gt;       error_rec(125),&lt;/P&gt;&lt;P&gt;     END OF it_error.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;       Selection screen&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN BEGIN OF LINE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;PARAMETERS session RADIOBUTTON GROUP ctu.  "create session&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN COMMENT 3(20) text-s07 FOR FIELD session.&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN POSITION 45.&lt;/P&gt;&lt;P&gt;PARAMETERS ctu RADIOBUTTON GROUP ctu.     "call transaction&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN COMMENT 48(20) text-s08 FOR FIELD ctu.&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN END OF LINE.&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN BEGIN OF LINE.&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN COMMENT 3(20) text-s01 FOR FIELD group.&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN POSITION 25.&lt;/P&gt;&lt;P&gt;PARAMETERS group(12).                      "group name of session&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN COMMENT 48(20) text-s05 FOR FIELD ctumode.&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN POSITION 70.&lt;/P&gt;&lt;P&gt;PARAMETERS ctumode LIKE ctu_params-dismode DEFAULT 'N'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;"A: show all dynpros&lt;/P&gt;&lt;P&gt;"E: show dynpro on error only&lt;/P&gt;&lt;P&gt;"N: do not display dynpro&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN END OF LINE.&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN BEGIN OF LINE.&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN COMMENT 48(20) text-s06 FOR FIELD cupdate.&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN POSITION 70.&lt;/P&gt;&lt;P&gt;PARAMETERS cupdate LIKE ctu_params-updmode DEFAULT 'L'.&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN END OF LINE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN BEGIN OF LINE.&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN COMMENT 3(20) text-s03 FOR FIELD keep.&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN POSITION 25.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;PARAMETERS: keep AS CHECKBOX.       "' ' = delete session if finished&lt;/P&gt;&lt;P&gt;"'X' = keep   session if finished&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN COMMENT 48(20) text-s09 FOR FIELD e_group.&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN POSITION 70.&lt;/P&gt;&lt;P&gt;PARAMETERS e_group(12).             "group name of error-session&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN END OF LINE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN BEGIN OF LINE.&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN COMMENT 51(17) text-s03 FOR FIELD e_keep.&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN POSITION 70.&lt;/P&gt;&lt;P&gt;PARAMETERS: e_keep AS CHECKBOX.     "' ' = delete session if finished&lt;/P&gt;&lt;P&gt;"'X' = keep   session if finished&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN END OF LINE.&lt;/P&gt;&lt;P&gt;PARAMETERS:p_file LIKE rlgrap-filename.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  at selection screen                                                *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&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;group and user must be filled for create session&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  IF SESSION = 'X' AND&lt;/P&gt;&lt;P&gt;     GROUP = SPACE. "OR USER = SPACE.&lt;/P&gt;&lt;P&gt;    MESSAGE E613(MS).&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  create batchinput session                                          *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM OPEN_GROUP.&lt;/P&gt;&lt;P&gt;  IF SESSION = 'X'.&lt;/P&gt;&lt;P&gt;    SKIP.&lt;/P&gt;&lt;P&gt;    WRITE: /(20) 'Create group'(I01), GROUP.&lt;/P&gt;&lt;P&gt;    SKIP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*----open batchinput group&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  = GROUP&lt;/P&gt;&lt;P&gt;        USER   = sy-uname.&lt;/P&gt;&lt;P&gt;    WRITE:/(30) 'BDC_OPEN_GROUP'(I02),&lt;/P&gt;&lt;P&gt;            (12) 'returncode:'(I05),&lt;/P&gt;&lt;P&gt;                 SY-SUBRC.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;ENDFORM.                    "OPEN_GROUP&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  end batchinput session                                             *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM CLOSE_GROUP.&lt;/P&gt;&lt;P&gt;  IF SESSION = 'X'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*------close batchinput group&lt;/P&gt;&lt;P&gt;    CALL FUNCTION 'BDC_CLOSE_GROUP'.&lt;/P&gt;&lt;P&gt;    WRITE: /(30) 'BDC_CLOSE_GROUP'(I04),&lt;/P&gt;&lt;P&gt;            (12) 'returncode:'(I05),&lt;/P&gt;&lt;P&gt;                 SY-SUBRC.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  ELSE.&lt;/P&gt;&lt;P&gt;    IF E_GROUP_OPENED = 'X'.&lt;/P&gt;&lt;P&gt;      CALL FUNCTION 'BDC_CLOSE_GROUP'.&lt;/P&gt;&lt;P&gt;      WRITE: /.&lt;/P&gt;&lt;P&gt;      WRITE: /(30) 'Fehlermappe wurde erzeugt'(I06).&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;ENDFORM.                    "CLOSE_GROUP&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;       Start new transaction according to parameters                 *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM BDC_TRANSACTION USING TCODE TYPE ANY.&lt;/P&gt;&lt;P&gt;  DATA: L_SUBRC LIKE SY-SUBRC.&lt;/P&gt;&lt;P&gt;*------batch input session&lt;/P&gt;&lt;P&gt;  IF SESSION = 'X'.&lt;/P&gt;&lt;P&gt;    CALL FUNCTION 'BDC_INSERT'&lt;/P&gt;&lt;P&gt;      EXPORTING&lt;/P&gt;&lt;P&gt;        TCODE     = TCODE&lt;/P&gt;&lt;P&gt;      TABLES&lt;/P&gt;&lt;P&gt;        DYNPROTAB = it_BDCDATA.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    WRITE: / 'BDC_INSERT'(I03),&lt;/P&gt;&lt;P&gt;             TCODE,&lt;/P&gt;&lt;P&gt;             'returncode:'(I05),&lt;/P&gt;&lt;P&gt;             SY-SUBRC,&lt;/P&gt;&lt;P&gt;             'RECORD:',&lt;/P&gt;&lt;P&gt;             SY-INDEX.&lt;/P&gt;&lt;P&gt;  ELSE.&lt;/P&gt;&lt;P&gt;    REFRESH it_MESSTAB.&lt;/P&gt;&lt;P&gt;    CALL TRANSACTION TCODE USING it_BDCDATA&lt;/P&gt;&lt;P&gt;                     MODE   CTUMODE&lt;/P&gt;&lt;P&gt;                     UPDATE CUPDATE&lt;/P&gt;&lt;P&gt;                     MESSAGES INTO it_MESSTAB.&lt;/P&gt;&lt;P&gt;    L_SUBRC = SY-SUBRC.&lt;/P&gt;&lt;P&gt;    WRITE: / 'CALL_TRANSACTION',&lt;/P&gt;&lt;P&gt;             TCODE,&lt;/P&gt;&lt;P&gt;             'returncode:'(I05),&lt;/P&gt;&lt;P&gt;             L_SUBRC,&lt;/P&gt;&lt;P&gt;             'RECORD:',&lt;/P&gt;&lt;P&gt;             SY-INDEX.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  Message handling for Call Transaction                              *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  perform subr_mess_hand using g_mess.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*-----Erzeugen fehlermappe&lt;/P&gt;&lt;P&gt;  IF L_SUBRC &amp;lt;&amp;gt; 0 AND E_GROUP &amp;lt;&amp;gt; SPACE.&lt;/P&gt;&lt;P&gt;    IF E_GROUP_OPENED = ' '.&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  = E_GROUP&lt;/P&gt;&lt;P&gt;          USER   = sy-uname&lt;/P&gt;&lt;P&gt;          KEEP   = E_KEEP.&lt;/P&gt;&lt;P&gt;      E_GROUP_OPENED = 'X'.&lt;/P&gt;&lt;P&gt;    ENDIF.&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     = TCODE&lt;/P&gt;&lt;P&gt;      TABLES&lt;/P&gt;&lt;P&gt;        DYNPROTAB = it_BDCDATA.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  REFRESH it_BDCDATA.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    "BDC_TRANSACTION&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     Form  subr_bdc_table                                            *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     --&amp;gt;P_0220   text                                                *&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     --&amp;gt;P_0221   text                                                *&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     --&amp;gt;P_0222   text                                                *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM subr_bdc_table  USING      VALUE(P_0220) TYPE ANY&lt;/P&gt;&lt;P&gt;                                VALUE(P_0221) TYPE ANY&lt;/P&gt;&lt;P&gt;                                VALUE(P_0222) TYPE ANY.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CLEAR it_bdcdata.&lt;/P&gt;&lt;P&gt;  IF P_0220 = ' '.&lt;/P&gt;&lt;P&gt;    CLEAR it_bdcdata.&lt;/P&gt;&lt;P&gt;    it_bdcdata-fnam     = P_0221.&lt;/P&gt;&lt;P&gt;    it_bdcdata-fval     = P_0222.&lt;/P&gt;&lt;P&gt;    APPEND it_bdcdata.&lt;/P&gt;&lt;P&gt;  ELSE.&lt;/P&gt;&lt;P&gt;    it_bdcdata-dynbegin = P_0220.&lt;/P&gt;&lt;P&gt;    it_bdcdata-program  = P_0221.&lt;/P&gt;&lt;P&gt;    it_bdcdata-dynpro   = P_0222.&lt;/P&gt;&lt;P&gt;    APPEND it_bdcdata.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " subr_bdc_table&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     Form  subr_mess_hand                                            *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      text                                                           *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     --&amp;gt;P_G_MESS  text                                               *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM subr_mess_hand USING  P_G_MESS TYPE ANY.&lt;/P&gt;&lt;P&gt;  LOOP AT IT_MESSTAB.&lt;/P&gt;&lt;P&gt;    CALL FUNCTION 'FORMAT_MESSAGE'&lt;/P&gt;&lt;P&gt;      EXPORTING&lt;/P&gt;&lt;P&gt;        ID     = it_messtab-msgid&lt;/P&gt;&lt;P&gt;        LANG   = it_messtab-msgspra&lt;/P&gt;&lt;P&gt;        NO     = it_messtab-msgnr&lt;/P&gt;&lt;P&gt;        v1     = it_messtab-msgv1&lt;/P&gt;&lt;P&gt;        v2     = it_messtab-msgv2&lt;/P&gt;&lt;P&gt;      IMPORTING&lt;/P&gt;&lt;P&gt;        MSG    = P_G_MESS&lt;/P&gt;&lt;P&gt;      EXCEPTIONS&lt;/P&gt;&lt;P&gt;        OTHERS = 0.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    CASE it_messtab-msgtyp.&lt;/P&gt;&lt;P&gt;      when 'E'.&lt;/P&gt;&lt;P&gt;        it_error-error_rec   =  P_G_MESS.&lt;/P&gt;&lt;P&gt;        it_error-lifnr       =  it_me21-lifnr.&lt;/P&gt;&lt;P&gt;        it_error-tabix       =  v_count.&lt;/P&gt;&lt;P&gt;        APPEND IT_ERROR.&lt;/P&gt;&lt;P&gt;      when 'S'.&lt;/P&gt;&lt;P&gt;        it_sucess-sucess_rec =  P_G_MESS.&lt;/P&gt;&lt;P&gt;        it_sucess-lifnr      =  it_me21-lifnr.&lt;/P&gt;&lt;P&gt;        it_sucess-tabix      =  v_count.&lt;/P&gt;&lt;P&gt;        APPEND IT_SUCESS.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    endcase.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt;  Describe table it_sucess lines v_ns.&lt;/P&gt;&lt;P&gt;  Describe table it_error  lines v_ne.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " subr_mess_hand&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks&amp;amp;Regards,&lt;/P&gt;&lt;P&gt;Phani,&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;lt;REMOVED BY MODERATOR&amp;gt;&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Edited by: Alvaro Tejada Galindo on Apr 2, 2008 1:52 PM&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 02 Apr 2008 17:06:17 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/about-bdc-programming/m-p/3612082#M870216</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2008-04-02T17:06:17Z</dc:date>
    </item>
    <item>
      <title>Re: About BDC programming</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/about-bdc-programming/m-p/3612083#M870217</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hai,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Check this.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;How to deal with table control / step loop in BDC&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Steploop and table contol is inevitable in certain transactions. When we run BDC for such transactions, we will face the situation: how many visible lines of steploop/tablecontrol are on the screen? Although we can always find certain method to deal with it, such as function code 'NP', 'POPO', considering some extreme situation: there is only one line visible one the screen, our BDC program should display an error message. (See transaction 'ME21', we you resize your screen to let only one row visible, you can not enter mutiple lines on this screen even you use 'NP')&lt;/P&gt;&lt;P&gt;Now with the help of Poonam on sapfans.com developement forum, I find a method with which we can determine the number of visible lines on Transaction Screen from our Calling BDC program. Maybe it is useless to you, but I think it will give your some idea.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Demo ABAP code has two purposes:&lt;/P&gt;&lt;P&gt;1. how to determine number of visible lines and how to calculte page number;&lt;/P&gt;&lt;P&gt;(the 'calpage' routine has been modify to meet general purpose usage)&lt;/P&gt;&lt;P&gt;2. using field symbol in BDC program, please pay special attention to the difference in Static ASSIGN and Dynamic ASSIGN.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Now I begin to describe the step to implement my method:&lt;/P&gt;&lt;P&gt;(I use transaction 'ME21', screen 121 for sample,&lt;/P&gt;&lt;P&gt;the method using is Call Transation Using..)&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Step1: go to screen painter to display the screen 121, then we can count the fixed line on this screen, there is 7 lines above the steploop and 2 lines below the steploop, so there are total 9 fixed lines on this screen. This means except these 9 lines, all the other line is for step loop. Then have a look at steploop itselp, one entry of it will occupy two lines.&lt;/P&gt;&lt;P&gt;(Be careful, for table control, the head and the bottom scroll bar will possess another two fixed lines, and there is a maximum number for table line)&lt;/P&gt;&lt;P&gt;Now we have : FixedLine = 9&lt;/P&gt;&lt;P&gt;LoopLine = 2(for table control, LoopLine is always equal to 1)&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Step2: go to transaction itself(ME21) to see how it roll page, in ME21, the first line of new page is always occupied by the last line of last page, so it begin with index '02', but in some other case, fisrt line is empty and ready for input.&lt;/P&gt;&lt;P&gt;Now we have: FirstLine = 0&lt;/P&gt;&lt;P&gt;or FirstLine = 1 ( in our case, FirstLine is 1 because the first line of new page is fulfilled)&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Step3: write a subroutine calcalculating number of pages&lt;/P&gt;&lt;P&gt;(here, the name of actual parameter is the same as formal parameter)&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;global data: FixedLine type i, " number of fixed line on a certain screen&lt;/P&gt;&lt;P&gt;LoopLine type i, " the number of lines occupied by one steploop item&lt;/P&gt;&lt;P&gt;FirstLine type i, " possbile value 0 or 1, 0 stand for the first line of new " scrolling screen is empty, otherwise is 1&lt;/P&gt;&lt;P&gt;Dataline type i, " number of items you will use in BDC, using DESCRIBE to get&lt;/P&gt;&lt;P&gt;pageno type i, " you need to scroll screen how many times.&lt;/P&gt;&lt;P&gt;line type i, " number of lines appears on the screen.&lt;/P&gt;&lt;P&gt;index(2) type N, " the screen index for certain item&lt;/P&gt;&lt;P&gt;begin type i, " from parameter of loop&lt;/P&gt;&lt;P&gt;end type i. " to parameter of loop&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*in code sample, the DataTable-linindex stands for the table index number of this line&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;form calpage using FixedLine type i (see step 1)&lt;/P&gt;&lt;P&gt;LoopLine type i (see step 1)&lt;/P&gt;&lt;P&gt;FirstLine type i (see step 2)&lt;/P&gt;&lt;P&gt;DataLine type i ( this is the item number you will enter in transaction)&lt;/P&gt;&lt;P&gt;changing pageno type i (return the number of page, depends on run-time visible line in table control/ Step Loop)&lt;/P&gt;&lt;P&gt;changing line type i.(visible lines one the screen)&lt;/P&gt;&lt;P&gt;data: midd type i,&lt;/P&gt;&lt;P&gt;vline type i, "visible lines&lt;/P&gt;&lt;P&gt;if DataLine eq 0.&lt;/P&gt;&lt;P&gt;Message eXXX.&lt;/P&gt;&lt;P&gt;endif.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;vline = ( sy-srows - FixedLine ) div LoopLine.&lt;/P&gt;&lt;P&gt;*for table control, you should compare vline with maximum line of&lt;/P&gt;&lt;P&gt;*table control, then take the small one that is min(vline, maximum)&lt;/P&gt;&lt;P&gt;*here only illustrate step loop&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;if FirstLine eq 0.&lt;/P&gt;&lt;P&gt;pageno = DataLine div vline.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;if pageno eq 0.&lt;/P&gt;&lt;P&gt;pageno = pageno + 1.&lt;/P&gt;&lt;P&gt;endif.&lt;/P&gt;&lt;P&gt;elseif FirstLine eq 1.&lt;/P&gt;&lt;P&gt;pageno = ( DataLine - 1 ) div ( vline - 1 ) + 1.&lt;/P&gt;&lt;P&gt;midd = ( DataLine - 1 ) mod ( vline - 1).&lt;/P&gt;&lt;P&gt;if midd = 0 and DataLine gt 1.&lt;/P&gt;&lt;P&gt;pageno = pageno - 1.&lt;/P&gt;&lt;P&gt;endif.&lt;/P&gt;&lt;P&gt;endif.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;line = vline.&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;Step4 write a subroutine to calculate the line index for each item.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;form calindex using Line type i (visible lines on the screen)&lt;/P&gt;&lt;P&gt;FirstLine type i(see step 2)&lt;/P&gt;&lt;P&gt;LineIndex type i(item index)&lt;/P&gt;&lt;P&gt;changing Index type n. (index on the screen)&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;if FirstLine = 0.&lt;/P&gt;&lt;P&gt;index = LineIndex mod Line.&lt;/P&gt;&lt;P&gt;if index = '00'.&lt;/P&gt;&lt;P&gt;index = Line.&lt;/P&gt;&lt;P&gt;endif.&lt;/P&gt;&lt;P&gt;elseif FirstLine = 1.&lt;/P&gt;&lt;P&gt;index = LineIndex mod ( Line - 1 ).&lt;/P&gt;&lt;P&gt;if ( index between 1 and 0 ) and LineIndex gt 1.&lt;/P&gt;&lt;P&gt;index = index + Line - 1.&lt;/P&gt;&lt;P&gt;endif.&lt;/P&gt;&lt;P&gt;if Line = 2.&lt;/P&gt;&lt;P&gt;index = index + Line - 1.&lt;/P&gt;&lt;P&gt;endif.&lt;/P&gt;&lt;P&gt;endif.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;endform.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Step5 write a subroutine to calculate the loop range.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;form calrange using Line type i ( visible lines on the screen)&lt;/P&gt;&lt;P&gt;DataLine type i&lt;/P&gt;&lt;P&gt;FirstLine type i&lt;/P&gt;&lt;P&gt;loopindex like sy-index&lt;/P&gt;&lt;P&gt;changing begin type i&lt;/P&gt;&lt;P&gt;end type i.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;If FirstLine = 0.&lt;/P&gt;&lt;P&gt;if loopindex = 1.&lt;/P&gt;&lt;P&gt;begin = 1.&lt;/P&gt;&lt;P&gt;if DataLine &amp;lt;= Line.&lt;/P&gt;&lt;P&gt;end = DataLine.&lt;/P&gt;&lt;P&gt;else.&lt;/P&gt;&lt;P&gt;end = Line.&lt;/P&gt;&lt;P&gt;endif.&lt;/P&gt;&lt;P&gt;elseif loopindex gt 1.&lt;/P&gt;&lt;P&gt;begin = Line * ( loopindex - 1 ) + 1.&lt;/P&gt;&lt;P&gt;end = Line * loopindex.&lt;/P&gt;&lt;P&gt;if end gt DataLine.&lt;/P&gt;&lt;P&gt;end = DataLine.&lt;/P&gt;&lt;P&gt;endif.&lt;/P&gt;&lt;P&gt;endif.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;elseif FirstLine = 1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;if loopindex = 1.&lt;/P&gt;&lt;P&gt;begin = 1.&lt;/P&gt;&lt;P&gt;if DataLine &amp;lt;= Line.&lt;/P&gt;&lt;P&gt;end = DataLine.&lt;/P&gt;&lt;P&gt;else.&lt;/P&gt;&lt;P&gt;end = Line.&lt;/P&gt;&lt;P&gt;endif.&lt;/P&gt;&lt;P&gt;elseif loop index gt 1.&lt;/P&gt;&lt;P&gt;begin = ( Line - 1 ) * ( loopindex - 1 ) + 2.&lt;/P&gt;&lt;P&gt;end = ( Line - 1 ) * ( loopindex - 1 ) + Line.&lt;/P&gt;&lt;P&gt;if end gt DataLine.&lt;/P&gt;&lt;P&gt;end = DataLine.&lt;/P&gt;&lt;P&gt;endif.&lt;/P&gt;&lt;P&gt;endif.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;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;&lt;/P&gt;&lt;P&gt;Step6 using field sysbol in your BDC, for example: in ME21, but you should calculate each item will correponding to which index in steploop/Table Control&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;form creat_bdc.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;field-symbols: &amp;lt;material&amp;gt;, &amp;lt;quan&amp;gt;, &amp;lt;indicator&amp;gt;.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data: name1(14) value 'EKPO-EMATN(XX)',&lt;/P&gt;&lt;P&gt;name2(14) value 'EKPO-MENGE(XX)',&lt;/P&gt;&lt;P&gt;name3(15) value 'RM06E-SELKZ(XX)'.&lt;/P&gt;&lt;P&gt;assign: name1 to &amp;lt;material&amp;gt;,&lt;/P&gt;&lt;P&gt;name2 to &amp;lt;quan&amp;gt;,&lt;/P&gt;&lt;P&gt;name3 to &amp;lt;indicator&amp;gt;.&lt;/P&gt;&lt;P&gt;.&lt;/P&gt;&lt;P&gt;do pageno times.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;if sy-index gt 1&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*insert scroll page ok_code"&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;/P&gt;&lt;P&gt;perform calrange using Line DataLine FirstLine sy-index&lt;/P&gt;&lt;P&gt;changing begin end.&lt;/P&gt;&lt;P&gt;.&lt;/P&gt;&lt;P&gt;.&lt;/P&gt;&lt;P&gt;loop at DataTable from begin to end.&lt;/P&gt;&lt;P&gt;perform calindex using Line FirstLine DataTable-LineIndex changing Index.&lt;/P&gt;&lt;P&gt;name1+11(2) = Index.&lt;/P&gt;&lt;P&gt;name2+11(2) = Index.&lt;/P&gt;&lt;P&gt;name3+12(2) = Index.&lt;/P&gt;&lt;P&gt;.&lt;/P&gt;&lt;P&gt;.&lt;/P&gt;&lt;P&gt;perform bdcfield using &amp;lt;material&amp;gt; DataTable-matnr.&lt;/P&gt;&lt;P&gt;perform bdcfield using &amp;lt;quan&amp;gt; DataTable-menge.&lt;/P&gt;&lt;P&gt;perform bdcfield using &amp;lt;indicator&amp;gt; DataTable-indicator.&lt;/P&gt;&lt;P&gt;.&lt;/P&gt;&lt;P&gt;.&lt;/P&gt;&lt;P&gt;.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;endloop.&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;check this links.&lt;/P&gt;&lt;P&gt;For BDC:&lt;/P&gt;&lt;P&gt;[http://myweb.dal.ca/hchinni/sap/bdc_home.htm][http://www.sap-img.com/abap/learning-bdc-programming.htm][http://www.sapdevelopment.co.uk/bdc/bdchome.htm][http://www.sap-img.com/abap/difference-between-batch-input-and-call-transaction-in-bdc.htm][http://help.sap.com/saphelp_47x200/helpdata/en/69/c250684ba111d189750000e8322d00/frameset.htm][http://www.sapbrain.com/TUTORIALS/TECHNICAL/BDC_tutorial.html][http://www.sap-img.com/abap/difference-between-batch-input-and-call-transaction-in-bdc.htm][http://www.sap-img.com/abap/question-about-bdc-program.htm][http://www.itcserver.com/blog/2006/06/30/batch-input-vs-call-transaction/][http://www.planetsap.com/bdc_main_page.htm][&lt;A class="jive_macro jive_macro_message" href="https://community.sap.com/" __jive_macro_name="message" modifiedtitle="true" __default_attr="2491514"&gt;&lt;/A&gt; ]&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;lt;REMOVED BY MODERATOR&amp;gt;&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;Thanks&amp;amp; Regards,&lt;/P&gt;&lt;P&gt;Kalyan.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Edited by: Alvaro Tejada Galindo on Apr 2, 2008 3:11 PM&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 02 Apr 2008 17:38:09 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/about-bdc-programming/m-p/3612083#M870217</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2008-04-02T17:38:09Z</dc:date>
    </item>
  </channel>
</rss>

