BDC won't work in Table Control...

Hi Guys,
Again, i am stuck in the bdc problem. I am trying to bdc into a table control. I have two items to put into the table control via BDC. The TCODE that i need to bdc is PAKG.
<b>Previously</b>,<i> some of you have given me many advise on this but i just couldn't solve it. Here i am attaching my code for everyone to help me.</i>
Below is the code that i wrote:
DATA: I(2)        TYPE N.
I = 1.
LOOP AT TUPLOAD.
IF SY-TABIX > 1.
  CLEAR PARA.
  PARA = 'Q0221-BETRG'.
  CONCATENATE PARA '(' I ')' INTO PARA.
  PERFORM BDC_FIELD USING PARA          TUPLOAD-AMOUNT.
  PERFORM BDC_FIELD USING 'BDC_SUBSCR' 
                          'SUBSCREEN_TC2000'.
  PERFORM BDC_FIELD USING 'BDC_CURSOR'  PARA.
  CLEAR PARA.
  PARA = 'Q0221-LGART'.
  CONCATENATE PARA '(' I ')' INTO PARA.
  PERFORM BDC_FIELD USING PARA          TUPLOAD-WAGT.
  CLEAR PARA.
  PARA = 'Q0221-TAXAU'.
  CONCATENATE PARA '(' I ')' INTO PARA.
  PERFORM BDC_FIELD USING PARA          TUPLOAD-TAXA.
  PERFORM BDC_FIELD USING 'BDC_OKCODE'  '=INSL'.
  I = I + 1.
  ENDIF.
ENDDLOOP.
thanks.
William

The PAKG has a sample BDC file.
This mentions how to code for multiple lines.
I am copying it here:
PerNr        ChkDt          I     OCRe     TaxA     Business No.        RsAr     QcTx                 WagT     Hours         Amount
07070707     31.12.1999     0              BC                                                         MC00                   2000
                                                                                                      /320                   40
                                                                                                      /322                   50
07070707     31.12.1999     1              BC                                                         MC00                   2200
                                                                                                      /320                   44
                                                                                                      /322                   55
Hope this helps,
Bhanu

Similar Messages

  • BDC Recording For J1IG with Table Control Scroll bar

    Dear Friends,
    I am doing BDC program for J1IG Transaction after done recording.
    As you knows that, In J1IG transaction max. 11 materials are shows in table control at a time and if more records are there, then we have to scroll down manually so after that, we can see the records.
    Now my BDC program runs upto 11 materials but when more than 11 materials, selection is coming on first material only and cursor not showing 12th material.
    So i think page down is not working for that issue.
    I have seen lots of search forum for that but not getting the proper answer.
    Please reply.
    Regards,
    Shivam.

    Dear Dinu,
    For better understanding please see the code.
    So you suggest what should i have to do?.
    LOOP AT jtab INTO wb.
         LOOP AT itab INTO wa WHERE mblnr EQ wb-mblnr.
           CLEAR : flag.
           AT NEW mblnr.
             flag = 'X'.
             CLEAR : cnt, var1, var2.
           ENDAT.
           cnt = cnt + 1.
           IF flag EQ 'X'.
             PERFORM bdc_dynpro      USING 'SAPMJ1IG' '0100'.
             PERFORM bdc_field       USING 'BDC_OKCODE'
                                       '=ECAP'.
             PERFORM bdc_dynpro      USING 'SAPMJ1IG' '0200'.
             PERFORM bdc_field       USING 'BDC_CURSOR'
                                       'T_HEADER-EXDAT'.
             PERFORM bdc_field       USING 'BDC_OKCODE'
                                       '/00'.
             PERFORM bdc_field       USING 'J_1IEXCHDR-EXGRP'
                                       wa-exgrp.
             PERFORM bdc_field       USING 'T_HEADER-MBLNR'
                                       wa-mblnr.
             PERFORM bdc_field       USING 'T_HEADER-MJAHR'
                                       wa-mjahr.
             PERFORM bdc_field       USING 'T_HEADER-EXNUM'
                                       wa-exnum.
             PERFORM bdc_field       USING 'T_HEADER-EXDAT'
                                       wa-exdat.
             PERFORM bdc_dynpro      USING 'SAPMJ1IG' '0200'.
             PERFORM bdc_field       USING 'BDC_CURSOR'
                                       'J_1IEXCHDR-EXGRP'.
             PERFORM bdc_field       USING 'BDC_OKCODE'
                                       '=DETL'.
           ENDIF.
           CONCATENATE 'T_ITEM-ZEILE(' cnt ')'  INTO var1.
           CONCATENATE 'T_ITEM-SELECTION(' cnt ')'  INTO var2.
           PERFORM bdc_dynpro      USING 'SAPMJ1IG' '0300'.
           PERFORM bdc_field       USING 'BDC_CURSOR'
                                     var1.           "'T_ITEM-ZEILE(01)'.
           PERFORM bdc_field       USING 'BDC_OKCODE'
                                     '=MORE'.
           PERFORM bdc_field       USING var2 "'T_ITEM-SELECTION(01)'
                                     'X'. "record-selection_01_019.
           PERFORM bdc_dynpro      USING 'SAPMJ1IG' '0400'.
           PERFORM bdc_field       USING 'BDC_CURSOR'
                                    'T_LOCAL_EXC-EXADDRATE1(01)'.
           PERFORM bdc_field       USING 'BDC_OKCODE'
                                     '/00'.
           PERFORM bdc_field       USING 'T_LOCAL_EXC-MENGE(01)'
                                     wa-menge.
           PERFORM bdc_field       USING 'T_LOCAL_EXC-EXBAS(01)'
                                     wa-exbas.
           PERFORM bdc_field       USING 'T_LOCAL_EXC-EXBED(01)'
                                     wa-exbed.
           PERFORM bdc_field       USING 'T_LOCAL_EXC-BEDRATE(01)'
                                     wa-bedrate.
           PERFORM bdc_field       USING 'T_LOCAL_EXC-EXAED(01)'
                                     wa-exaed.
           PERFORM bdc_field       USING 'T_LOCAL_EXC-AEDRATE(01)'
                                     wa-aedrate.
           PERFORM bdc_field       USING 'T_LOCAL_EXC-ECS(01)'
                                     wa-ecs.
           PERFORM bdc_field       USING 'T_LOCAL_EXC-ECSRATE(01)'
                                     wa-ecsrate.
           PERFORM bdc_field       USING 'T_LOCAL_EXC-EXADDTAX1(01)'
                                     wa-exaddtax1.
           PERFORM bdc_field       USING 'T_LOCAL_EXC-EXADDRATE1(01)'
                                     wa-exaddrate1.
           PERFORM bdc_dynpro      USING 'SAPMJ1IG' '0400'.
           PERFORM bdc_field       USING 'BDC_CURSOR'
                                     'T_LOCAL_EXC-RG23ASER(01)'.
           PERFORM bdc_field       USING 'BDC_OKCODE'
                                     '=BACK'.
         ENDLOOP.
         PERFORM bdc_dynpro      USING 'SAPMJ1IG' '0300'.
         PERFORM bdc_field       USING 'BDC_CURSOR'
                                   'T_ITEM-DOCNO(01)'.
         PERFORM bdc_field       USING 'BDC_OKCODE'
                                   '=SAVE'.
         CLEAR opt.
         opt-dismode = 'A'.
         opt-updmode = 'S'.
    *    opt-defsize = '12'.
    *    CLEAR: it_messages[], it_messages.
         CALL TRANSACTION 'J1IG' USING it_bdcdata OPTIONS FROM opt
                                       MESSAGES INTO it_messages.
         REFRESH it_bdcdata.
       ENDLOOP.
       CHECK it_messages[] IS NOT INITIAL.
       LOOP AT it_messages.
         PERFORM fill_messages USING it_messages-msgtyp
                                     it_messages-msgid
                                     it_messages-msgnr
                                     it_messages-msgv1
                                     it_messages-msgv2
                                     it_messages-msgv3
                                     it_messages-msgv4.
       ENDLOOP.
       PERFORM display_messages TABLES tmsg.

  • Last_page button is not working in table control-urgent

    hi  all,
    iam displaying the data in table control.in my pf-status i have first_page,next_page,prev_page and last_page.out of 4 buttons 3 buttons are working finr except last_page. any body can send me the code for this program.iam sending my program below.
    REPORT ZMAHI_TABLE_CONTROL .
    TABLES : VBAK,VBAP.
    DATA : BEGIN OF ITAB OCCURS 0,
             VBELN TYPE VBAK-VBELN,
             ERDAT TYPE VBAK-ERDAT,
             ERNAM TYPE VBAK-ERNAM,
             ERZET TYPE VBAK-ERZET,
             REASON(40) TYPE C,
           END OF ITAB.
    DATA :   FILL TYPE I VALUE 1.
    DATA : N TYPE I .
    DATA      : BEGIN OF XVALUES OCCURS 50,
                  BUTXT LIKE  T001-BUTXT,
                END OF XVALUES.
    DATA      : BEGIN OF XFIELDS OCCURS 50.
            INCLUDE STRUCTURE HELP_VALUE.
    DATA      : END OF XFIELDS.
    DATA      : BEGIN OF SEL_VAL OCCURS 50.
            INCLUDE STRUCTURE HELP_VTAB.
    DATA      : END OF SEL_VAL.
    TABLE CONTROL DECLARATIONS------
    CONTROLS : CONTROL_DATA TYPE TABLEVIEW USING  SCREEN '100'.
    DATA : OK_CODE TYPE SY-UCOMM,
    LIN TYPE I,
    LIN1 TYPE I,
    LIN2 TYPE I,
    LIN3 TYPE I.
    DATA: LINES TYPE I,
          LIMIT TYPE I VALUE 1.
    DATA :   LINE_COUNT       TYPE  I,
             LINEI            TYPE  I,
             LINEJ            TYPE  I,
             LINE1            TYPE  I,
             LINE2            TYPE  I,
             LN1              TYPE  I.
    SELECTION-SCREEN : BEGIN OF BLOCK B1.
    SELECT-OPTIONS   : P_VBELN FOR VBAK-VBELN.
    SELECTION-SCREEN : END OF BLOCK B1.
    START-OF-SELECTION.
      SELECT VBELN
             ERDAT
             ERNAM
             ERZET
        FROM VBAK
        INTO TABLE ITAB
      WHERE VBELN IN P_VBELN.
      CALL SCREEN 100.
    *&      Module  F4_HELP  INPUT
    MODULE F4_HELP INPUT.
      FREE  :  XFIELDS,SEL_VAL,XVALUES.
      MOVE : 'ZMAHI'     TO XFIELDS-TABNAME,
             'REASON'    TO XFIELDS-FIELDNAME,
             'X'        TO XFIELDS-SELECTFLAG.
      APPEND XFIELDS.
      XVALUES = 'Non Trade F&F'.
      APPEND XVALUES .
      XVALUES = 'Non Trade Retention'.
      APPEND XVALUES .
      XVALUES = 'Oldbills Accnt cntmnt'.
      APPEND XVALUES .
      XVALUES = 'Non Trade Not claimed'.
      APPEND XVALUES .
      XVALUES = 'Non Trade Dispute'.
      APPEND XVALUES .
      XVALUES = 'Non Trade Payment Block'.
      APPEND XVALUES .
      XVALUES = 'N/T Subsntly Cleared'.
      APPEND XVALUES .
      XVALUES = 'N/T Unstld Advances'.
      APPEND XVALUES .
      XVALUES = 'N/T OThers'.
      APPEND XVALUES .
      XVALUES = 'Trade Non Receipt OF BOE'.
      APPEND XVALUES .
      XVALUES = 'Trade OEM Adjustments'.
      APPEND XVALUES .
      XVALUES = 'Trade Reject Of Material'.
      APPEND XVALUES .
      XVALUES = 'Trade NOt Claimed'.
      APPEND XVALUES .
      XVALUES = 'Trade Dispute'.
      APPEND XVALUES .
      XVALUES = 'Trade Payment BLock'.
      APPEND XVALUES .
      XVALUES = 'Trade Subsntly Cleared'.
      APPEND XVALUES .
      XVALUES = 'Trade Non Submission of bills'.
      APPEND XVALUES .
      XVALUES = 'Trade others'.
      APPEND XVALUES .
      CALL FUNCTION 'HELP_VALUES_GET_WITH_TABLE_EXT'
           EXPORTING
                CUCOL         = 0
                CUROW         = 0
                DISPLAY       = ' '
                FIELDNAME     = 'REASON'
                TABNAME       = 'ZIFIOD011'
           IMPORTING
                SELECT_VALUE  = ITAB-REASON
           TABLES
                FIELDS        = XFIELDS
                SELECT_VALUES = SEL_VAL
                VALUETAB      = XVALUES.
    ENDMODULE.                 " F4_HELP  INPUT
    *&      Module  STATUS_0100  OUTPUT
    MODULE STATUS_0100 OUTPUT.
      SET PF-STATUS '0100'.
    ENDMODULE.                 " STATUS_0100  OUTPUT
    *&      Module  USER_COMMAND_0100  INPUT
    MODULE USER_COMMAND_0100 INPUT.
      CASE SY-UCOMM.
        WHEN 'CANCEL' OR 'EXIT' OR 'BACK'.
          LEAVE TO SCREEN 0.
       WHEN 'NEXT_LINE'.
         CONTROL_DATA-top_line = CONTROL_DATA-top_line + 1.
         limit = fill - lines + 1.
         IF CONTROL_DATA-top_line > limit.
           CONTROL_DATA-top_line = limit.
         ENDIF.
       WHEN 'PREV_LINE'.
         CONTROL_DATA-top_line = CONTROL_DATA-top_line - 1.
         IF CONTROL_DATA-top_line < 0.
           CONTROL_DATA-top_line = 0.
         ENDIF.
        WHEN 'NEXT_PAGE'.
          CONTROL_DATA-TOP_LINE = CONTROL_DATA-TOP_LINE + LINES.
          LIMIT = LIMIT + 1.
          CONTROL_DATA-TOP_LINE = LIMIT.
        WHEN 'PREV_PAGE'.
          CONTROL_DATA-TOP_LINE = CONTROL_DATA-TOP_LINE - LINES.
          LIMIT = LIMIT - 1.
          CONTROL_DATA-TOP_LINE = LIMIT.
       WHEN 'LAST_PAGE'.
         CONTROL_DATA-TOP_LINE =  FILL - LINES + 1.
        WHEN 'FIRST_PAGE'.
          CONTROL_DATA-TOP_LINE = 0.
      ENDCASE.
    ENDMODULE.                 " USER_COMMAND_0100  INPUT
    *&      Module  SCROLL_BAR  INPUT
    MODULE SCROLL_BAR INPUT.
      DESCRIBE  TABLE  ITAB  LINES  CONTROL_DATA-LINES.
    ENDMODULE.                 " SCROLL_BAR  INPUT
    thanks,
    maheedhar.T

    Hi Ravi,
    The code which u sent to me is not working for next page and previous page.
    can u plz resend me the code.
    iam sending my code below.
    REPORT ZMAHI_TABLE_CONTROL .
    TABLES : VBAK,VBAP.
    DATA : BEGIN OF ITAB OCCURS 0,
             VBELN TYPE VBAK-VBELN,
             ERDAT TYPE VBAK-ERDAT,
             ERNAM TYPE VBAK-ERNAM,
             ERZET TYPE VBAK-ERZET,
             REASON(40) TYPE C,
           END OF ITAB.
    DATA :   FILL TYPE I VALUE 1.
    DATA : N TYPE I .
    DATA      : BEGIN OF XVALUES OCCURS 50,
                  BUTXT LIKE  T001-BUTXT,
                END OF XVALUES.
    DATA      : BEGIN OF XFIELDS OCCURS 50.
            INCLUDE STRUCTURE HELP_VALUE.
    DATA      : END OF XFIELDS.
    DATA      : BEGIN OF SEL_VAL OCCURS 50.
            INCLUDE STRUCTURE HELP_VTAB.
    DATA      : END OF SEL_VAL.
    TABLE CONTROL DECLARATIONS------
    CONTROLS : CONTROL_DATA TYPE TABLEVIEW USING  SCREEN '100'.
    DATA : OK_CODE TYPE SY-UCOMM,
    LIN TYPE I,
    LIN1 TYPE I,
    LIN2 TYPE I,
    LIN3 TYPE I.
    DATA: LINES TYPE I,
          LIMIT TYPE I VALUE 1.
    DATA :   LINE_COUNT       TYPE  I,
             LINEI            TYPE  I,
             LINEJ            TYPE  I,
             LINE1            TYPE  I,
             LINE2            TYPE  I,
             LN1              TYPE  I.
    SELECTION-SCREEN : BEGIN OF BLOCK B1.
    SELECT-OPTIONS   : P_VBELN FOR VBAK-VBELN.
    SELECTION-SCREEN : END OF BLOCK B1.
    START-OF-SELECTION.
      SELECT VBELN
             ERDAT
             ERNAM
             ERZET
        FROM VBAK
        INTO TABLE ITAB
      WHERE VBELN IN P_VBELN.
      CALL SCREEN 100.
    *&      Module  F4_HELP  INPUT
    MODULE F4_HELP INPUT.
      FREE  :  XFIELDS,SEL_VAL,XVALUES.
      MOVE : 'ZMAHI'     TO XFIELDS-TABNAME,
             'REASON'    TO XFIELDS-FIELDNAME,
             'X'        TO XFIELDS-SELECTFLAG.
      APPEND XFIELDS.
      XVALUES = 'Non Trade F&F'.
      APPEND XVALUES .
      XVALUES = 'Non Trade Retention'.
      APPEND XVALUES .
      XVALUES = 'Oldbills Accnt cntmnt'.
      APPEND XVALUES .
      XVALUES = 'Non Trade Not claimed'.
      APPEND XVALUES .
      XVALUES = 'Non Trade Dispute'.
      APPEND XVALUES .
      XVALUES = 'Non Trade Payment Block'.
      APPEND XVALUES .
      XVALUES = 'N/T Subsntly Cleared'.
      APPEND XVALUES .
      XVALUES = 'N/T Unstld Advances'.
      APPEND XVALUES .
      XVALUES = 'N/T OThers'.
      APPEND XVALUES .
      XVALUES = 'Trade Non Receipt OF BOE'.
      APPEND XVALUES .
      XVALUES = 'Trade OEM Adjustments'.
      APPEND XVALUES .
      XVALUES = 'Trade Reject Of Material'.
      APPEND XVALUES .
      XVALUES = 'Trade NOt Claimed'.
      APPEND XVALUES .
      XVALUES = 'Trade Dispute'.
      APPEND XVALUES .
      XVALUES = 'Trade Payment BLock'.
      APPEND XVALUES .
      XVALUES = 'Trade Subsntly Cleared'.
      APPEND XVALUES .
      XVALUES = 'Trade Non Submission of bills'.
      APPEND XVALUES .
      XVALUES = 'Trade others'.
      APPEND XVALUES .
      CALL FUNCTION 'HELP_VALUES_GET_WITH_TABLE_EXT'
           EXPORTING
                CUCOL         = 0
                CUROW         = 0
                DISPLAY       = ' '
                FIELDNAME     = 'REASON'
                TABNAME       = 'ZIFIOD011'
           IMPORTING
                SELECT_VALUE  = ITAB-REASON
           TABLES
                FIELDS        = XFIELDS
                SELECT_VALUES = SEL_VAL
                VALUETAB      = XVALUES.
    ENDMODULE.                 " F4_HELP  INPUT
    *&      Module  STATUS_0100  OUTPUT
    MODULE STATUS_0100 OUTPUT.
      SET PF-STATUS '0100'.
    ENDMODULE.                 " STATUS_0100  OUTPUT
    *&      Module  USER_COMMAND_0100  INPUT
    MODULE USER_COMMAND_0100 INPUT.
      CASE SY-UCOMM.
        WHEN 'CANCEL' OR 'EXIT' OR 'BACK'.
          LEAVE TO SCREEN 0.
       WHEN 'NEXT_LINE'.
         CONTROL_DATA-top_line = CONTROL_DATA-top_line + 1.
         limit = fill - lines + 1.
         IF CONTROL_DATA-top_line > limit.
           CONTROL_DATA-top_line = limit.
         ENDIF.
       WHEN 'PREV_LINE'.
         CONTROL_DATA-top_line = CONTROL_DATA-top_line - 1.
         IF CONTROL_DATA-top_line < 0.
           CONTROL_DATA-top_line = 0.
         ENDIF.
       WHEN 'NEXT_PAGE'.
         CONTROL_DATA-TOP_LINE = CONTROL_DATA-TOP_LINE + LINES.
         LIMIT = LIMIT + 1.
         CONTROL_DATA-TOP_LINE = LIMIT.
       WHEN 'PREV_PAGE'.
         CONTROL_DATA-TOP_LINE = CONTROL_DATA-TOP_LINE - LINES.
         LIMIT = LIMIT - 1.
         CONTROL_DATA-TOP_LINE = LIMIT.
       WHEN 'LAST_PAGE'.
         DESCRIBE TABLE ITAB LINES LIMIT.
         CONTROL_DATA-TOP_LINE =  LIMIT.
       WHEN 'FIRST_PAGE'.
         CONTROL_DATA-TOP_LINE = 0.
    WHEN 'P--'.
    CLEAR ok_code.
    PERFORM paging USING 'P--'.
    WHEN 'P-'.
    CLEAR ok_code.
    PERFORM paging USING 'P-'.
    WHEN 'P+'.
    CLEAR ok_code.
    PERFORM paging USING 'P+'.
    WHEN 'P++'.
    CLEAR ok_code.
    PERFORM paging USING 'P++'.
      ENDCASE.
    ENDMODULE.                 " USER_COMMAND_0100  INPUT
    *&      Module  SCROLL_BAR  INPUT
    MODULE SCROLL_BAR INPUT.
      DESCRIBE  TABLE  ITAB  LINES  CONTROL_DATA-LINES.
    ENDMODULE.                 " SCROLL_BAR  INPUT
    *&      Form  paging
          text
         -->P_0356   text
    *FORM paging USING    VALUE(P_0356).
    FORM paging USING code.
    DATA: i TYPE i,
    j TYPE i.
    CASE code.
    WHEN 'P--'.
    CONTROL_DATA-top_line = 1.
    WHEN 'P-'.
    CONTROL_DATA-top_line = CONTROL_DATA-top_line - line_count.
    IF CONTROL_DATA-top_line LE 0.
    CONTROL_DATA-top_line = 1.
    ENDIF.
    WHEN 'P+'.
    i = CONTROL_DATA-top_line + line_count.
    j = CONTROL_DATA-lines - line_count + 1.
    IF j LE 0. j = 1. ENDIF.
    IF i LE j.
    CONTROL_DATA-top_line = i.
    ELSE.
    CONTROL_DATA-top_line = j.
    ENDIF.
    WHEN 'P++'.
    CONTROL_DATA-top_line = CONTROL_DATA-lines - line_count + 1.
    IF CONTROL_DATA-top_line LE 0.
    CONTROL_DATA-top_line = 1.
    ENDIF.
    ENDCASE.
    ENDFORM. " PAGING
    *ENDFORM.                    " paging
    thanks,
    maheedhar.t

  • In BDC'S how to handle Table control

    Hi,
         I want to know the concept and code for BDC's in Table control steps(MM01,VA01) and coding.Please its very Urgent.

    Hi Raghavendra,
    Go through this program mm01.
    rePORT ymmbdcmm01
           NO STANDARD PAGE HEADING LINE-SIZE 255.
    *&        Table Declarations                                          *
    TABLES:rmmg1,makt,mara,mvke, marc,mbew,t100.
    TYPE-POOLS: truxs.
    DATA: it_raw TYPE truxs_t_text_data.
    *&        Data Declarations                                           *
    DATA:
         BEGIN OF t_data OCCURS 0,
               data TYPE string,
         END   OF t_data.
    DATA:BEGIN OF it_mess OCCURS 0,
      msgtyp(5),
       lms(200),
       msgv1(50),
      END OF it_mess.
    DATA: BEGIN OF it_itab OCCURS 0,
            matnr TYPE rmmg1-matnr,
            mbrsh TYPE rmmg1-mbrsh,
            mtart TYPE rmmg1-mtart,
            werks TYPE rmmg1-werks,
            lgort TYPE rmmg1-lgort,
            vkorg TYPE rmmg1-vkorg,
            vtweg TYPE rmmg1-vtweg,
            maktx TYPE makt-maktx,
            meins TYPE mara-meins,
            matkl TYPE mara-matkl,
            spart TYPE mara-spart,
          GEWEI TYPE MARA-GEWEI,
            dwerk TYPE mvke-dwerk,
            versg TYPE mvke-versg,
            mtpos TYPE mvke-mtpos,
            mtvfp TYPE marc-mtvfp,
            tragr TYPE mara-tragr,
            ladgr TYPE marc-ladgr,
            sernp TYPE marc-sernp,
            txline(25), "added
          kordb ,
            mprof TYPE mara-mprof,
            ekgrp TYPE marc-ekgrp,
            dismm TYPE marc-dismm,
            dispo TYPE marc-dispo,
            disls TYPE marc-disls,
            mabst(13) TYPE c,
            beskz TYPE marc-beskz,
            sobsl TYPE marc-sobsl,
            lgpro TYPE marc-lgpro,
            dzeit TYPE c,
            plifz(3) TYPE c,
            webaz TYPE c,
            fhori TYPE marc-fhori,
            eisbe TYPE c,
            strgr(2) TYPE c,
            vrmod TYPE c,
            vint1(3),
            vint2(3),
            wzeit(3),
            sbdkz TYPE marc-sbdkz,
            bklas TYPE mbew-bklas,
           vprsv TYPE mbew-vprsv,
            verpr(11),
           peinh TYPE c,
            ekalr TYPE mbew-ekalr,
            losgr TYPE c,
            RGEKZ(1),
            fevor(3),
          END OF it_itab.
    *decl of internal table of table control for BDCDATA & BDCMSGCOLL
    DATA : BEGIN OF bdcdata OCCURS 0.
            INCLUDE STRUCTURE bdcdata.
    DATA: END OF bdcdata.
    DATA:it_msgtab TYPE STANDARD TABLE OF  bdcmsgcoll WITH HEADER LINE,
         it_msgtab1 TYPE STANDARD TABLE OF bdcmsgcoll WITH HEADER LINE.
    DATA : fld(50) TYPE c,
           cnt(2) TYPE n,
          l_mstring(150).
    START-OF-SELECTION.
    *&        File uploading  from  xlsheet  to sap                                          *
      CALL FUNCTION 'TEXT_CONVERT_XLS_TO_SAP'
        EXPORTING
        I_FIELD_SEPERATOR        =
          i_line_header            =  'X'
          i_tab_raw_data           =  it_raw
          i_filename               =  'C:\Documents and Settings\sapthamm\Desktop\mm02.xls'
        TABLES
          i_tab_converted_data     = it_itab
       EXCEPTIONS
          conversion_failed        = 1
          OTHERS                   = 2.
      IF sy-subrc <> 0.
        MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
                WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
      ENDIF.
    *&        Splitting the Internal Table                                *
      LOOP AT t_data.
        SPLIT t_data-data AT cl_abap_char_utilities=>horizontal_tab INTO
           it_itab-matnr
           it_itab-mbrsh
           it_itab-mtart
           it_itab-werks
           it_itab-lgort
           it_itab-vkorg
           it_itab-vtweg
           it_itab-maktx
           it_itab-meins
           it_itab-matkl
           it_itab-spart
           it_itab-GEWEI
           it_itab-dwerk
           it_itab-versg
           it_itab-mtpos
           it_itab-mtvfp
           it_itab-tragr
           it_itab-ladgr
           it_itab-sernp
           it_itab-mprof
           it_itab-ekgrp
           it_itab-dismm
           it_itab-dispo
           it_itab-disls
           it_itab-mabst
           it_itab-beskz
           it_itab-sobsl
           it_itab-lgpro
           it_itab-dzeit
           it_itab-plifz
           it_itab-webaz
           it_itab-fhori
           it_itab-eisbe
           it_itab-strgr
           it_itab-vrmod
           it_itab-vint1
           it_itab-vint2
           it_itab-wzeit
           it_itab-sbdkz
           it_itab-bklas
        it_itab-vprsv
          it_itab-peinh
           it_itab-ekalr
           it_itab-losgr
        APPEND it_itab.
        CLEAR: it_itab,
               t_data-data.
      ENDLOOP.
    *perform open_dataset using dataset.
    *perform open_group.
    *do.
    *read dataset dataset into it_itab.
    *if sy-subrc <> 0. exit. endif.
    *&        it_itabing of Material Type-HALB                                  *
      LOOP AT it_itab.
        PERFORM bdc_dynpro      USING 'SAPLMGMM' '0060'.
        PERFORM bdc_field       USING 'BDC_CURSOR'
                                      'RMMG1-MATNR'.
        PERFORM bdc_field       USING 'BDC_OKCODE'
                                      '/00'.
        PERFORM bdc_field       USING 'RMMG1-MATNR'
                                      it_itab-matnr.
        PERFORM bdc_field       USING 'RMMG1-MBRSH'
                                      it_itab-mbrsh.
        PERFORM bdc_field       USING 'RMMG1-MTART'
                                      it_itab-mtart.
        PERFORM bdc_dynpro      USING 'SAPLMGMM' '0070'.
        PERFORM bdc_field       USING 'BDC_CURSOR'
                                      'MSICHTAUSW-DYTXT(17)'.
        PERFORM bdc_field       USING 'BDC_OKCODE'
                                      '=P+'.
        PERFORM bdc_field       USING 'MSICHTAUSW-KZSEL(01)'
                                      'X'.
        PERFORM bdc_field       USING 'MSICHTAUSW-KZSEL(02)'
                                      'X'.
        PERFORM bdc_field       USING 'MSICHTAUSW-KZSEL(04)'
                                      'X'.
        PERFORM bdc_field       USING 'MSICHTAUSW-KZSEL(05)'
                                      'X'.
        PERFORM bdc_field       USING 'MSICHTAUSW-KZSEL(06)'
                                      'X'.
        PERFORM bdc_field       USING 'MSICHTAUSW-KZSEL(08)'
                                      'X'.
        PERFORM bdc_field       USING 'MSICHTAUSW-KZSEL(09)'
                                      'X'.
        PERFORM bdc_field       USING 'MSICHTAUSW-KZSEL(12)'
                                      'X'.
        PERFORM bdc_field       USING 'MSICHTAUSW-KZSEL(13)'
                                      'X'.
        PERFORM bdc_field       USING 'MSICHTAUSW-KZSEL(14)'
                                      'X'.
        PERFORM bdc_field       USING 'MSICHTAUSW-KZSEL(15)'
                                      'X'.
        PERFORM bdc_field       USING 'MSICHTAUSW-KZSEL(17)'
                                      'X'.
        PERFORM bdc_dynpro      USING 'SAPLMGMM' '0070'.
        PERFORM bdc_field       USING 'BDC_CURSOR'
                                      'MSICHTAUSW-DYTXT(09)'.
        PERFORM bdc_field       USING 'BDC_OKCODE'
                                      '=ENTR'.
        PERFORM bdc_field       USING 'MSICHTAUSW-KZSEL(01)'
                                      'X'.
        PERFORM bdc_field       USING 'MSICHTAUSW-KZSEL(02)'
                                      'X'.
        PERFORM bdc_field       USING 'MSICHTAUSW-KZSEL(06)'
                                      'X'.
        PERFORM bdc_field       USING 'MSICHTAUSW-KZSEL(07)'
                                      'X'.
        PERFORM bdc_field       USING 'MSICHTAUSW-KZSEL(08)'
                                      'X'.
        PERFORM bdc_field       USING 'MSICHTAUSW-KZSEL(09)'
                                      'X'.
        PERFORM bdc_dynpro      USING 'SAPLMGMM' '0080'.
        PERFORM bdc_field       USING 'BDC_CURSOR'
                                      'RMMG1-VTWEG'.
        PERFORM bdc_field       USING 'BDC_OKCODE'
                                      '=ENTR'.
        PERFORM bdc_field       USING 'RMMG1-WERKS'
                                      it_itab-werks.
        PERFORM bdc_field       USING 'RMMG1-LGORT'
                                      it_itab-lgort.
        PERFORM bdc_field       USING 'RMMG1-VKORG'
                                      it_itab-vkorg.
        PERFORM bdc_field       USING 'RMMG1-VTWEG'
                                      it_itab-vtweg.
        PERFORM bdc_dynpro      USING 'SAPLMGMM' '4004'.
        PERFORM bdc_field       USING 'BDC_OKCODE'
                                      '/00'.
        PERFORM bdc_field       USING 'MAKT-MAKTX'
                                      it_itab-maktx.
        PERFORM bdc_field       USING 'BDC_CURSOR'
                                      'MARA-SPART'.
        PERFORM bdc_field       USING 'MARA-MEINS'
                                      it_itab-meins.
        PERFORM bdc_field       USING 'MARA-MATKL'
                                      it_itab-matkl.
        PERFORM bdc_field       USING 'MARA-SPART'
                                      it_itab-spart.
        PERFORM bdc_field       USING 'MARA-GEWEI'
                                      'kg'.
        PERFORM bdc_dynpro      USING 'SAPLMGMM' '4004'.
        PERFORM bdc_field       USING 'BDC_OKCODE'
                                      '/00'.
        PERFORM bdc_field       USING 'BDC_CURSOR'
                                      'MAKT-MAKTX'.
        PERFORM bdc_field       USING 'MAKT-MAKTX'
                                      it_itab-maktx.
        PERFORM bdc_dynpro      USING 'SAPLMGMM' '4000'.
        PERFORM bdc_field       USING 'BDC_OKCODE'
                                      '/00'.
        PERFORM bdc_field       USING 'MAKT-MAKTX'
                                      it_itab-maktx.
        PERFORM bdc_field       USING 'MARA-MEINS'
                                      it_itab-meins.
        PERFORM bdc_field       USING 'MARA-SPART'
                                      it_itab-spart.
        PERFORM bdc_field       USING 'MVKE-DWERK'
                                      it_itab-dwerk.
        PERFORM bdc_field       USING 'MARA-MATKL'
                                      it_itab-matkl.
        PERFORM bdc_field       USING 'MVKE-SKTOF'
                                      'X'.
        PERFORM bdc_field       USING 'BDC_CURSOR'
                                      'MG03STEUER-TAXKM(02)'.
        PERFORM bdc_field       USING 'MG03STEUER-TAXKM(01)'
                                      '0'.
        PERFORM bdc_field       USING 'MG03STEUER-TAXKM(02)'
                                      '1'.
        PERFORM bdc_dynpro      USING 'SAPLMGMM' '4200'.
        PERFORM bdc_field       USING 'BDC_OKCODE'
                                      '/00'.
    *perform bdc_field       using 'MAKT-MAKTX'
                                 it_itab-MAKTX_040.
    *perform bdc_field       using 'BDC_CURSOR'
                                 'MG03STEUER-TAXKM(05)'.
        PERFORM bdc_field       USING 'MG03STEUER-TAXKM(03)'
                                      '1'.
        PERFORM bdc_field       USING 'MG03STEUER-TAXKM(04)'
                                      '1'.
        PERFORM bdc_field       USING 'MG03STEUER-TAXKM(05)'
                                      '0'.
        PERFORM bdc_dynpro      USING 'SAPLMGMM' '4000'.
        PERFORM bdc_field       USING 'BDC_OKCODE'
                                      '/00'.
        PERFORM bdc_field       USING 'BDC_CURSOR'
                                      'MAKT-MAKTX'.
        PERFORM bdc_field       USING 'MAKT-MAKTX'
                                      it_itab-maktx.
        PERFORM bdc_field       USING 'MARA-MEINS'
                                      it_itab-meins.
        PERFORM bdc_field       USING 'MARA-SPART'
                                      it_itab-spart.
        PERFORM bdc_field       USING 'MVKE-DWERK'
                                      it_itab-dwerk.
        PERFORM bdc_field       USING 'MARA-MATKL'
                                      it_itab-matkl.
        PERFORM bdc_field       USING 'MVKE-SKTOF'
                                      'X'.
        PERFORM bdc_dynpro      USING 'SAPLMGMM' '4000'.
        PERFORM bdc_field       USING 'BDC_OKCODE'
                                      '/00'.
        PERFORM bdc_field       USING 'MAKT-MAKTX'
                                      it_itab-maktx.
        PERFORM bdc_field       USING 'BDC_CURSOR'
                                      'MVKE-MTPOS'.
        PERFORM bdc_field       USING 'MVKE-VERSG'
                                      it_itab-versg.
        PERFORM bdc_field       USING 'MVKE-MTPOS'
                                      it_itab-mtpos.
        PERFORM bdc_dynpro      USING 'SAPLMGMM' '4000'.
        PERFORM bdc_field       USING 'BDC_OKCODE'
                                      '/00'.
        PERFORM bdc_field       USING 'MAKT-MAKTX'
                                      it_itab-maktx.
        PERFORM bdc_field       USING 'MARA-MEINS'
                                      it_itab-meins.
        PERFORM bdc_field       USING 'MARA-GEWEI'
                                      'KG'.
        PERFORM bdc_field       USING 'MARC-MTVFP'
                                      it_itab-mtvfp.
        PERFORM bdc_field       USING 'MARA-TRAGR'
                                      it_itab-tragr.
        PERFORM bdc_field       USING 'MARC-LADGR'
                                      it_itab-ladgr.
        PERFORM bdc_field       USING 'BDC_CURSOR'
                                      'MARC-SERNP'.
        PERFORM bdc_field       USING 'MARC-SERNP'
                                      it_itab-sernp.
        PERFORM bdc_dynpro      USING 'SAPLMGMM' '4040'.
        PERFORM bdc_field       USING 'BDC_OKCODE'
                                      '=LTEX'.
        PERFORM bdc_field       USING 'MAKT-MAKTX'
                                      it_itab-maktx.
        PERFORM bdc_dynpro      USING 'SAPLSTXX' '1100'.
        PERFORM bdc_field       USING 'BDC_CURSOR'
                                      'RSTXT-TXLINE(02)'.
        PERFORM bdc_field       USING 'BDC_OKCODE'
                                      '=TXVB'.
        PERFORM bdc_field       USING 'RSTXT-TXLINE(02)'
                                      'pcb assembly'.
        PERFORM bdc_dynpro      USING 'SAPLSTXX' '1100'.
        PERFORM bdc_field       USING 'BDC_CURSOR'
                                      'RSTXT-TXLINE(02)'.
        PERFORM bdc_field       USING 'BDC_OKCODE'
                                      '=TXBA'.
        PERFORM bdc_dynpro      USING 'SAPLMGMM' '4040'.
        PERFORM bdc_field       USING 'BDC_OKCODE'
                                      '=SP09'.
        PERFORM bdc_field       USING 'MAKT-MAKTX'
                                      it_itab-maktx.
        PERFORM bdc_dynpro      USING 'SAPLMGMM' '4000'.
        PERFORM bdc_field       USING 'BDC_OKCODE'
                                      '/00'.
        PERFORM bdc_field       USING 'MAKT-MAKTX'
                                      it_itab-maktx.
        PERFORM bdc_field       USING 'MARA-MEINS'
                                      it_itab-meins.
        PERFORM bdc_field       USING 'MARC-EKGRP'
                                      it_itab-ekgrp.
        PERFORM bdc_field       USING 'MARA-MATKL'
                                      it_itab-matkl.
        PERFORM bdc_field       USING 'MARC-KORDB'
                                      'X'.
        PERFORM bdc_field       USING 'BDC_CURSOR'
                                      'MARA-MPROF'.
        PERFORM bdc_field       USING 'MARA-MPROF'
                                      it_itab-mprof.
        PERFORM bdc_dynpro      USING 'SAPLMGMM' '4000'.
        PERFORM bdc_field       USING 'BDC_OKCODE'
                                      '/00'.
        PERFORM bdc_field       USING 'MAKT-MAKTX'
                                      it_itab-maktx.
        PERFORM bdc_field       USING 'MARA-MEINS'
                                      it_itab-meins.
        PERFORM bdc_field       USING 'MARC-EKGRP'
                                      it_itab-ekgrp.
        PERFORM bdc_field       USING 'MARC-DISMM'
                                      it_itab-dismm.
        PERFORM bdc_field       USING 'MARC-DISPO'
                                      it_itab-dispo.
        PERFORM bdc_field       USING 'BDC_CURSOR'
                                      'MARC-MABST'.
        PERFORM bdc_field       USING 'MARC-DISLS'
                                      it_itab-disls.
        PERFORM bdc_field       USING 'MARC-MABST'
                                      it_itab-mabst.
        PERFORM bdc_dynpro      USING 'SAPLMGMM' '4000'.
        PERFORM bdc_field       USING 'BDC_OKCODE'
                                      '/00'.
        PERFORM bdc_field       USING 'MAKT-MAKTX'
                                      it_itab-maktx.
        PERFORM bdc_field       USING 'MARC-BESKZ'
                                      it_itab-beskz.
        PERFORM bdc_field       USING 'MARC-SOBSL'
                                      it_itab-sobsl.
        PERFORM bdc_field       USING 'MARC-LGPRO'
                                      it_itab-lgpro.
        if it_itab-sernp = 'TJSL'.
        PERFORM bdc_field       USING 'MARC-RGEKZ'
        ELSE.
        PERFORM bdc_field       USING 'MARC-RGEKZ'
                                      '1'.
        ENDIF.
        PERFORM bdc_field       USING 'MARC-DZEIT'
                                      it_itab-dzeit.
        PERFORM bdc_field       USING 'MARC-PLIFZ'
                                      it_itab-plifz.
        PERFORM bdc_field       USING 'MARC-WEBAZ'
                                      it_itab-webaz.
        PERFORM bdc_field       USING 'MARC-FHORI'
                                      it_itab-fhori.
        PERFORM bdc_field       USING 'MARC-EISBE'
                                      it_itab-eisbe.
        PERFORM bdc_dynpro      USING 'SAPLMGMM' '4000'.
        PERFORM bdc_field       USING 'BDC_OKCODE'
                                      '/00'.
        PERFORM bdc_field       USING 'MAKT-MAKTX'
                                      it_itab-maktx.
        PERFORM bdc_field       USING 'MARC-PERKZ'
                                      'M'.
        PERFORM bdc_field       USING 'MARC-STRGR'
                                      it_itab-strgr.
        PERFORM bdc_field       USING 'MARC-VRMOD'
                                      it_itab-vrmod.
        PERFORM bdc_field       USING 'MARC-VINT1'
                                      it_itab-vint1.
        PERFORM bdc_field       USING 'MARC-VINT2'
                                      it_itab-vint2.
        PERFORM bdc_field       USING 'BDC_CURSOR'
                                      'MARC-WZEIT'.
        PERFORM bdc_field       USING 'MARC-MTVFP'
                                      it_itab-mtvfp.
        PERFORM bdc_field       USING 'MARC-WZEIT'
                                      it_itab-wzeit.
        PERFORM bdc_dynpro      USING 'SAPLMGMM' '4000'.
        PERFORM bdc_field       USING 'BDC_OKCODE'
                                      '/00'.
        PERFORM bdc_field       USING 'MAKT-MAKTX'
                                      it_itab-maktx.
        PERFORM bdc_field       USING 'BDC_CURSOR'
                                      'MARC-SBDKZ'.
        PERFORM bdc_field       USING 'MARC-SBDKZ'
                                      it_itab-sbdkz.
        PERFORM bdc_dynpro      USING 'SAPLMGMM' '4000'.
        PERFORM bdc_field       USING 'BDC_OKCODE'
                                      '/00'.
        PERFORM bdc_field       USING 'BDC_CURSOR'
                                      'MAKT-MAKTX'.
        PERFORM bdc_field       USING 'MAKT-MAKTX'
                                      it_itab-maktx.
        PERFORM bdc_field       USING 'MARA-MEINS'
                                      it_itab-meins.
         PERFORM bdc_field       USING 'MARC-FEVOR'
                                       '001'.
        PERFORM bdc_field       USING 'MARC-LGPRO'
                                      it_itab-lgpro.
        PERFORM bdc_field       USING 'MARC-SERNP'
                                      it_itab-sernp.
        PERFORM bdc_field       USING 'MARC-DZEIT'
                                      it_itab-dzeit.
        PERFORM bdc_dynpro      USING 'SAPLMGMM' '4000'.
        PERFORM bdc_field       USING 'BDC_OKCODE'
                                      '/00'.
        PERFORM bdc_field       USING 'BDC_CURSOR'
                                      'MAKT-MAKTX'.
        PERFORM bdc_field       USING 'MAKT-MAKTX'
                                      it_itab-maktx.
        PERFORM bdc_field       USING 'MARA-MEINS'
                                      it_itab-meins.
    *perform bdc_field       using 'MARA-IPRKZ'
                                  it_itab-IPRKZ.
        PERFORM bdc_dynpro      USING 'SAPLMGMM' '4000'.
        PERFORM bdc_field       USING 'BDC_OKCODE'
                                      '/00'.
        PERFORM bdc_field       USING 'BDC_CURSOR'
                                      'MAKT-MAKTX'.
        PERFORM bdc_field       USING 'MAKT-MAKTX'
                                      it_itab-maktx.
        PERFORM bdc_field       USING 'MARA-GEWEI'
                                      'KG'.
        PERFORM bdc_field       USING 'MARC-SERNP'
                                      it_itab-sernp.
        PERFORM bdc_dynpro      USING 'SAPLMGMM' '4000'.
        PERFORM bdc_field       USING 'BDC_OKCODE'
                                      '/00'.
        PERFORM bdc_field       USING 'MAKT-MAKTX'
                                      it_itab-maktx.
        PERFORM bdc_field       USING 'MARA-MEINS'
                                      it_itab-meins.
        PERFORM bdc_field       USING 'MARA-SPART'
                                      it_itab-spart.
        PERFORM bdc_field       USING 'BDC_CURSOR'
                                      'MBEW-VPRSV'.
        PERFORM bdc_field       USING 'MBEW-BKLAS'
                                      it_itab-bklas.
    *perform bdc_field       using 'MBEW-EKLAS'
                                 it_itab-EKLAS.
        PERFORM bdc_field       USING 'MBEW-VPRSV'
                                      'v'.
        PERFORM bdc_field       USING 'MBEW-PEINH'
                                      '1'.
    perform bdc_field       using 'MBEW-VERPR'
                                  it_itab-VERPR.
        PERFORM bdc_dynpro      USING 'SAPLMGMM' '4000'.
        PERFORM bdc_field       USING 'BDC_OKCODE'
                                      '/00'.
        PERFORM bdc_field       USING 'BDC_CURSOR'
                                      'MAKT-MAKTX'.
        PERFORM bdc_field       USING 'MAKT-MAKTX'
                                      it_itab-maktx.
        PERFORM bdc_dynpro      USING 'SAPLMGMM' '4000'.
        PERFORM bdc_field       USING 'BDC_OKCODE'
                                      '/00'.
        PERFORM bdc_field       USING 'BDC_CURSOR'
                                      'MAKT-MAKTX'.
        PERFORM bdc_field       USING 'MAKT-MAKTX'
                                      it_itab-maktx.
        PERFORM bdc_field       USING 'MARA-MEINS'
                                      it_itab-meins.
        PERFORM bdc_field       USING 'MBEW-EKALR'
                                      'X'.
        PERFORM bdc_field       USING 'MARC-AWSLS'
                                      '000001'.
        PERFORM bdc_field       USING 'MARC-LOSGR'
                                      '1'.
        PERFORM bdc_dynpro      USING 'SAPLMGMM' '4000'.
        PERFORM bdc_field       USING 'BDC_OKCODE'
                                      '/00'.
        PERFORM bdc_field       USING 'MAKT-MAKTX'
                                      it_itab-maktx.
        PERFORM bdc_field       USING 'BDC_CURSOR'
                                      'MBEW-ZPLPR'.
    *perform bdc_field       using 'MBEW-ZPLPR'
                                 '6000'.
        PERFORM bdc_field       USING 'MBEW-BKLAS'
                                      it_itab-bklas.
        PERFORM bdc_field       USING 'MBEW-VPRSV'
                                      'V'.
        PERFORM bdc_field       USING 'MBEW-PEINH'
                                       '1'.
        PERFORM bdc_dynpro      USING 'SAPLSPO1' '0300'.
        PERFORM bdc_field       USING 'BDC_OKCODE'
                                      '=YES'.
        CALL TRANSACTION 'MM01' USING bdcdata MODE 'A'
                                              UPDATE 'S'
                                             MESSAGES  INTO it_msgtab.
        CLEAR bdcdata[].
        CLEAR it_itab.
    PERFORM error.
      ENDLOOP.
    *&        Declaration of Error Handling                               *
       i
       it_msgtab1-msgv1 =  it_msgtab-msgv1.
       it_msgtab1-msgv2 =  it_msgtab-msgv2.
       it_msgtab1-msgv3 =  it_msgtab-msgv3.
       APPEND it_msgtab1.
    ENDLOOP.
    download error message to a file by using function module
      CALL FUNCTION 'GUI_DOWNLOAD'
        EXPORTING
       BIN_FILESIZE                    =
          filename                        = 'C:\Documents and Settings\sapthamm\Desktop\error.xls'
         filetype                        = 'ASC'
       APPEND                          = ' '
         write_field_separator           = 'X'
       HEADER                          = '00'
       TRUNC_TRAILING_BLANKS           = ' '
       WRITE_LF                        = 'X'
       COL_SELECT                      = ' '
       COL_SELECT_MASK                 = ' '
       DAT_MODE                        = ' '
       CONFIRM_OVERWRITE               = ' '
       NO_AUTH_CHECK                   = ' '
       CODEPAGE                        = ' '
       IGNORE_CERR                     = ABAP_TRUE
       REPLACEMENT                     = '#'
       WRITE_BOM                       = ' '
       TRUNC_TRAILING_BLANKS_EOL       = 'X'
       WK1_N_FORMAT                    = ' '
       WK1_N_SIZE                      = ' '
       WK1_T_FORMAT                    = ' '
       WK1_T_SIZE                      = ' '
       WRITE_EOL                       = ABAP_TRUE
    IMPORTING
       FILELENGTH                      =
        TABLES
          data_tab                        = it_mess
       FIELDNAMES                      =
    EXCEPTIONS
       FILE_WRITE_ERROR                = 1
       NO_BATCH                        = 2
       GUI_REFUSE_FILETRANSFER         = 3
       INVALID_TYPE                    = 4
       NO_AUTHORITY                    = 5
       UNKNOWN_ERROR                   = 6
       HEADER_NOT_ALLOWED              = 7
       SEPARATOR_NOT_ALLOWED           = 8
       FILESIZE_NOT_ALLOWED            = 9
       HEADER_TOO_LONG                 = 10
       DP_ERROR_CREATE                 = 11
       DP_ERROR_SEND                   = 12
       DP_ERROR_WRITE                  = 13
       UNKNOWN_DP_ERROR                = 14
       ACCESS_DENIED                   = 15
       DP_OUT_OF_MEMORY                = 16
       DISK_FULL                       = 17
       DP_TIMEOUT                      = 18
       FILE_NOT_FOUND                  = 19
       DATAPROVIDER_EXCEPTION          = 20
       CONTROL_FLUSH_ERROR             = 21
       OTHERS                          = 22
      IF sy-subrc <> 0.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
            WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
      ENDIF.
    *&      Form  BDC_DYNPRO
          text
         -->PROGRAM    text
         -->DYNPRO     text
    FORM bdc_dynpro USING program dynpro.
      CLEAR bdcdata.
      bdcdata-program  = program.
      bdcdata-dynpro   = dynpro.
      bdcdata-dynbegin = 'X'.
      APPEND bdcdata.
    ENDFORM.                    "BDC_DYNPRO
           Insert field                                                  *
    FORM bdc_field USING fnam fval.
    IF FVAL <> .
      CLEAR bdcdata.
      bdcdata-fnam = fnam.
      bdcdata-fval = fval.
      APPEND bdcdata.
    ENDIF.
    ENDFORM.                    "BDC_FIELD
      form error.
      LOOP AT it_msgtab.
        IF it_msgtab-msgtyp = 'E'.
          SELECT SINGLE * FROM t100 WHERE sprsl = it_msgtab-msgspra
                                    AND   arbgb = it_msgtab-msgid
                                    AND   msgnr = it_msgtab-msgnr.
          IF sy-subrc = 0.
            l_mstring = t100-text.
            IF l_mstring CS '&1'.
              REPLACE '&1' WITH it_msgtab-msgv1 INTO l_mstring.
              REPLACE '&2' WITH it_msgtab-msgv2 INTO l_mstring.
              REPLACE '&3' WITH it_msgtab-msgv3 INTO l_mstring.
              REPLACE '&4' WITH it_msgtab-msgv4 INTO l_mstring.
            ELSE.
              REPLACE '&' WITH it_msgtab-msgv1 INTO l_mstring.
              REPLACE '&' WITH it_msgtab-msgv2 INTO l_mstring.
              REPLACE '&' WITH it_msgtab-msgv3 INTO l_mstring.
              REPLACE '&' WITH it_msgtab-msgv4 INTO l_mstring.
            ENDIF.
            CONDENSE l_mstring.
            it_mess-msgtyp = it_msgtab-msgtyp.
            it_mess-lms = l_mstring.
            it_mess-msgv1 = it_msgtab-msgv1.
            APPEND it_mess.
           WRITE: / it_msgtab-msgtyp, l_mstring(150).
          ELSE.
           WRITE: / it_msgtab.
            it_mess-msgtyp = it_msgtab-msgtyp.
            it_mess-lms = l_mstring.
            it_mess-msgv1 = it_msgtab-msgv1.
            APPEND it_mess.
          ENDIF.
        ENDIF.
      ENDLOOP.
    ENDFORM.
    LOOP AT it_msgtab.
    Rewords some points.
    rgds,
    P.Naganjana reddy

  • BDC for existing record in table control

    Hi,
    I have a requirement to change existing records in table control through BDC. Is there any way I can choose the respective record from Table Control through BDC dynamically.
    Regards
    Akash

    /J4I/015PER, this transaction is used for adding permits to Operation in WEC. It has list of operations in Table Control. Permit can be added for choosing the operation from table control.
    Our custom program is designed to add permits for the operation. So if I have to use the above transaction for adding permits, then first I have to choose the correct operation from the table control and then add permit.

  • Bdc recording of  screen having table control

    hi all,
        how to trap scroll in bdc recording of table control.
    regards deepak

    Hi..,
    <b>I found this program in one of the BDC links  !! Hope this helps u !!</b>
    Following is a sample code of handling table control in BDC.
    REPORT Y730_BDC5 .
    *HANDLING TABLE CONTROL IN BDC
    DATA : BEGIN OF IT_DUMMY OCCURS 0,
           DUMMY(100) TYPE C,
           END OF IT_DUMMY.
    DATA : BEGIN OF IT_XK01 OCCURS 0,
           LIFNR(10) TYPE C,
           BUKRS(4)  TYPE C,
           EKORG(4)  TYPE C,
           KTOKK(4)  TYPE C,
           NAME1(30) TYPE C,
           SORTL(10) TYPE C,
           LAND1(3)  TYPE C,
           SPRAS(2)  TYPE C,
           AKONT(6)  TYPE C,
           FDGRV(2)  TYPE C,
           WAERS(3)  TYPE C,
           END OF IT_XK01,
           BEGIN OF IT_BANK OCCURS 0,
           BANKS(3)  TYPE C,
           BANKL(10) TYPE C,
           BANKN(10) TYPE C,
           KOINH(30) TYPE C,
           LIFNR(10) TYPE C,
           END OF IT_BANK.
    DATA : IT_BDCDATA LIKE BDCDATA OCCURS 0 WITH HEADER LINE,
           IT_BDCMSGCOLL LIKE BDCMSGCOLL OCCURS 0 WITH HEADER LINE.
    CALL FUNCTION 'WS_UPLOAD'
    EXPORTING
       FILENAME                      = 'C:\VENDOR.TXT'
       FILETYPE                      = 'ASC'
    TABLES
       DATA_TAB                      = IT_DUMMY.
    LOOP AT IT_DUMMY.
      IF IT_DUMMY-DUMMY+0(2) = '11'.
        IT_XK01-LIFNR = IT_DUMMY-DUMMY+2(10).
        IT_XK01-BUKRS = IT_DUMMY-DUMMY+12(4).
        IT_XK01-EKORG = IT_DUMMY-DUMMY+16(4).
        IT_XK01-KTOKK = IT_DUMMY-DUMMY+20(4).
        IT_XK01-NAME1 = IT_DUMMY-DUMMY+24(30).
        IT_XK01-SORTL = IT_DUMMY-DUMMY+54(10).
        IT_XK01-LAND1 = IT_DUMMY-DUMMY+64(3).
        IT_XK01-SPRAS = IT_DUMMY-DUMMY+67(2).
        IT_XK01-AKONT = IT_DUMMY-DUMMY+69(6).
        IT_XK01-FDGRV = IT_DUMMY-DUMMY+75(2).
        IT_XK01-WAERS = IT_DUMMY-DUMMY+77(3).
        APPEND IT_XK01.
      ELSE.
        IT_BANK-BANKS = IT_DUMMY-DUMMY+2(3).
        IT_BANK-BANKL = IT_DUMMY-DUMMY+5(10).
        IT_BANK-BANKN = IT_DUMMY-DUMMY+15(10).
        IT_BANK-KOINH = IT_DUMMY-DUMMY+25(30).
        IT_BANK-LIFNR = IT_DUMMY-DUMMY+55(10).
        APPEND IT_BANK.
      ENDIF.
    ENDLOOP.
    LOOP AT IT_XK01.
    REFRESH IT_BDCDATA.
    perform bdc_dynpro      using 'SAPMF02K' '0100'.
    perform bdc_field       using 'BDC_CURSOR'
                                  'RF02K-REF_LIFNR'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '/00'.
    perform bdc_field       using 'RF02K-LIFNR'
                                  IT_XK01-LIFNR.
    perform bdc_field       using 'RF02K-BUKRS'
                                  IT_XK01-BUKRS.
    perform bdc_field       using 'RF02K-EKORG'
                                  IT_XK01-EKORG.
    perform bdc_field       using 'RF02K-KTOKK'
                                  IT_XK01-KTOKK.
    perform bdc_dynpro      using 'SAPMF02K' '0110'.
    perform bdc_field       using 'BDC_CURSOR'
                                  'LFA1-TELX1'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '/00'.
    perform bdc_field       using 'LFA1-NAME1'
                                  IT_XK01-NAME1.
    perform bdc_field       using 'LFA1-SORTL'
                                  IT_XK01-SORTL.
    perform bdc_field       using 'LFA1-LAND1'
                                  IT_XK01-LAND1.
    perform bdc_field       using 'LFA1-SPRAS'
                                  IT_XK01-SPRAS.
    perform bdc_dynpro      using 'SAPMF02K' '0120'.
    perform bdc_field       using 'BDC_CURSOR'
                                  'LFA1-KUNNR'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '/00'.
    perform bdc_dynpro      using 'SAPMF02K' '0130'.
    perform bdc_field       using 'BDC_CURSOR'
                                  'LFBK-KOINH(02)'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '=ENTR'.
    DATA : FNAM(20) TYPE C,
           IDX      TYPE C.
      MOVE 1 TO IDX.
    LOOP AT IT_BANK WHERE LIFNR = IT_XK01-LIFNR.
      CONCATENATE 'LFBK-BANKS(' IDX ')' INTO FNAM.
      perform bdc_field       using FNAM
                                    IT_BANK-BANKS.
      CONCATENATE 'LFBK-BANKL(' IDX ')' INTO FNAM.
      perform bdc_field       using FNAM
                                    IT_BANK-BANKL.
      CONCATENATE 'LFBK-BANKN(' IDX ')' INTO FNAM.
      perform bdc_field       using FNAM
                                    IT_BANK-BANKN.
      CONCATENATE 'LFBK-KOINH(' IDX ')' INTO FNAM.
      perform bdc_field       using FNAM
                                    IT_BANK-KOINH.
      IDX = IDX + 1.
    ENDLOOP.
    perform bdc_dynpro      using 'SAPMF02K' '0130'.
    perform bdc_field       using 'BDC_CURSOR'
                                  'LFBK-BANKS(01)'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '=ENTR'.
    perform bdc_dynpro      using 'SAPMF02K' '0210'.
    perform bdc_field       using 'BDC_CURSOR'
                                  'LFB1-FDGRV'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '/00'.
    perform bdc_field       using 'LFB1-AKONT'
                                  IT_XK01-AKONT.
    perform bdc_field       using 'LFB1-FDGRV'
                                  IT_XK01-FDGRV.
    perform bdc_dynpro      using 'SAPMF02K' '0215'.
    perform bdc_field       using 'BDC_CURSOR'
                                  'LFB1-ZTERM'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '/00'.
    perform bdc_dynpro      using 'SAPMF02K' '0220'.
    perform bdc_field       using 'BDC_CURSOR'
                                  'LFB5-MAHNA'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '/00'.
    perform bdc_dynpro      using 'SAPMF02K' '0310'.
    perform bdc_field       using 'BDC_CURSOR'
                                  'LFM1-WAERS'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '/00'.
    perform bdc_field       using 'LFM1-WAERS'
                                  IT_XK01-WAERS.
    perform bdc_dynpro      using 'SAPMF02K' '0320'.
    perform bdc_field       using 'BDC_CURSOR'
                                  'WYT3-PARVW(01)'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '=ENTR'.
    perform bdc_dynpro      using 'SAPLSPO1' '0300'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '=YES'.
    CALL TRANSACTION 'XK01' USING IT_BDCDATA
                            MODE  'A'
                           UPDATE 'S'
                         MESSAGES INTO IT_BDCMSGCOLL.
    ENDLOOP.
    FORM BDC_DYNPRO USING PROG SCR.
      CLEAR IT_BDCDATA.
      IT_BDCDATA-PROGRAM = PROG.
      IT_BDCDATA-DYNPRO  = SCR.
      IT_BDCDATA-DYNBEGIN = 'X'.
      APPEND IT_BDCDATA.
    ENDFORM.
    FORM BDC_FIELD USING FNAM FVAL.
      CLEAR IT_BDCDATA.
      IT_BDCDATA-FNAM = FNAM.
      IT_BDCDATA-FVAL  = FVAL.
      APPEND IT_BDCDATA.
    ENDFORM.
    regards,
    sai ramesh

  • BDC program for rebate with table controls

    Hi Friends,
    Iam Doing  bdc program for Rebate(TCODE VBO1) with table controls..
    can u give the solutions for table controls...
    if anybody having the code..please send me..
    Thanks & Advance,
    sampath

    hi,
    check this example it may help you.
    REPORT  ZSR_BDC_TBCTRL
            NO STANDARD PAGE HEADING LINE-SIZE 255.
    TABLES : RF02K,LFA1,LFBK.
    DATA : BEGIN OF IT_VEN OCCURS 0,
          LIFNR LIKE RF02K-LIFNR,
          KTOKK LIKE RF02K-KTOKK,
          NAME1 LIKE LFA1-NAME1,
          SORTL LIKE LFA1-SORTL,
          LAND1 LIKE LFA1-LAND1,
          SPRAS LIKE LFA1-SPRAS,
          BANKS(6) TYPE C,
          BANKL(17) TYPE C,
          BANKN(19) TYPE C,
          END OF IT_VEN.
    DATA : BEGIN OF BANKS OCCURS 0,
           BANKS LIKE LFBK-BANKS,
           END OF BANKS,
           BEGIN OF BANKL OCCURS 0,
           BANKL LIKE LFBK-BANKL,
           END OF BANKL,
           BEGIN OF BANKN OCCURS 0,
           BANKN LIKE LFBK-BANKN,
           END OF BANKN.
    DATA : FLD(20) TYPE C,
           CNT(2) TYPE N.
    DATA : BDCTAB LIKE BDCDATA OCCURS 0 WITH HEADER LINE.
    INCLUDE BDCRECX1.
    START-OF-SELECTION.
    CALL FUNCTION 'GUI_UPLOAD'
      EXPORTING
        FILENAME                      = 'Z:\sr.TXT'
       FILETYPE                      = 'ASC'
       HAS_FIELD_SEPARATOR           = 'X'
      HEADER_LENGTH                 = 0
      READ_BY_LINE                  = 'X'
      DAT_MODE                      = ' '
      CODEPAGE                      = ' '
      IGNORE_CERR                   = ABAP_TRUE
      REPLACEMENT                   = '#'
      CHECK_BOM                     = ' '
    IMPORTING
      FILELENGTH                    =
      HEADER                        =
      TABLES
        DATA_TAB                      = IT_VEN
    EXCEPTIONS
      FILE_OPEN_ERROR               = 1
      FILE_READ_ERROR               = 2
      NO_BATCH                      = 3
      GUI_REFUSE_FILETRANSFER       = 4
      INVALID_TYPE                  = 5
      NO_AUTHORITY                  = 6
      UNKNOWN_ERROR                 = 7
      BAD_DATA_FORMAT               = 8
      HEADER_NOT_ALLOWED            = 9
      SEPARATOR_NOT_ALLOWED         = 10
      HEADER_TOO_LONG               = 11
      UNKNOWN_DP_ERROR              = 12
      ACCESS_DENIED                 = 13
      DP_OUT_OF_MEMORY              = 14
      DISK_FULL                     = 15
      DP_TIMEOUT                    = 16
      OTHERS                        = 17
    IF SY-SUBRC <> 0.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
            WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
    ENDIF.
    PERFORM OPEN_GROUP.
    LOOP AT IT_VEN.
        REFRESH BDCDATA.
        REFRESH : BANKS,BANKL,BANKN..
        SPLIT IT_VEN-BANKS AT ',' INTO TABLE BANKS.
        SPLIT IT_VEN-BANKL AT ',' INTO TABLE BANKL.
        SPLIT IT_VEN-BANKN AT ',' INTO TABLE BANKN.
    PERFORM BDC_DYNPRO      USING 'SAPMF02K' '0100'.
    PERFORM BDC_FIELD       USING 'BDC_CURSOR'
                                  'RF02K-KTOKK'.
    PERFORM BDC_FIELD       USING 'BDC_OKCODE'
                                  '/00'.
    PERFORM BDC_FIELD       USING 'RF02K-LIFNR'
                                  IT_VEN-LIFNR.
    PERFORM BDC_FIELD       USING 'RF02K-KTOKK'
                                  IT_VEN-KTOKK.
    PERFORM BDC_DYNPRO      USING 'SAPMF02K' '0110'.
    PERFORM BDC_FIELD       USING 'BDC_CURSOR'
                                  'LFA1-SPRAS'.
    PERFORM BDC_FIELD       USING 'BDC_OKCODE'
                                  '/00'.
    PERFORM BDC_FIELD       USING 'LFA1-NAME1'
                                  IT_VEN-NAME1.
    PERFORM BDC_FIELD       USING 'LFA1-SORTL'
                                  IT_VEN-SORTL.
    PERFORM BDC_FIELD       USING 'LFA1-LAND1'
                                  IT_VEN-LAND1.
    PERFORM BDC_FIELD       USING 'LFA1-SPRAS'
                                  IT_VEN-SPRAS.
    PERFORM BDC_DYNPRO      USING 'SAPMF02K' '0120'.
    PERFORM BDC_FIELD       USING 'BDC_CURSOR'
                                  'LFA1-KUNNR'.
    PERFORM BDC_FIELD       USING 'BDC_OKCODE'
                                  '/00'.
    PERFORM BDC_DYNPRO      USING 'SAPMF02K' '0130'.
    PERFORM BDC_FIELD       USING 'BDC_CURSOR'
                                  'LFBK-BANKN(02)'.
    PERFORM BDC_FIELD       USING 'BDC_OKCODE'
                                  '=ENTR'.
    *perform bdc_field       using 'LFBK-BANKS(01)'
                                 'DE'.
    *perform bdc_field       using 'LFBK-BANKS(02)'
                                 'DE'.
    *perform bdc_field       using 'LFBK-BANKL(01)'
                                 '10020030'.
    *perform bdc_field       using 'LFBK-BANKL(02)'
                                 '67270003'.
    *perform bdc_field       using 'LFBK-BANKN(01)'
                                 '12345'.
    *perform bdc_field       using 'LFBK-BANKN(02)'
                                 '66666'.
    MOVE 1 TO CNT.
        LOOP AT BANKS.
          CONCATENATE 'LFBK-BANKS(' CNT ') ' INTO FLD.
          PERFORM BDC_FIELD USING FLD BANKS-BANKS.
          CNT = CNT + 1.
        ENDLOOP.
        MOVE 1 TO CNT.
        LOOP AT BANKL.
          CONCATENATE 'LFBK-BANKL(' CNT ') ' INTO FLD.
          PERFORM BDC_FIELD USING FLD BANKL-BANKL.
          CNT = CNT + 1.
        ENDLOOP.
        MOVE 1 TO CNT.
        LOOP AT BANKN.
          CONCATENATE 'LFBK-BANKN(' CNT ') ' INTO FLD.
          PERFORM BDC_FIELD USING FLD BANKN-BANKN.
          CNT = CNT + 1.
        ENDLOOP.
    PERFORM BDC_DYNPRO      USING 'SAPMF02K' '0130'.
    PERFORM BDC_FIELD       USING 'BDC_CURSOR'
                                  'LFBK-BANKS(01)'.
    PERFORM BDC_FIELD       USING 'BDC_OKCODE'
                                  '=ENTR'.
    PERFORM BDC_DYNPRO      USING 'SAPLSPO1' '0300'.
    PERFORM BDC_FIELD       USING 'BDC_OKCODE'
                                  '=YES'.
    PERFORM BDC_TRANSACTION USING 'XK01'.
    ENDLOOP.
    PERFORM CLOSE_GROUP.&----
    *& Report  ZSR_BDC_TBCTRL
    REPORT  ZSR_BDC_TBCTRL
            NO STANDARD PAGE HEADING LINE-SIZE 255.
    TABLES : RF02K,LFA1,LFBK.
    DATA : BEGIN OF IT_VEN OCCURS 0,
          LIFNR LIKE RF02K-LIFNR,
          KTOKK LIKE RF02K-KTOKK,
          NAME1 LIKE LFA1-NAME1,
          SORTL LIKE LFA1-SORTL,
          LAND1 LIKE LFA1-LAND1,
          SPRAS LIKE LFA1-SPRAS,
          BANKS(6) TYPE C,
          BANKL(17) TYPE C,
          BANKN(19) TYPE C,
          END OF IT_VEN.
    DATA : BEGIN OF BANKS OCCURS 0,
           BANKS LIKE LFBK-BANKS,
           END OF BANKS,
           BEGIN OF BANKL OCCURS 0,
           BANKL LIKE LFBK-BANKL,
           END OF BANKL,
           BEGIN OF BANKN OCCURS 0,
           BANKN LIKE LFBK-BANKN,
           END OF BANKN.
    DATA : FLD(20) TYPE C,
           CNT(2) TYPE N.
    DATA : BDCTAB LIKE BDCDATA OCCURS 0 WITH HEADER LINE.
    INCLUDE BDCRECX1.
    START-OF-SELECTION.
    CALL FUNCTION 'GUI_UPLOAD'
      EXPORTING
        FILENAME                      = 'Z:\sr.TXT'
       FILETYPE                      = 'ASC'
       HAS_FIELD_SEPARATOR           = 'X'
      HEADER_LENGTH                 = 0
      READ_BY_LINE                  = 'X'
      DAT_MODE                      = ' '
      CODEPAGE                      = ' '
      IGNORE_CERR                   = ABAP_TRUE
      REPLACEMENT                   = '#'
      CHECK_BOM                     = ' '
    IMPORTING
      FILELENGTH                    =
      HEADER                        =
      TABLES
        DATA_TAB                      = IT_VEN
    EXCEPTIONS
      FILE_OPEN_ERROR               = 1
      FILE_READ_ERROR               = 2
      NO_BATCH                      = 3
      GUI_REFUSE_FILETRANSFER       = 4
      INVALID_TYPE                  = 5
      NO_AUTHORITY                  = 6
      UNKNOWN_ERROR                 = 7
      BAD_DATA_FORMAT               = 8
      HEADER_NOT_ALLOWED            = 9
      SEPARATOR_NOT_ALLOWED         = 10
      HEADER_TOO_LONG               = 11
      UNKNOWN_DP_ERROR              = 12
      ACCESS_DENIED                 = 13
      DP_OUT_OF_MEMORY              = 14
      DISK_FULL                     = 15
      DP_TIMEOUT                    = 16
      OTHERS                        = 17
    IF SY-SUBRC <> 0.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
            WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
    ENDIF.
    PERFORM OPEN_GROUP.
    LOOP AT IT_VEN.
        REFRESH BDCDATA.
        REFRESH : BANKS,BANKL,BANKN..
        SPLIT IT_VEN-BANKS AT ',' INTO TABLE BANKS.
        SPLIT IT_VEN-BANKL AT ',' INTO TABLE BANKL.
        SPLIT IT_VEN-BANKN AT ',' INTO TABLE BANKN.
    PERFORM BDC_DYNPRO      USING 'SAPMF02K' '0100'.
    PERFORM BDC_FIELD       USING 'BDC_CURSOR'
                                  'RF02K-KTOKK'.
    PERFORM BDC_FIELD       USING 'BDC_OKCODE'
                                  '/00'.
    PERFORM BDC_FIELD       USING 'RF02K-LIFNR'
                                  IT_VEN-LIFNR.
    PERFORM BDC_FIELD       USING 'RF02K-KTOKK'
                                  IT_VEN-KTOKK.
    PERFORM BDC_DYNPRO      USING 'SAPMF02K' '0110'.
    PERFORM BDC_FIELD       USING 'BDC_CURSOR'
                                  'LFA1-SPRAS'.
    PERFORM BDC_FIELD       USING 'BDC_OKCODE'
                                  '/00'.
    PERFORM BDC_FIELD       USING 'LFA1-NAME1'
                                  IT_VEN-NAME1.
    PERFORM BDC_FIELD       USING 'LFA1-SORTL'
                                  IT_VEN-SORTL.
    PERFORM BDC_FIELD       USING 'LFA1-LAND1'
                                  IT_VEN-LAND1.
    PERFORM BDC_FIELD       USING 'LFA1-SPRAS'
                                  IT_VEN-SPRAS.
    PERFORM BDC_DYNPRO      USING 'SAPMF02K' '0120'.
    PERFORM BDC_FIELD       USING 'BDC_CURSOR'
                                  'LFA1-KUNNR'.
    PERFORM BDC_FIELD       USING 'BDC_OKCODE'
                                  '/00'.
    PERFORM BDC_DYNPRO      USING 'SAPMF02K' '0130'.
    PERFORM BDC_FIELD       USING 'BDC_CURSOR'
                                  'LFBK-BANKN(02)'.
    PERFORM BDC_FIELD       USING 'BDC_OKCODE'
                                  '=ENTR'.
    *perform bdc_field       using 'LFBK-BANKS(01)'
                                 'DE'.
    *perform bdc_field       using 'LFBK-BANKS(02)'
                                 'DE'.
    *perform bdc_field       using 'LFBK-BANKL(01)'
                                 '10020030'.
    *perform bdc_field       using 'LFBK-BANKL(02)'
                                 '67270003'.
    *perform bdc_field       using 'LFBK-BANKN(01)'
                                 '12345'.
    *perform bdc_field       using 'LFBK-BANKN(02)'
                                 '66666'.
    MOVE 1 TO CNT.
        LOOP AT BANKS.
          CONCATENATE 'LFBK-BANKS(' CNT ') ' INTO FLD.
          PERFORM BDC_FIELD USING FLD BANKS-BANKS.
          CNT = CNT + 1.
        ENDLOOP.
        MOVE 1 TO CNT.
        LOOP AT BANKL.
          CONCATENATE 'LFBK-BANKL(' CNT ') ' INTO FLD.
          PERFORM BDC_FIELD USING FLD BANKL-BANKL.
          CNT = CNT + 1.
        ENDLOOP.
        MOVE 1 TO CNT.
        LOOP AT BANKN.
          CONCATENATE 'LFBK-BANKN(' CNT ') ' INTO FLD.
          PERFORM BDC_FIELD USING FLD BANKN-BANKN.
          CNT = CNT + 1.
        ENDLOOP.
    PERFORM BDC_DYNPRO      USING 'SAPMF02K' '0130'.
    PERFORM BDC_FIELD       USING 'BDC_CURSOR'
                                  'LFBK-BANKS(01)'.
    PERFORM BDC_FIELD       USING 'BDC_OKCODE'
                                  '=ENTR'.
    PERFORM BDC_DYNPRO      USING 'SAPLSPO1' '0300'.
    PERFORM BDC_FIELD       USING 'BDC_OKCODE'
                                  '=YES'.
    PERFORM BDC_TRANSACTION USING 'XK01'.
    ENDLOOP.
    PERFORM CLOSE_GROUP.

  • WSo2 BDC to delete line item in table control

    Hi all,
    My requirement is to delete material from wso2 table control.
    The only way to delete a line item in this table control is to select the line in table control and delete it.
    The recording doesnt captures any selection of row.
    Any input on how to caputre particular row ??
    Please dont send me links to work with table control in bdc
    Regards
    Bhanu

    DaveL  wrote:
      I am not aware of any way to make the BDC delete the row, other than by running in 'A'-all mode and letting the user step through each screen and delete the rows that should be deleted.
    Well , if the user has to run it in "A" all screen mode why a BDC is required
    DaveL  wrote:
    Deleting them from the table control would obviously have no effect upon the database table though, would it....it would just hide a row from view in this particular table control
    Really ? Well it will delete it from database too i dont know what makes you think that it wont be deleted from database.
    Anways i have figured out how to capture row selection in BDC .
    Thanks for your reply it proves nothing i guess

  • How do I identify OK Code in table control in BDC (scroll up/down)?

    Hi. I have read a lot of very good posts and articles here in the forums about how to work with table controls when writing a BDC program. Unfortunately I haven't found any that address the specific issue that I'm having.
    I'm writing a program to update the line items of a Parked Document using transaction FBV2. I want to be able to insert a row at the end of the previously existing rows regardless of how many there are and I can't seem to figure out the correct OK Codes to scroll up or down, or page up or down within the table control so I can guarantee that I will get to the next available row.
    For example. I have a Parked Document with 13 line items. I would like to insert the new line item as row 14. I know that 10 rows will be displayed at run time on this screen according to my settings in the BDC call and want to scroll down 1 time and then enter the new data on the 4th line on the new set of rows.
    Does anyone have any experience with this, or can someone point me in the right direction where I might find this information?
    Thanks in advance,
    Andy

    Hi
    In my system I can't run that trx, anyway there's any ok-code for the scrolling, you can have only the okcode for the page up/down buttons.
    So you should try to understand how many rows a page can have, so if a page have 10 rows per page and you need to change the row 22, it means you have to simulate to press the page down twice and change the second row of third page.
    If you run your BDC by CALL TRANSACTION u should use the option OPTIONS FROM opt, here you indicate to use the standard size of the dynpro. In this way the size of table control is not screen resolution dependent.
    TABLES CTU_PARAMS.
    CTU_PARAMS-DEFSIZE = 'X'.
    CALL TRANSACTION 'FBV1'  USING ITAB
                                                OPTIONS FROM CTU_PARAMS.
    Max

  • BDC - table control - experts please help

    Hi experts,
    Please help. I am in need of your help.
    I am working with BDC and I have a table control in one of the screen. Table control has a check box in the first column. While recording how I entered the data is : I select the check box in a row, enter two values in next two columns of that row and then hit enter then the other columns in that row turn from grey to white (initially these columns are greyed out).
    NOw in BDC when I run my session in foreground, I am able to check(select) the check box and enter the values in next two columns and then I have a Enter OKCODE. But when I hit enter it is not able to recognize the row and its unable to turn the greyed out columns in that particular row to white.
    Is there a way to specify in my program that I am hitting enter in one particular row.
    Please help. Let me know if something is not clear. Very urgent . Pleasee respond. Thanks

    Hi Rich,
    Thanks for the replies. I will try that. I got one more doubt. While manually creating the recipes using C201, there is a screen Recipe header. When I record this transaction, I see a different screen for the Recipe header. Fro example the screen numbers are like 4210(manual) and 4211(recording).
    But my problem is there are two fields which are missing in the screen which I am getting while recording C201. These two fields are present on the screen for manual creation. I need to enter those two fields while I record. But how can I do this.
    Please help.

  • Table control--BDC

    Hi Group,
    When I am writting BDC for transaction in which table control occurs in the second screen,it is perfectly running when I am testing with the two records in the table control,when I increases the records (200) I am getting the error that <b>Screen is too large for Internal batch Input.</b>
    Here I am attaching the part of code.
      MOVE 1 TO IDX.
      LOOP AT IT_DATATAB INTO WA_DATATAB.
        CONCATENATE 'FKKCMP_DIA-CHCKN(' IDX ')'
                                     INTO FNAM.
        perform bdc_field     using FNAM
                                    wa_datatab-col5.
        CONCATENATE 'FKKCMP_DIA-GPART(' IDX ')'
                                     INTO FNAM.
        perform bdc_field       using fnam
                                    wa_datatab-col1.
        CONCATENATE 'FKKCMP_DIA-VKONT(' IDX ')'
                                    INTO FNAM.
        perform bdc_field   using fnam
                                  wa_datatab-col2 .
        CONCATENATE 'FKKCMP_DIA-AUDAT(' IDX ')'
                                    INTO FNAM.
        perform bdc_field   using fnam
                                wa_datatab-col3 .
        v_betrw = wa_datatab-col4.
        CONCATENATE 'FKKCMP_DIA-BETRW(' IDX ')'
                                    INTO FNAM.
        write v_betrw to fval.
        perform bdc_field       using  fnam
                                   fval.
        IDX = IDX + 1.
      ENDLOOP.
    Please suggest

    <b>A table control can contain many records, but the no of records you see on the screen is limited. In this case, the table control can hold only 16 records at a time and then we need to enter the page down and fill in more records.</b>
    here is the sample code.
    *--For each record in table IT_ICE_CONFM
        loop at it_ice_confm.
    *--Get the correct line item from calling system.
    *      it_ice_confm-ebelp = it_ice_confm-ebelp / '00010'.
    *-- Check for Purchasing document validity
          read table lt_ekko with key ebeln = it_ice_confm-ebeln
                                      binary search.
          if sy-subrc <> 0.
             "error
          endif.
    *-- Check for Purchasing document item validity
          read table lt_ekpo with key ebeln = it_ice_confm-ebeln
                                      ebelp = it_ice_confm-ebelp
                                      binary search.
          if sy-subrc <> 0.
           "error
          endif.
    *--Clear local variables.
          clear : lv_tabix,
                  lv_lfdat.
          lv_tabix = sy-tabix.
          lv_count1 = lv_count1 + 1.
    *     For every new Purchase Order, populate first screen
          at new ebeln.
            read table it_ice_confm index lv_tabix.
            perform screen_insert tables it_bdc
                                  using  'SAPMM06E' '0105' 'X'.
            perform field_insert: tables it_bdc
                                  using  'BDC_OKCODE'  '/00',
                                  tables it_bdc
                                  using  'RM06E-BSTNR' it_ice_confm-ebeln.
          endat.
    *     For every new Purchase Order line item, populate next screen
          at new ebelp.
            read table it_ice_confm index lv_tabix.
    * if no Confirmation control key exist and no Goods receipt indicator
    * occurs for the line item, set the Confirmation control key as 0001
            if lt_ekpo-bstae = ' '.
              if lt_ekpo-wepos = ' '.
                perform screen_insert tables it_bdc
                                 using  'SAPMM06E' '0120' 'X'.
                perform field_insert: tables it_bdc
                                 using  'RM06E-EBELP' it_ice_confm-ebelp,
                                 tables it_bdc
                                 using  'BDC_OKCODE' '/00'.
                perform screen_insert tables it_bdc
                                  using  'SAPMM06E' '0120' 'X'.
                perform field_insert: tables it_bdc
                                  using  'RM06E-TCSELFLAG(01)' 'X',
                                  tables it_bdc
                                  using  'BDC_OKCODE' '=DETA'.
                perform screen_insert tables it_bdc
                                 using  'SAPMM06E' '0111' 'X'.
               perform field_insert: tables it_bdc
                                    using  'EKPO-BSTAE' '0001',
                                    tables it_bdc
                                    using  'BDC_OKCODE' '=BACK'.
              else.
    * if no Confirmation control key exist and and if Goods receipt
    * indicator occurs for this line item, mark PO and line item as error
                concatenate 'Item no '                 it_ice_confm-ebelp
                            ' of Purchasing document ' it_ice_confm-ebeln
                            ' is invalid'
                           into return-message.
                move: 'E'                            to return-type,
                      'ZI'                           to return-id,
                      '999'                          to return-number.
                append return.
                clear return.
                continue.
              endif.
            else.
            endif.
              perform screen_insert tables it_bdc
                                    using  'SAPMM06E' '0120' 'X'.
              perform field_insert: tables it_bdc
                                    using  'RM06E-EBELP' it_ice_confm-ebelp,
                                    tables it_bdc
                                    using  'BDC_OKCODE' '/00'.
              perform screen_insert tables it_bdc
                                    using  'SAPMM06E' '0120' 'X'.
              perform field_insert: tables it_bdc
                                    using  'RM06E-TCSELFLAG(01)' 'X',
                                    tables it_bdc
                                    using  'BDC_OKCODE' '=BSTA'.
              clear lv_tab_line.
              perform select_line using it_ice_confm-ebeln
                                        it_ice_confm-ebelp
                               changing lv_tab_line.
              if not lv_tab_line is initial.
    *--Position table control row for the first time
                lv_count2 = '01'.
                perform screen_insert  tables it_bdc
                                       using 'SAPLEINB' '0200' 'X'.
                perform field_insert   tables it_bdc
                                       using  'BDC_OKCODE' '=UMOD'.
                perform screen_insert  tables it_bdc
                                       using 'SAPLEINB' '0100' 'X'.
                perform field_insert   tables it_bdc
                                       using  'BDC_OKCODE' '=NP'.
                perform screen_insert  tables it_bdc
                                       using 'SAPLEINB' '0100' 'X'.
                perform field_insert   tables it_bdc
                                       using  'BDC_OKCODE' '=UMOD'.
              endif.
              perform screen_insert  tables it_bdc
                                     using 'SAPLEINB' '0200' 'X'.
            endat.
            lv_count2 = lv_count2 + 1.
    *     Handle page down
    *-- if confirmations already exist.
            if not lv_tab_line is initial.
    *-- Check if it is 16th record, to position next record on page down
    *   table control has 16 rows when default screen size,
    *      mode and update are set
              if lv_count1 = 16.
                clear: lv_count1,
                       lv_count2.
    *-- On page down, the next record comes to 2nd row
                lv_count2 = '02'.
                perform field_insert tables it_bdc
                                     using  'BDC_OKCODE' '=UMOD'.
                perform screen_insert  tables it_bdc
                               using 'SAPLEINB' '0100' 'X'.
                perform field_insert   tables it_bdc
                                       using  'BDC_OKCODE' '=NP'.
                perform screen_insert  tables it_bdc
                                       using 'SAPLEINB' '0100' 'X'.
                perform field_insert   tables it_bdc
                                       using  'BDC_OKCODE' '=UMOD'.
                perform screen_insert  tables it_bdc
                               using 'SAPLEINB' '0200' 'X'.
              endif.
            else.
    *-- if confirmations does not exist, then check if it is 17th record.
    *   to position next record on page down
              if lv_count1 = 17.
                clear: lv_count1,
                       lv_count2.
                lv_count2 = '02'.
                perform field_insert tables it_bdc
                                     using  'BDC_OKCODE' '=UMOD'.
                perform screen_insert  tables it_bdc
                               using 'SAPLEINB' '0100' 'X'.
                perform field_insert   tables it_bdc
                                       using  'BDC_OKCODE' '=NP'.
                perform screen_insert  tables it_bdc
                               using 'SAPLEINB' '0100' 'X'.
                perform field_insert   tables it_bdc
                                       using  'BDC_OKCODE' '=UMOD'.
                perform screen_insert  tables it_bdc
                               using 'SAPLEINB' '0200' 'X'.
    *-- Initialize the table line to 1.
                lv_tab_line = 1.
              endif.
            endif.
            concatenate 'EKES-EBTYP(' lv_count2 ')' into lv_field.
            perform field_insert tables it_bdc
                                 using  lv_field 'Z1'.
            if not it_ice_confm-eindt is initial.
              clear: lv_field,
                     lv_date.
              concatenate 'RM06E-EEIND(' lv_count2 ')' into lv_field.
              move it_ice_confm-eindt to lv_lfdat.
              write lv_lfdat to lv_date.
              perform field_insert tables it_bdc
                                   using  lv_field lv_date.
            endif.
            if not it_ice_confm-uzeit is initial.
              clear: lv_field,
                     lv_time.
              concatenate 'EKES-UZEIT(' lv_count2 ')' into lv_field.
              write it_ice_confm-uzeit to lv_time.
              perform field_insert tables it_bdc
                                   using  lv_field lv_time.
            endif.
            clear lv_field.
            concatenate 'EKES-XBLNR(' lv_count2 ')' into lv_field.
            perform field_insert tables it_bdc
                                 using  lv_field it_ice_confm-scacd.
            clear lv_field.
            concatenate 'EKES-MENGE(' lv_count2 ')' into lv_field.
            perform field_insert tables it_bdc
                                 using  lv_field it_ice_confm-quantity.
            at end of ebelp.
              clear: lv_tab_line,
                     lv_count1,
                     lv_count2.
              perform field_insert tables it_bdc
                                   using  'BDC_OKCODE' '=BACK'.
            endat.
            at end of ebeln.
              clear: lv_lines,
                     lv_msg.
              perform screen_insert  tables it_bdc
                             using 'SAPMM06E' '0120' 'X'.
              perform field_insert tables it_bdc
                             using 'BDC_OKCODE' '=BU'.
              call transaction  <b>tcode</b> using  it_bdc
                      options from x_ctu_params
                      messages into lt_message.
              clear w_success.
              if sy-subrc <> 0.
                w_success = 'N'.
              endif.
              refresh: it_bdc,
                        lt_message.
            endat.
          endloop.
    Regards,
    Richa

  • How to clear data from Table-Control

    Hi all,
    I am working on table control. I have some data on the table control.
    When I press the 'Cancel' button, I require that the table-control should be cleared.
    I tried using REFRESH CONTROL TC01 USING SCREEN 1001. But, the data doesn't get cleared.
    Please advise.
    Regards,
    Saurabh Buksh.

    hi
    good
    try this example
    REPORT demo_dynpro_tabcont_loop_at.
    CONTROLS flights TYPE TABLEVIEW USING SCREEN 100.
    DATA: cols LIKE LINE OF flights-cols,
          lines TYPE i.
    DATA: ok_code TYPE sy-ucomm,
          save_ok TYPE sy-ucomm.
    DATA: itab TYPE TABLE OF demo_conn.
          TABLES demo_conn.
    SELECT * FROM spfli INTO CORRESPONDING FIELDS OF TABLE itab.
    LOOP AT flights-cols INTO cols WHERE index GT 2.
      cols-screen-input = '0'.
      MODIFY flights-cols FROM cols INDEX sy-tabix.
    ENDLOOP.
    CALL SCREEN 100.
    MODULE status_0100 OUTPUT.
      SET PF-STATUS 'SCREEN_100'.
      DESCRIBE TABLE itab LINES lines.
      flights-lines = lines.
    ENDMODULE.
    MODULE cancel INPUT.
      LEAVE PROGRAM.
    ENDMODULE.
    MODULE read_table_control INPUT.
      MODIFY itab FROM demo_conn INDEX flights-current_line.
    ENDMODULE.
    MODULE user_command_0100 INPUT.
      save_ok = ok_code.
      CLEAR ok_code.
      CASE save_ok.
        WHEN 'TOGGLE'.
          LOOP AT flights-cols INTO cols WHERE index GT 2.
            IF  cols-screen-input = '0'.
              cols-screen-input = '1'.
            ELSEIF  cols-screen-input = '1'.
              cols-screen-input = '0'.
            ENDIF.
            MODIFY flights-cols FROM cols INDEX sy-tabix.
          ENDLOOP.
        WHEN 'SORT_UP'.
          READ TABLE flights-cols INTO cols WITH KEY selected = 'X'.
          IF sy-subrc = 0.
            SORT itab STABLE BY (cols-screen-name+10) ASCENDING.
            cols-selected = ' '.
            MODIFY flights-cols FROM cols INDEX sy-tabix.
          ENDIF.
        WHEN 'SORT_DOWN'.
          READ TABLE flights-cols INTO cols WITH KEY selected = 'X'.
          IF sy-subrc = 0.
            SORT itab STABLE BY (cols-screen-name+10) DESCENDING.
            cols-selected = ' '.
            MODIFY flights-cols FROM cols INDEX sy-tabix.
          ENDIF.
        WHEN 'DELETE'.
          READ TABLE flights-cols INTO cols
                                  WITH KEY screen-input = '1'.
          IF sy-subrc = 0.
            LOOP AT itab INTO demo_conn WHERE mark = 'X'.
              DELETE itab.
            ENDLOOP.
          ENDIF.
      ENDCASE.
    ENDMODULE.
    thanks
    mrutyun^

  • Generic Table Control in ABUMN for multiple transfer of assets

    Hi Experts,
    Problem Description
    We are trying to use transaction ABUMN for multiple asset transfer.
    We need to transfer more than one assets to multiple assets by quantity
    and value.
    Our Efforts/Observation
    Instead of going ahead with BDC/LSMW, we tried using table control to utilize standard SAP functionality.
    For making this happen, we are trying to use the Generic Table control which is available in ABUMN once you click on "Multiple assets" button.
    However, even though we are making fields like
    EL7, EL8 etc available in the screen (by removing check from the "Invisible" check box), they are in display mode and are not giving me any option to select quantity and value that needs to be transferred from each asset.
    We need to assign these fields to some field like quantity/percentage so that they can be used.
    If you see, the column header is also blank.
    We need to transfer hundreds of assets, hence requesting you to please
    fix this urgently so that we can transfer assets and close the quarter.
    Thanks in advance for your help and support,
    Nitish Gupta
    +919867458892

    Hi Nitish,
    I'm sorry, transaction ABUMN will never get this functionality you requested.       
    For mass transfer, customers have the possibilities to use batch input on  transaction ABUM or BAPI.                                                                               
    Please refer customer to the following note :   216806  New posting transactions and batch input                                                                               
    regards Bernhard

  • Table Control Prob.

    Hi Experts,
    Presently I am working with table control,I have got two date fields, I need to do the validation for the date fields,that can be done by me
    But if the user enters the wrong date while entering multiple entries, how can we get the line number of the record in which wrong entry is being done.
    Do I need to write this In the Screen PAI with CHAIN and ENDCHAIN statements for this table fields.
    or in the PAI screen if ok code equal to  save.
    Thanks In Advance,
    Regards,
    Irfan Hussain

    You can do it in a module in CHAIN.. ENDCHAIN in PAI. If an error is thrown at one particular table control line, the control stops and waits for a valid input for the further processing.
    Ex:
    PAI
    loop at itab.
        chain.
          field SFLIGHT-CARRID.
          field SFLIGHT-CONNID.
          field SFLIGHT-FLDATE.
          field SFLIGHT-PRICE.
          module TABCON1_modify on chain-request.
        endchain.
      endloop.
    Module pool program:
    module TABCON1_modify input.
      do certain validations of the field values entered
      message e001 with 'Please enter valid data'.
    endmodule.
    Message was edited by: Sravanthi

  • Table control dumps

    Hello All,
    I have subscreen in which i created a table control.
    The problem is when i have a tbale control on subscreen the program dumps but where as when i have one field in sub screen the program doesn't dump.
    Could any please help me to solve the problem.
    Regards,
    Lisa

    Hi
    You have a field on the sub screen and keep it hidden or invisible.
    This will let you work with table control.
    Regards,
    Venkat

Maybe you are looking for