CALL TRANSACTION 'ZTS01' USING ITAB. How do it receive?

hi. everyone.
I 'd like to use 'call transaction'.
First I  write the syntax ' CALL TRANSACTION 'ZTS01' USING ITAB.'
Then how do the program of Transaction code 'ZTS01'receive the itab?
  help..

Hi Jake,
syntax : call transaction 'zsts01' using itab.
here if itab is declared as bdcdata...first of all the screen attributes and values are stored in itab..since the transaction code is a collection of screens holding the values of itab..data is populated..
in the sense...
tcode(collection of screens) + bdcdata/itab(values of screen fields, names) --->data populated..
hope this helps u a bit,
all the best,
regards,
sampath
mark helpful answers

Similar Messages

  • Changes to sales order item not reflected if Call Transaction is used

    I m updating another Sales Order item quantity and reason for rejection programmatically from another sales order.
    The code is working fine and the quantity does get changed as well as the reason for rejection flag get set (if required). But if I go to the change log from the menu in VA02 for the order item which has been changed. It does not record the changes.
    I have tried using both BDC call transaction method as well as BAPI_SALESORDER_CHANGE in neither case the change log for the order which has been changed reflects the programmatically made changes?
    What m I doing wrong. Here is the code.
    IF v_update_order_flg = 'X'.
          REFRESH t_bdcdata.
          CLEAR s_bdcdata.
          REFRESH t_messtab.
          PERFORM bdc_dynpro USING 'SAPMV45A' '0102'.
          PERFORM bdc_field  USING 'VBAK-VBELN' <wa_r_rtb_posnrs>-zrtbvbeln.
          PERFORM bdc_field  USING 'BDC_OKCODE' '/00'.
          PERFORM bdc_dynpro USING 'SAPMV45A' '4001'.
       For Going to  specific Item Number
          LOOP AT t_schedule_lines.
            PERFORM bdc_field  USING 'BDC_OKCODE' '=POPO'.
            READ TABLE t_item_in WITH KEY itm_number = t_schedule_lines-itm_number.
            PERFORM bdc_dynpro USING 'SAPMV45A' '0251'.
            PERFORM bdc_field  USING 'RV45A-POSNR' t_schedule_lines-itm_number.
            PERFORM bdc_field  USING 'BDC_OKCODE' '=POSI'.
            PERFORM bdc_dynpro USING 'SAPMV45A' '4001'.
            v_ro_qty = t_schedule_lines-req_qty.
            CONDENSE v_ro_qty.
            PERFORM bdc_field  USING 'RV45A-KWMENG(01)' v_ro_qty.
            PERFORM bdc_field  USING 'VBAP-ABGRU(01)' t_item_in-reason_rej.
          ENDLOOP.
          PERFORM bdc_field  USING 'BDC_OKCODE' '=SICH'.
          v_call_transaction_flg = 'X'.
          EXPORT v_call_transaction_flg TO MEMORY ID 'call_transaction'.
          CALL TRANSACTION 'VA02'
                       USING t_bdcdata
                       UPDATE 'S'
                       MODE   'N'
                       MESSAGES INTO t_messtab.
          v_call_transaction_flg = space.
          FREE MEMORY ID 'call_transaction'.

    Hi Srikrisna,
    This is a typical problem with BDC for updating QUANTITY and CURRENCY fields.
    You need to create a character variable of the same length as your quantity field. Move your quantity value to the newly created Character variable.
    Now use this new char variable in the BDC.
    This correction should solve your problem.
    NOTE: BDC RECOGNIZES CHARACTER FIELDS ONLY.
    Regards,
    Prakash Pandey

  • Call transaction CJIC using bdcdata and skip first screen

    I want to call transaction CJIC and skip first screen. I have set parameters for fields for which I need to pass data. But one field namely display variant has no parameter id. How can I pass value to it and also skip first screen?
    I have tried passing its value in bdcdata and also passing ONLI. But it does not run in mode "N". What can be the solution?

    Hi frnd,
    fortunately transaction CJIC is selection-screen of an executable program RKPEP012.......so u don hav to use call transaction and instead u can use SUBMIT statement................
    submit RKPEP012 WITH SELECTION-TABLE rspar
    Effect
    If you specify this addition, parameters and selection criteria on the selection screen are supplied from an internal table rspar. You must specify an internal table with the row type RSPARAMS for rspar. The structured data type RSPARAMS is defined in the ABAP Dictionary and has the following components, all of which are data type CHAR:
    SELNAME (length 8),
    KIND (length 1),
    SIGN (length 1),
    OPTION (length 2),
    LOW (length 45),
    HIGH (length 45).
    To supply parameters and selection criteria for the selection screen with specific values, the lines in the internal table rspar must contain the following values:
    SELNAME must contain the name of a parameter or selection criterion for the selection screen in block capitals
    KIND must contain the type of selection screen component (P for parameters, S for selection criteria)
    SIGN, OPTION, LOW, and HIGH must contain the values specified for the selection table columns that have the same names as the selection criteria; in the case of parameters, the value must be specified in LOW and all other components are ignored.
    If the name of a selection criterion is repeated in rspar, this defines a selection table containing several lines and passes it on to the selection criterion. If parameter names occur several times, the last value is passed on to the parameter.
    The contents of the parameters or selection tables for the current program can be entered in the table by the function module RS_REFRESH_FROM_SELECTOPTIONS.
    Notes
    In contrast to selection tables, the data types of the components LOW and HIGH in table rspar are always of type CHAR and are converted to the type of the parameter or selection criterion during transfer, if necessary.
    When entering values, you must ensure that these are entered in the internal format of the ABAP values, and not in the output format of the screen display.
    Revert back for queries.
    Cheers,
    Will.

  • Error msgs in call transaction mode using RFBIBL00

    Hi Gurus,
    I am using FRBIBL00 program in call transaction mode to post FI documents and i am getting the below msgs:
    FB012                    Session 1 : Special character for 'empty field' is /
    F5201                    Posting period 008 0831 is not open
    FB012                    Session 1 : Special character for 'empty field' is /
    FB007                    Session 1 session name TEST1 was opened
    FB008                    Session 1 session name TEST1 was created
    Please help me in resolving this.
    Regards'
    Madan.

    Hi Prabhu/Vishwa,
    Thanks for your quick response.
    I am calling RFBIBL00 in "call transaction" mode to post FI ocs.
    here is the format of the file written on to the application server.
    Session - 0TEST1       100KBQ9FCEC    00000000X/
    Header - 1FB01                20080816SAYBP120080831/ CHF  /         /         20080831/               /               /                        /   /
    Item level - 2BBSEG                         50/         //   79378           /               /               /               IU//               /
    2BBSEG                         40/         //   79378           /               /               /               IU//               /
    2BBSEG                         50/         //   42266           /               /               /               IU//               /
    2BBSEG                         40/         //   42266           /               /               /               IU//               /
    The file format is correct, it is working fine in case of Batch session method.
    I want it to work for both Batch session and Call transaction.
    Please help me to reslove call transaction mode.
    Regards'
    Madan.

  • Personas: how to call Transaction code using a Script Button?

    Hi,
    I want to use a script button to run to certain UI based on the given transaction code. I am thinking there might be some ways to do so:
    Option 1:
        Somehow one can let the script button call the T-code in script, say, IW21, but how to write such script?
    Option 2:
        In the script of the script button, use "Push" or "Click" to cause an action on the launch button which contains the T-code, say /nIW21.
    But on my PC, this does not work. Why?
    pls help asap!
    Thx a lot!
    Br,
    Dong

    Knowledge sharing:
    Hi,
    I have found exact answer to this question: in the script of a script button, one can first set the T-code to the /okdc component, then call "press Enter" action. By this way, any script button can be used to triggle an action for a T-code. One can set teh /okdc as "hidden". Hope this will help other newers.
    Br,
    Dong

  • I can't make video call on Facebook using Firefox.how can I make it possible?

    I am using micromax A110. (canvas 2)

    Facebook video is not available for mobile, yet. The plug-in is only released for desktop PC where Facebook is available through a browser.
    For android you can use alternative is SKYPE

  • CALL transaction using itab aswell as skip the first screen

    Hi All,
    I am doin BDC for some Ztransaction and i am that transaction using CALL TRANSACTION... but i want to skip the first screen of the Ztransaction as well as pass the Itab .. mode .. update and message table.... how can i do it...
    CALL TRANSACTION Z... USING iTAB UPDATE DATE MODE A  message bdcmsgcoll AND skip THE FIST SCREEN.. how to acheive it....

    PERFORM BDC_DYNPRO      TABLES BDCDATA
                           USING 'SAPLBPT1' '0100'.
    *PERFORM BDC_FIELD       TABLES BDCDATA
                           USING 'BDC_CURSOR'
                                 'BCONTD-BPCONTACT'.
    *PERFORM BDC_FIELD       TABLES BDCDATA
                           USING 'BDC_OKCODE'
                                 '/00'.
    *PERFORM BDC_FIELD       TABLES BDCDATA
                           USING 'BCONTD-BPCONTACT'
                                  V_CONTRACT.
    the above code /recording call the first screen 100 which i dont want...
    below code / recording is for screen 200 which i want to appear directly when i call the transaction....
    skipping the first screen 100..
    PERFORM BDC_DYNPRO      TABLES BDCDATA
                            USING 'SAPLBPT1' '0200'.
    PERFORM BDC_FIELD       TABLES BDCDATA
                            USING 'BDC_OKCODE'
                                  '=SAVE'
    PERFORM BDC_FIELD       TABLES BDCDATA
                            USING 'BCONTD-PARTNER'
                                   V_GPART.
    PERFORM BDC_FIELD       TABLES BDCDATA
                            USING 'BCONTD-ADDINFO'
                                   V_ZONE.         "ZONE(S,N,E,E,NE)
    PERFORM BDC_FIELD       TABLES BDCDATA
                            USING 'BDC_CURSOR'
                                  'EENO_DYNP-ZEILE(01)'.
    PERFORM BDC_FIELD       TABLES BDCDATA
                             USING 'EENO_DYNP-ZEILE(01)'
                                   V_LOG.                 "MESSAGE
    CALL TRANSACTION 'BCT1'    USING BDCDATA
                               MODE MODE UPDATE UPDATE
                               MESSAGES INTO IT_BDCMSGCOLL.

  • Va01 upload using call transaction,item details r overwrite ,how to solve

    hi experts
       i here attached the coding what i did,while page down item details r over overwrite, how to sole ,give me the suggestions
    INCLUDE BDCRECX1.
    PARAMETERS: DATASET(132) LOWER CASE.
    DATA: BEGIN OF RECORD_HEAD,
            VBELN(10),
    data element: AUART
            AUART(004),
    data element: VKORG
            VKORG(004),
    data element: VTWEG
            VTWEG(002),
    data element: SPART
            SPART(002),
    DATA ELEMENT: KUNAG
            KUNNR(010),
    data element: KUNWE
            KUNNR_007(010),
    data element: BSTKD
            BSTKD(035),
        END OF RECORD_HEAD.
    DATA: BEGIN OF RECORD_ITEM,
    data element: VBELN
            VBELN(10),
    data element: MATNR
            MABNR(018),
    data element: KWMENG
            KWMENG(019),
          END OF RECORD_ITEM.
    End generated data section ***
    DATA: IT_SO_HEAD LIKE TABLE OF RECORD_HEAD,
          IT_SO_ITEM LIKE TABLE OF RECORD_ITEM,
          FLAG.
    data: counter type num value '1'.
    START-OF-SELECTION.
      CALL FUNCTION 'GUI_UPLOAD'
        EXPORTING
          FILENAME            = 'C:\USERS\SANGEETHA\DESKTOP\SO_HEADER.TXT'
          FILETYPE            = 'ASC'
          HAS_FIELD_SEPARATOR = 'X'
        TABLES
          DATA_TAB            = IT_SO_HEAD.
      CALL FUNCTION 'GUI_UPLOAD'
        EXPORTING
          FILENAME            = 'C:\USERS\SANGEETHA\DESKTOP\SO_ITEM.txt'
          FILETYPE            = 'ASC'
          HAS_FIELD_SEPARATOR = 'X'
        TABLES
          DATA_TAB            = IT_SO_ITEM.
    LOOP AT IT_SO_HEAD INTO RECORD_HEAD.
        AT NEW VBELN.
          FLAG = 'X'.
        ENDAT.
        PERFORM BDC_DYNPRO      USING 'SAPMV45A' '0101'.
        PERFORM BDC_FIELD       USING 'BDC_CURSOR'
                                      'VBAK-AUART'.
        PERFORM BDC_FIELD       USING 'BDC_OKCODE'
                                      '/00'.
        PERFORM BDC_FIELD       USING 'VBAK-AUART'
                                      RECORD_HEAD-AUART.
        PERFORM BDC_FIELD       USING 'VBAK-VKORG'
                                      RECORD_HEAD-VKORG.
        PERFORM BDC_FIELD       USING 'VBAK-VTWEG'
                                      RECORD_HEAD-VTWEG.
        PERFORM BDC_FIELD       USING 'VBAK-SPART'
                                      RECORD_HEAD-SPART.
        PERFORM BDC_DYNPRO      USING 'SAPMV45A' '4001'.
        PERFORM BDC_FIELD       USING 'BDC_OKCODE'
                                      '/00'.           " Enter
        PERFORM BDC_FIELD       USING 'KUAGV-KUNNR'
                                      RECORD_HEAD-KUNNR.
        PERFORM BDC_FIELD       USING 'KUWEV-KUNNR'
                                      RECORD_HEAD-KUNNR_007.
        PERFORM BDC_FIELD       USING 'VBKD-BSTKD'
                                      RECORD_HEAD-BSTKD.
        PERFORM BDC_FIELD       USING 'BDC_CURSOR'
                                          'RV45A-MABNR(01)'.
        LOOP AT IT_SO_ITEM INTO RECORD_ITEM WHERE VBELN = RECORD_HEAD-VBELN.
          IF FLAG = 'X'.
            PERFORM BDC_FIELD       USING 'RV45A-MABNR(01)'
                                          RECORD_ITEM-MABNR.
            PERFORM BDC_FIELD       USING 'RV45A-KWMENG(01)'
                                          RECORD_ITEM-KWMENG.
           PERFORM BDC_DYNPRO      USING 'SAPMV45A' '4001'.
           PERFORM BDC_FIELD       USING 'BDC_OKCODE'
                                                 '=/00'.
            PERFORM BDC_FIELD       USING 'BDC_CURSOR'
                                         'RV45A-MABNR(02)'.
            CLEAR FLAG.
          ELSE.
            PERFORM BDC_FIELD       USING 'RV45A-MABNR(02)'
                                          RECORD_ITEM-MABNR.
            PERFORM BDC_FIELD       USING 'RV45A-KWMENG(02)'
                                          RECORD_ITEM-KWMENG.
            PERFORM BDC_FIELD       USING 'BDC_CURSOR'
                                          'RV45A-KWMENG(02)'.
            PERFORM BDC_DYNPRO      USING 'SAPMV45A' '4001'.
            PERFORM BDC_FIELD       USING 'BDC_OKCODE'
                                                  '=p++'.
            PERFORM BDC_FIELD       USING 'BDC_CURSOR'
                                          'RV45A-MABNR(02)'.
               ENDIF.
        ENDLOOP.
          PERFORM BDC_DYNPRO      USING 'SAPMV45A' '4001'.
          PERFORM BDC_FIELD       USING 'BDC_OKCODE'
                                        '=SICH'.
         data : l_option like ctu_params.
                 l_option-dismode = CTUMODE.
                 l_option-updmode = CUPDATE.
                 l_option-defsize = 'X'.
          CALL TRANSACTION 'VA01' USING BDCDATA
                                  options from l_option
                                  MESSAGES INTO MESSTAB.
          CLEAR: BDCDATA,BDCDATA[].
      ENDLOOP.

    John - Its best to use  BAPI_SALESDOCU_CREATEFROMDATA1.
    But if you are still going to do a BDC, Do not use the pagedown  for new line items. Use the "Create Item" icon in the bottom of the screen. This way you can add as many items as you want and the cursor will always be in the second row of the table control.
    Please check the code below: Always enter in the 2nd row even for the first item. It should work.
    LOOP AT IT_SO_ITEM INTO RECORD_ITEM WHERE VBELN = RECORD_HEAD-VBELN.
    PERFORM BDC_FIELD USING 'RV45A-MABNR(02)'
    RECORD_ITEM-MABNR.
    PERFORM BDC_FIELD USING 'RV45A-KWMENG(02)'
    RECORD_ITEM-KWMENG.
    PERFORM BDC_DYNPRO USING 'SAPMV45A' '4001'.
    PERFORM BDC_FIELD USING 'BDC_OKCODE'
    '=POAN'.
    ENDIF.
    ENDLOOP
    reward points if helpful

  • How to use CTUPARAMS in CALL TRANSACTION

    Hi ,
    How to pass ctuparms in CALL TRANSACTIION.
    Please give me some example.
    Thanks in Advance,
    Kuma A.

    Hi,
    Check this example..
      DATA: ls_params TYPE ctu_params.
      DATA: t_bdcdata TYPE STANDARD TABLE OF bdcdata.
      ls_params-dismode  = 'N'.   " No display
      ls_params-updmode  = 'S'.   " Synchronous
      ls_params-defsize  = 'X'.   " Default window size.
      CALL TRANSACTION 'MM01' USING t_bdcdata OPTIONS FROM ls_params.
    Thanks
    Naren

  • How to create bdc for fbs1 using both call transaction and session

    Hi Friends,
    i have one problem with tcode FBS1, i need to create a bdc program for both call transaction and session method using subroutine.
    first call transaction needs to execute if there is an error sesion has to execute. if u have code please forward.
    thanks in advance.
    chandramouli pothugunta

    where as in call transaction we can do error handling explictly.those errors  are stored in one file .this file will send to the error log(session method),i.e session log.
    in the above case we use both call transaction n session method at time in one program.sample code is below ,go through it .
    data : begin of itxk01 occurs 0,
    end of itxk01.
    data : bdcdata like itbdcdata occurs 0 with header line.
    data : itbdcmsgcoll like itbdcmsgcoll occurs 0 with header line,
             itxk01 like itxk01-dup occurs 0 with header line.
    call gui-upload.
    loop at itxk01.
    refresh itxk01.
    perform bdc-dynpr0 using 'prg' 'scr'
    perform bdc-dynfld using fnam fval
    call transaction 'xk01' using bdcdata mode 'a' update 's' messages into itbdcmsgcoll.
    if sy-subrc ne 0.
    append itxk01 into  itxk01-dup.
    endif.
    endloop.
    if not itxk01-dup[] is initial.
    refresh itck01.
    call bdc_open_group
    itxk01 = itxk01-dup.
    loop at itxk01.
    refresh itxk01.
    perform bdc-dynpr0 using 'prg' 'scr'
    perform bdc-dynfld using fnam fval
    call bdc-insert.
    endloop.
    call bdc-close-group.
    form bdc-dynpr0 using pr sc
    endform .
    form bdc-field  using fnam faval
    endform.
    this will help u.
    reward points for me
    kiran

  • How to use Call Transaction in AVL ........ for va02

    Hi Experts,
    I am using CALL TRANSACTION in ALV for VA02, but I want to go on item number. The following form i have used and it is working but I want to go on perticular item number in va02. pl. guide me.
    FORM user_command USING r_ucomm LIKE sy-ucomm
                      rs_selfield TYPE slis_selfield.
      CASE r_ucomm.
        WHEN '&IC1'.
        IF rs_selfield-fieldname = 'VBELN'.
          READ TABLE it_out INTO wa_itab INDEX rs_selfield-tabindex.
          SET PARAMETER ID : 'AUN' FIELD wa_itab-vbeln .
                           'APO' FIELD wa_itab-posnr.
          CALL TRANSACTION 'VA02' AND SKIP FIRST SCREEN.
        ENDIF.
      ENDCASE.
    ENDFORM.
    *=====================================
    Yusuf

    Hi,
    use BDC for that....
    check out the BDC part of coding for it.
    REFRESH  itab_bdcdata.
      CLEAR    itab_bdcdata.
    *initial screen
      PERFORM bdc_dynpro      USING 'SAPMV45A'
                                    '0102'.
      PERFORM bdc_field       USING 'BDC_CURSOR'
                                    'VBAK-VBELN'.
      PERFORM bdc_field       USING 'BDC_OKCODE'
                                    '/00'.
      PERFORM bdc_field       USING 'VBAK-VBELN'
                          <b>          g_t_atpma4-vbeln.</b>
    *item overview screen
      PERFORM bdc_dynpro      USING 'SAPMV45A'
                                    '4001'.
      PERFORM bdc_field       USING 'BDC_OKCODE'
                                    '=POPO'.
      PERFORM bdc_field       USING 'BDC_CURSOR'
                                    'RV45A-MABNR(04)'.
    *popup screen (move item to top)
      PERFORM bdc_dynpro      USING 'SAPMV45A'
                                    '0251'.
      PERFORM bdc_field       USING 'BDC_CURSOR'
                                    'RV45A-POSNR'.
      PERFORM bdc_field       USING 'BDC_OKCODE'
                                    '=POSI'.
      PERFORM bdc_field       USING 'RV45A-POSNR'
                                    <b>g_t_atpma4-posnr.</b>
    *item overview screen
      PERFORM bdc_dynpro      USING 'SAPMV45A'
                                    '4001'.
      PERFORM bdc_field       USING 'BDC_OKCODE'
                                    '/00'.
      PERFORM bdc_field       USING 'BDC_CURSOR'
                                    'VBAP-POSNR(01)'.
      PERFORM bdc_field       USING 'RV45A-VBAP_SELKZ(01)'
                                    'X'.
    *Call transaction VA02
      CALL TRANSACTION 'VA02'  USING itab_bdcdata
                               MODE 'E'
                               UPDATE 'A'
                               MESSAGES INTO itab_bdcmsg.
    Patil

  • I want in LSMW SAME CODING. THIS IS USING BDC CALL TRANSACTION

    REPORT  ZXX_BDC_PRA NO STANDARD PAGE HEADING LINE-COUNT 20
                                                LINE-SIZE 150 .
    Program Name  :ZXX_BDC_PRA                             *
    Object Id     :                                        *
    Develper Name : praveen                                *
    Start Date    : 25.06.07                               *
    Description   : uploading flat file to sap system      *
    *--structure for Data Uploading.
    DATA: BEGIN OF IT_STR ,
            VKORG LIKE RF02D-VKORG,
            VTWEG LIKE RF02D-VTWEG,
            SPART LIKE RF02D-SPART,
            KTOKD LIKE RF02D-KTOKD,
            NAME1 LIKE KNA1-NAME1,     
            SORTL LIKE  KNA1-SORTL,     
            ORT01 LIKE KNA1-ORT01,     
            PSTLZ     LIKE KNA1-PSTLZ,     
            LAND1 LIKE KNA1-LAND1,     
            SPRAS LIKE KNA1-SPRAS,
            END OF IT_STR.
    *--Internal Table for Data Uploading.
    DATA: ITAB  LIKE IT_STR OCCURS 0.
    *--Internal Table to sucessfull Records.
    DATA:   ITAB1 LIKE IT_STR OCCURS 0.
    *--Internal Table to Store Error Records.
    DATA:    ITAB2 LIKE STANDARD TABLE OF IT_STR WITH HEADER LINE.
    *--Internal Table for Storing the BDC data.
    DATA: BDCDATA LIKE BDCDATA OCCURS 0 WITH HEADER LINE.
    *--Internal Table for storing the messages.
    DATA:   MESSTAB LIKE BDCMSGCOLL OCCURS 0 WITH HEADER LINE.
    DATA:   COUNT TYPE I VALUE 1,
            S VALUE 0, E VALUE 0.
    Selection screen *
    SELECTION-SCREEN BEGIN OF BLOCK b1
                     WITH FRAME TITLE TEXT-001.
    PARAMETERS: P_FILE TYPE IBIPPARMS-PATH.
    SELECTION-SCREEN END OF BLOCK B1.
    AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_FILE.
    *functionality to use drill down list
      CALL FUNCTION 'F4_FILENAME'
        EXPORTING
          PROGRAM_NAME  = SYST-CPROG
          DYNPRO_NUMBER = SYST-DYNNR
        IMPORTING
          FILE_NAME     = P_FILE.
    Start-of-selection *
    START-OF-SELECTION.
      DATA FILENAME TYPE STRING.
      FILENAME = P_FILE.
    *-- Form to upload flatfile data into the internal table.
      CALL FUNCTION 'GUI_UPLOAD'
        EXPORTING
          FILENAME                = FILENAME
          FILETYPE                = 'ASC'
          HAS_FIELD_SEPARATOR     = 'X'
        TABLES
          DATA_TAB                = ITAB
        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.
    *--Generating the BDC table for the fields of the internal table.
      LOOP AT ITAB INTO IT_STR.
        PERFORM BDC_DYNPRO      USING 'SAPMF02D' '0107'.
        PERFORM BDC_FIELD       USING 'BDC_CURSOR'
                                      'RF02D-KTOKD'.
        PERFORM BDC_FIELD       USING 'BDC_OKCODE'
                                      '/00'.
        PERFORM BDC_FIELD       USING 'RF02D-VKORG'
                                      IT_STR-VKORG.
        PERFORM BDC_FIELD       USING 'RF02D-VTWEG'
                                       IT_STR-VTWEG.
        PERFORM BDC_FIELD       USING 'RF02D-SPART'
                                      IT_STR-SPART.
        PERFORM BDC_FIELD       USING 'RF02D-KTOKD'
                                        IT_STR-KTOKD.
        PERFORM BDC_DYNPRO      USING 'SAPMF02D' '0110'.
        PERFORM BDC_FIELD       USING 'BDC_CURSOR'
                                      'KNA1-SPRAS'.
        PERFORM BDC_FIELD       USING 'BDC_OKCODE'
                                      '/00'.
        PERFORM BDC_FIELD       USING 'KNA1-NAME1'
                                    IT_STR-NAME1.
        PERFORM BDC_FIELD       USING 'KNA1-SORTL'
                                        IT_STR-SORTL.
        PERFORM BDC_FIELD       USING 'KNA1-ORT01'
                                        IT_STR-ORT01.
        PERFORM BDC_FIELD       USING 'KNA1-PSTLZ'
                                      IT_STR-PSTLZ.
        PERFORM BDC_FIELD       USING 'KNA1-LAND1'
                                      IT_STR-LAND1.
        PERFORM BDC_FIELD       USING 'KNA1-SPRAS'
                                        IT_STR-SPRAS.
        PERFORM BDC_DYNPRO      USING 'SAPMF02D' '0120'.
        PERFORM BDC_FIELD       USING 'BDC_CURSOR'
                                      'KNA1-TXJCD'.
        PERFORM BDC_FIELD       USING 'BDC_OKCODE'
                                      '/00'.
        PERFORM BDC_DYNPRO      USING 'SAPMF02D' '0125'.
        PERFORM BDC_FIELD       USING 'BDC_CURSOR'
                                      'KNA1-NIELS'.
        PERFORM BDC_FIELD       USING 'BDC_OKCODE'
                                      '/00'.
        PERFORM BDC_DYNPRO      USING 'SAPMF02D' '0360'.
        PERFORM BDC_FIELD       USING 'BDC_CURSOR'
                                      'KNVK-NAMEV(01)'.
        PERFORM BDC_FIELD       USING 'BDC_OKCODE'
                                      '=ENTR'.
        PERFORM BDC_DYNPRO      USING 'SAPMF02D' '0310'.
        PERFORM BDC_FIELD       USING 'BDC_CURSOR'
                                      'KNVV-BEGRU'.
        PERFORM BDC_FIELD       USING 'BDC_OKCODE'
                                      '/00'.
        PERFORM BDC_DYNPRO      USING 'SAPMF02D' '0324'.
        PERFORM BDC_FIELD       USING 'BDC_CURSOR'
                                      'KNVP-PARVW(01)'.
        PERFORM BDC_FIELD       USING 'BDC_OKCODE'
                                      '=ENTR'.
    *--Calling the transaction 'Vd01'.
        CALL TRANSACTION 'VD01' USING BDCDATA MODE 'N' UPDATE 'S'
        MESSAGES INTO MESSTAB.
        PERFORM MESSAGES.
        REFRESH : BDCDATA, MESSTAB.
      ENDLOOP.
    END-OF-SELECTION.
    *--Populating the Success records internal table.
      IF ITAB1[] IS NOT INITIAL.
    format color 5.
        WRITE: /'SUCCESSFUL RECORDS'.
        format color off.
        LOOP AT ITAB1 INTO IT_STR.
          WRITE:/ IT_STR-VKORG,IT_STR-VTWEG,
                  IT_STR-SPART,IT_STR-KTOKD,
                  IT_STR-NAME1,IT_STR-SORTL,     
                  IT_STR-ORT01,
                  IT_STR-PSTLZ,
                  IT_STR-LAND1,      
                  IT_STR-SPRAS.
          S = S + 1.
        ENDLOOP.
    REFRESH : ITAB1.
        WRITE:/ 'TOTAL RECORDS',S.
      ENDIF.
    *--Populating the error records internal table.
      IF ITAB2[] IS NOT INITIAL.
    FORMAT COLOR 3.
        WRITE :/ 'ERRORS RECORDS ARE'.
    FORMAT COLOR OFF.
        LOOP AT ITAB2.
          WRITE:/ ITAB2-VKORG,
                  ITAB2-VTWEG,
                  ITAB2-SPART,ITAB2-KTOKD,
                  ITAB2-NAME1,ITAB2-SORTL,     
                  ITAB2-ORT01,
                  ITAB2-PSTLZ,
                  ITAB2-LAND1,      
                  ITAB2-SPRAS.
            E = E + 1.
        ENDLOOP.
    REFRESH : ITAB2.
        WRITE: / 'TOTAL RECORDS',E.
    REFRESH : ITAB2.
      ENDIF.
    End of Selection *
    END-OF-SELECTION.
    TOP-OF-PAGE *
    TOP-OF-PAGE.
      WRITE:/ SY-ULINE.
      WRITE:/10 'REPORT ID',21 SY-REPID,35 'USERNAME',46 SY-UNAME,
      60 'SYSTEM DATE',70 SY-DATUM,80 'SYSTEM TIME',90 SY-UZEIT,
      100 'PAGE NO',108 SY-PAGNO.
      WRITE:/ SY-ULINE.
    FOrm to Populate the BDC table.
           Start new screen                                              *
    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 <> SPACE.
        CLEAR BDCDATA.
        BDCDATA-FNAM = FNAM.
        BDCDATA-FVAL = FVAL.
        APPEND BDCDATA.
      ENDIF.
    ENDFORM.                    "BDC_FIELD
    *&      Form  messages
    FORM MESSAGES .
      LOOP AT MESSTAB.
        IF MESSTAB-MSGTYP = 'I'.
         WRITE : / MESSTAB-MSGV1.
        ELSEIF
    MESSTAB-MSGTYP = 'S'.
          INSERT LINES OF ITAB FROM COUNT TO COUNT INTO TABLE ITAB1 .
          COUNT = COUNT + 1.
         WRITE : / MESSTAB-MSGV1.
        ELSEIF
        MESSTAB-MSGTYP = 'E'.
          INSERT LINES OF ITAB FROM COUNT TO COUNT INTO TABLE ITAB2.
          COUNT = COUNT + 1.
         WRITE : / MESSTAB-MSGV1.
        ENDIF.
      ENDLOOP.
    ENDFORM.                    " messages

    Hi
    Go through the doc and do the same using LSMW
    BDC is the way to transfer data by writing a batch input program which can use either session or call transaction method.
    LSMW used to transfer data without/less code.
    What type of data we transfer using LSMW?
    LSMW is best suited for transferring master data.
    Actually BDC and LSMW are not comparable at all.
    for example LSMW itself can use BDC as a way of mass data transfer.
    BDC is a mass data transfer technique via screen logic of existing SAP Data entry transactions. It behaves as if you are manually making thousand of entires into sap system as a background job. And that is probably the reason why BAPI's are preffered over BDC's.
    On the other hand LSMW is a tool to facilitate DATA migration from other legacy systems ... It contains step by step procedure for data migration.
    Like Managing Data Migration Projects , Creating Source Structures , Mapping Source structures wid Target structures , etc etc
    LSMW internally might well be using the following techniqes for data transfer..
    1. IDOX
    2. Direct Input / BDC
    4. BAPI's
    LSMW is an encapsulated data transfer tool. It can provide the same functionality as BDC infact much more but when coming to techinical perspective most the parameters are encapulated. To listout some of the differences :
    LSMW is basicaly designed for a fuctional consultant who do not do much coding but need to explore the fuctionality while BDC is designed for a technical consultant.
    LSMW offers different techinque for migrating data: Direct input ,BAPI,Idoc,Batch input recording. While bdc basically uses recording.
    LSMW mapping is done by SAP while in BDC we have to do it explicitly .
    LSMW is basically for standard SAP application while bdc basically for customized application.
    Coding can be done flexibly in BDC when compared to LSMW
    1. Maintain Attributes:
    Here you have to choose the second option and you can do the recording how this should work. Then assign the same to the Batch Input Recording name.
    2. Maintain Source structure:
    Create a structure name
    3. Maintain Source field:
    In this you have to create a structure same as that of the input file
    eg: name
    age
    4. Maintain structure relations:
    This will link the structure to the input file.
    5. Maintain field mapping and conversion rules:
    Here is the place where you can do coding, depending upon the code you have written or assignment you have done the values will get picked up from the file and get processed.
    6. Maintain field mapping and conversion rules:
    If you have any fixed values you can define here.
    7. Specify files:
    Specify the input file path and type.
    8. Assign files:
    This will assign ur file to the Input file
    9. Read Data:
    This will read ur data from teh file.
    10. Dispaly Read Data:
    You can see the uploaded data
    11. Convert Data
    This will convert the data to the corresponding format for processing
    12. Display Converted data:
    13. Create batch input session
    Here this will create a batch input session for processing
    14. Run Batch Input session:
    By clicking on the session and process the same you can do teh needfu.
    http://www.sapbrain.com/TOOLS/LSMW/SAP_LSMW_steps_introduction.html
    http://esnips.com/doc/8e732760-5548-44cc-a0bb-5982c9424f17/lsmw_sp.ppt
    http://esnips.com/doc/f55fef40-fb82-4e89-9000-88316699c323/Data-Transfer-Using-LSMW.zip
    http://esnips.com/doc/1cd73c19-4263-42a4-9d6f-ac5487b0ebcb/LSMW-with-Idocs.ppt
    http://esnips.com/doc/ef04c89f-f3a2-473c-beee-6db5bb3dbb0e/LSMW-with-BAPI.ppt
    http://esnips.com/doc/7582d072-6663-4388-803b-4b2b94d7f85e/LSMW.pdf
    for Long texts Upload
    Please take a look at this..
    http://help.sap.com/saphelp_erp2005/helpdata/en/e1/c6d30210e6cf4eac7b054a73f8fb1d/frameset.htm
    Reward points for useful Answers
    Regards
    Anji

  • How will you  collect error records in call transaction method

    hello
    how will handle errors in call transaction method...

    DATA: BEGIN OF ITAB OCCURS 0,
          F1(10) TYPE C,
          F2(18) TYPE C,
          F3(15) TYPE C,
          END OF ITAB.
    DATA: BEGIN OF ITAB1 OCCURS 0,
          F1(2) TYPE C,
          F2(10) TYPE C,
          F3(18) TYPE C,
          F4(15) TYPE C,
          END OF ITAB1.
    DATA : ITAB2 LIKE ITAB OCCURS 0 WITH HEADER LINE,
                IT_SUCCESS LIKE ITAB OCCURS 0 WITH HEADER LINE,
                IT_ERROR LIKE ITAB OCCURS 0 WITH HEADER LINE.
    DATA : BDCDATA LIKE BDCDATA OCCURS 0 WITH HEADER LINE,
               T_BDCMSGCOLL LIKE BDCMSGCOLL OCCURS 0 WITH HEADER LINE.
      CALL TRANSACTION 'VA01' USING BDCDATA MODE 'N' UPDATE 'S'
                                MESSAGES INTO T_BDCMSGCOLL.
      PERFORM ERRORHANDLING TABLES ITAB2 USING COUNT1 COUNT2.
      REFRESH BDCDATA.
    FORM ERRORHANDLING TABLES   P_ITAB2 STRUCTURE ITAB
                       USING    P_COUNT1
                                 P_COUNT2.
      IF SY-SUBRC <> 0.
        CALL FUNCTION 'FORMAT_MESSAGE'
          EXPORTING
            ID        = SY-MSGID
            LANG      = '-D'
            NO        = SY-MSGNO
            V1        = SY-MSGV1
            V2        = SY-MSGV2
            V3        = SY-MSGV3
            V4        = SY-MSGV4
          IMPORTING
            MSG       = T_BDCMSGCOLL
          EXCEPTIONS
            NOT_FOUND = 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.
        IF P_COUNT1 = 1.
          WRITE : / ' The records not loaded are '.
          P_COUNT1 = P_COUNT1 + 1.
        ENDIF.
        LOOP AT P_ITAB2.
          WRITE : / P_ITAB2-F1 , P_ITAB2-F2 , P_ITAB2-F3 .
          CLEAR P_ITAB2.
          DELETE P_ITAB2 INDEX 1.
        ENDLOOP.
        WRITE : /.
      ELSE.
        IF P_COUNT2 = 1.
          WRITE : /  ' The records loaded are '.
          P_COUNT2 = P_COUNT2 + 1.
        ENDIF.
        LOOP AT P_ITAB2.
          WRITE : / P_ITAB2-F1 , P_ITAB2-F2 , P_ITAB2-F3 .
          CLEAR P_ITAB2.
          DELETE P_ITAB2 INDEX 1.
        ENDLOOP.
        WRITE : /.
      ENDIF.
    ENDFORM.                    " errorhandling

  • BDC using call transaction

    Hi ,
    This is vijay...
    can anyone help me plz
    Hi,
    Iam uploading data using call transaction.Tcode is ff67.In this TCode we have the begining balance(ssald) and ending balance(esald).The new record we are uploading will take the begining balance as the previous record ending balance, if we give the begining balance wrong then the record does not saved it will show error(the begining balance does not match with the prior ending balance).
    while uploading the data using MODE A iam able to get the desired output but by using the MODE N iam not able to get the desired output i,e if there is any error in the begining balance also the record is being saved iam not getting the error message.
    Iam attaching the code below..please help me
    report Z_BRS_BDC no standard page heading line-size 255.
            INTERNAL TABLES DECLARATIONS
    DATA : BEGIN OF bdcdata OCCURS 0.
            INCLUDE STRUCTURE bdcdata.
    DATA : END OF bdcdata.
    DATA:  LV_OUT TYPE STRING.
    DATA : iopt LIKE ctu_params.
    DATA : wa_rec_err   TYPE i.
    DATA : wa_rec_wri TYPE i.
    DATA : wa_tot_rec TYPE i.
    DATA : amt(16) type c.
    DATA : BEGIN OF gu_upload OCCURS 0,
           hbkid LIKE febmka-hbkid,
           hktid LIKE febmka-hktid,
           aznum LIKE febmka-aznum,
           azdat LIKE febmka-azdat,
           ssald LIKE amt,
           esald LIKE amt,
           budtm LIKE febmka-budtm,
           mnam1 LIKE febmka-mnam1,
           jname LIKE febmka-jname,
           vgman LIKE febmka-vgman,
           valut LIKE febep-valut,
           kwbtr(13) TYPE c,
           chect_kf LIKE febmkk-chect_kf,
          END OF gu_upload.
    DATA:GU_DOWNLOAD LIKE GU_UPLOAD OCCURS 0 WITH HEADER LINE.
    kishi*********************************
    DATA: BEGIN OF itab OCCURS 0,
         vgman LIKE febmka-vgman,
         valut LIKE febep-valut,
         kwbtr(13) TYPE c,
         chect_kf LIKE febmkk-chect_kf,
         END OF itab.
    kishi)(_()00-8-09
    DATA: BEGIN OF  messtab OCCURS 0.
            INCLUDE STRUCTURE bdcmsgcoll.
    DATA: END OF messtab.
    DATA: BEGIN OF messtab1 OCCURS 0.
            INCLUDE STRUCTURE messtab.
    DATA: END OF messtab1.
    DATA : BEGIN OF int_count OCCURS 0.
            INCLUDE STRUCTURE alsmex_tabline.
    DATA : END OF int_count.
    DATA: c_tcode      LIKE sy-tcode              VALUE 'FF67',
          c_upd        LIKE ctu_params-updmode    VALUE 'S',
          c_def_size   LIKE ctu_params-defsize    VALUE 'X'.
    *VALUES FOR STARTING COLUMNS AND ROWS IN THE EXCEL SHEET
    DATA : c_begcol     TYPE i                     VALUE '1',
          c_begrow     TYPE i                     VALUE '1',
    *DATA IS ENDED AT THE 13TH COLUMN IN THE EXCELSHEET
          c_endcol     TYPE i                     VALUE '13',
    *LAST ROW IN THE EXCEL SHEET
          c_endrow     TYPE i                     VALUE '65536',
          c_path(3)    TYPE c                     VALUE 'C:\'.
    *Field Symbols
    FIELD-SYMBOLS: <fs>.
         SELECTION SCREEN PARAMETERS
    SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-001.
    PARAMETERS : p_file LIKE rlgrap-filename DEFAULT
    'C:\ ',
    *This is the path for downloading file
    P_FNAME2 LIKE RLGRAP-FILENAME ,
    c_mode LIKE ctu_params-dismode  DEFAULT 'N'.
    SELECTION-SCREEN END OF BLOCK b1.
    AT SELECTION-SCREEN.
    AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_file.
    *F4 HELP FOR FILE SELECTION
      PERFORM validate_input_file.
    START-OF-SELECTION.
      CLEAR gu_upload.
      REFRESH gu_upload.
         UPLOAD THE DATA FROM FLAT FILE TO INTERNAL TABLE
      PERFORM file_upload.
      iopt-dismode = c_mode.
      iopt-updmode = c_upd.
      iopt-defsize = c_def_size.
         POPULATE THE DATA THROUGHSCREENS
      PERFORM bdc_upload.
    END-OF-SELECTION.
    *DISPLY THE ERROR RECORDS
    PERFORM DISPLAY-DATA.
          FORM file_upload                                              *
    FORM file_upload.
      CALL FUNCTION 'ALSM_EXCEL_TO_INTERNAL_TABLE'
           EXPORTING
                filename                = p_file
                i_begin_col             = c_begcol
                i_begin_row             = c_begrow
                i_end_col               = c_endcol
                i_end_row               = c_endrow
           TABLES
                intern                  = int_count
           EXCEPTIONS
                inconsistent_parameters = 1
                upload_ole              = 2
                OTHERS                  = 3.
      LOOP AT int_count.
        ASSIGN COMPONENT int_count-col OF STRUCTURE gu_upload TO <fs>.
        IF sy-subrc NE 0.
          EXIT.
        ENDIF.
        <fs> = int_count-value.
        AT END OF row.
          APPEND gu_upload.
          CLEAR gu_upload.
        ENDAT.
      ENDLOOP.
    *kishhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh
      LOOP AT gu_upload.
        itab-vgman = gu_upload-vgman.
        itab-valut =  gu_upload-valut.
        itab-kwbtr = gu_upload-kwbtr.
        itab-chect_kf = gu_upload-chect_kf.
        APPEND itab.
      ENDLOOP.
    *kishiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii
    ENDFORM.                    "file_upload
    *&      Form  BDC_UPLOAD
    FORM bdc_upload.
      LOOP AT gu_upload.
        CLEAR bdcdata.
        REFRESH bdcdata.
    *&      POPULATE THE DATA FOR FIRST SCREEN
    perform bdc_dynpro      using 'SAPMF40K' '0101'.
    perform bdc_field       using 'BDC_CURSOR'
                                  'FEBMKA-JNAME'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '/00'.
    perform bdc_field       using 'FEBMKA-BUKRS'
                                  'IN14'.
    perform bdc_field       using 'FEBMKA-HBKID'
                                  gu_upload-hbkid.
    perform bdc_field       using 'FEBMKA-HKTID'
                                  gu_upload-hktid.
    perform bdc_field       using 'FEBMKA-AZNUM'
                                  gu_upload-aznum.
    perform bdc_field       using 'FEBMKA-AZDAT'
                                  gu_upload-azdat.
    perform bdc_field       using 'FEBMKA-SSALD'
                                  gu_upload-ssald.
    perform bdc_field       using 'FEBMKA-ESALD'
                                  gu_upload-esald.
    perform bdc_field       using 'FEBMKA-BUDTM'
                                  gu_upload-budtm.
    perform bdc_field       using 'FEBMKA-MNAM1'
                                  gu_upload-mnam1.
    perform bdc_field       using 'FEBMKA-JNAME'
                                  gu_upload-jname.
    *&      POPULATE THE DATA FOR SECOND SCREEN
        DATA : fnam(20) TYPE c,
              idx      TYPE c.
        MOVE 1 TO idx.
        LOOP AT itab.
          PERFORM bdc_dynpro      USING 'SAPMF40K' '8000'.
          PERFORM bdc_field       USING 'BDC_CURSOR'
                                        'FEBMKK-CHECT_KF(03)'.
          PERFORM bdc_field       USING 'BDC_OKCODE'
                                        '/00'.
          CONCATENATE 'FEBMKA-VGMAN(' idx ')' INTO fnam.
          PERFORM bdc_field       USING fnam
                                        itab-vgman.
          CONCATENATE 'FEBEP-VALUT(' idx ')' INTO fnam.
          PERFORM bdc_field       USING fnam itab-valut.
          CONCATENATE 'FEBMKA-KWBTR(' idx ')' INTO fnam.
          PERFORM bdc_field       USING fnam itab-kwbtr.
          CONCATENATE 'FEBMKK-CHECT_KF(' idx ')' INTO fnam.
          PERFORM bdc_field USING fnam itab-chect_kf.
          idx = idx + 1.
        ENDLOOP.
    *perform bdc_dynpro      using 'SAPMF40K' '8000'.
    *perform bdc_field       using 'BDC_CURSOR'
                                 'FEBMKK-CHECT_KF(01)'.
    *perform bdc_field       using 'BDC_OKCODE'
                                 '/00'.
    *perform bdc_field       using 'FEBMKA-VGMAN(01)'
                                 'z001'.
    *perform bdc_field       using 'FEBEP-VALUT(01)'
                                 '2007/04/26'.
    *perform bdc_field       using 'FEBMKA-KWBTR(01)'
                                 '          5000-'.
    *perform bdc_field       using 'FEBMKK-CHECT_KF(01)'
                                 '1122'.
    perform bdc_dynpro      using 'SAPMF40K' '8000'.
    perform bdc_field       using 'BDC_CURSOR'
                                  'FEBMKK-CHECT_KF(01)'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '=SICH'.
    *&      POPULATE THE DATA FOR FOURTH SCREEN
    perform bdc_dynpro      using 'SAPMF40K' '0101'.
    perform bdc_field       using 'BDC_CURSOR'
                                  'FEBMKA-BUKRS'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '=BUCH'.
    perform bdc_field       using 'FEBMKA-BUKRS'
                                  'IN14'.
    perform bdc_field       using 'FEBMKA-HBKID'
                                  gu_upload-hbkid.
    perform bdc_field       using 'FEBMKA-HKTID'
                                  gu_upload-hktid.
    perform bdc_field       using 'FEBMKA-AZNUM'
                                  gu_upload-aznum.
    perform bdc_field       using 'FEBMKA-AZDAT'
                                  gu_upload-azdat.
    perform bdc_field       using 'FEBMKA-SSALD'
                                  gu_upload-ssald.
    perform bdc_field       using 'FEBMKA-ESALD'
                                  gu_upload-esald.
    perform bdc_field       using 'FEBMKA-BUDTM'
                                  gu_upload-budtm.
    perform bdc_field       using 'FEBMKA-MNAM1'
                                  gu_upload-mnam1.
    perform bdc_field       using 'FEBMKA-JNAME'
                                  gu_upload-jname.
    *perform bdc_dynpro      using 'SAPMF40K' '0101'.
    *perform bdc_field       using 'BDC_OKCODE'
                                 '/EENDE'.
    *perform bdc_field       using 'BDC_CURSOR'
                                 'FEBMKA-BUKRS'.
    perform bdc_dynpro      using 'SAPMF40K' '0101'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '/EABBR'.
    perform bdc_field       using 'BDC_CURSOR'
                                  'FEBMKA-BUKRS'.
    *&      USING THE CALL TRANSACTION
        PERFORM call_transaction.
       CLEAR BDCDATA.                      "<--- Add here
       REFRESH BDCDATA.                 "<--- Add here
      ENDLOOP.
    ENDFORM.                    " BDC_UPLOAD
    *&      Form  VALIDATE_INPUT_FILE
    FORM validate_input_file.
      CALL FUNCTION 'WS_FILENAME_GET'
           EXPORTING
                def_path         = ' c:\ '
                mask             = ',.txt,.*.'
                mode             = 'O'
                title            = 'Upload '
           IMPORTING
                filename         = p_file
           EXCEPTIONS
                inv_winsys       = 1
                no_batch         = 2
                selection_cancel = 3
                selection_error  = 4
                OTHERS           = 5.
    IF sy-subrc <> 0.
    IF sy-subrc <> 0 AND sy-subrc <> 3.
       MESSAGE e100(zm) WITH text-007.
    ENDIF.
    ENDFORM.                    " VALIDATE_INPUT_FILE
           Start new screen                                              *
    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.
      CLEAR bdcdata.
      bdcdata-fnam = fnam.
      bdcdata-fval = fval.
      APPEND bdcdata.
    ENDFORM.                    "bdc_field
    *&      Form  CALL_TRANSACTION
    FORM call_transaction.
      DATA: l_index LIKE sy-tabix.
      CALL TRANSACTION  c_tcode USING bdcdata
                                MODE c_mode
                                MESSAGES INTO messtab.
    *POPULATE THE ERROR RECORDS INTO INTERNAL TABLE
      IF SY-SUBRC NE 0.
        GU_DOWNLOAD-HBKID = GU_UPLOAD-HBKID.
       GU_DOWNLOAD-HBKID = GU_UPLOAD-HBKID.
        GU_DOWNLOAD-HKTID = GU_UPLOAD-HKTID.
        GU_DOWNLOAD-AZNUM = GU_UPLOAD-AZNUM.
        GU_DOWNLOAD-AZDAT = GU_UPLOAD-AZDAT.
        GU_DOWNLOAD-ESALD = GU_UPLOAD-ESALD.
        GU_DOWNLOAD-SSALD = GU_UPLOAD-SSALD.
        GU_DOWNLOAD-BUDTM = GU_UPLOAD-BUDTM.
        GU_DOWNLOAD-MNAM1 = GU_UPLOAD-MNAM1.
        GU_DOWNLOAD-JNAME = GU_UPLOAD-JNAME.
        GU_DOWNLOAD-VGMAN = GU_UPLOAD-VGMAN.
        GU_DOWNLOAD-VALUT = GU_UPLOAD-VALUT.
        GU_DOWNLOAD-KWBTR = GU_UPLOAD-KWBTR.
        GU_DOWNLOAD-CHECT_KF = GU_UPLOAD-CHECT_KF.
        APPEND GU_DOWNLOAD.
    *DISPLAY THE PROGRESS OF PROCESS
    CALL FUNCTION 'SAPGUI_PROGRESS_INDICATOR'
    EXPORTING
       PERCENTAGE       = 0
       TEXT             = 'Downloading is in process'.
    *DOWNLOADING THE ERROR RECORD
        LV_OUT = P_FNAME2.
        CALL FUNCTION 'GUI_DOWNLOAD'
          EXPORTING
            FILENAME               =  LV_OUT
            WRITE_FIELD_SEPARATOR  =      'X'
          TABLES
            DATA_TAB                =  GU_DOWNLOAD.
    ENDIF.
      IF NOT messtab[] IS INITIAL.
        PERFORM format_message.
      ENDIF.
    ENDFORM.                    " CALL_TRANSACTION
    *&      Form  DISPLAY-DATA
    FORM display-data.
      SKIP.
      WRITE: 'SY-SUBRC' , sy-subrc.
    ENDFORM.                    " DISPLAY-DATA
          FORM FORMAT_MESSAGE                                           *
    FORM format_message.
      DATA: l_msg(100),
       l_index LIKE sy-tabix.
      LOOP AT messtab.
        READ TABLE gu_upload INDEX l_index.
        CALL FUNCTION 'FORMAT_MESSAGE'
             EXPORTING
                  id        = messtab-msgid
                  lang      = sy-langu
                  no        = messtab-msgnr
                  v1        = messtab-msgv1
                  v2        = messtab-msgv2
                  v3        = messtab-msgv3
                  v4        = messtab-msgv4
             IMPORTING
                  msg       = l_msg
             EXCEPTIONS
                  not_found = 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.
       WRITE:/ l_msg.
      ENDLOOP.
      WRITE:/ l_msg.
    ENDFORM.
    Message was edited by:
            vijayd duvvada

    Hi,
      First , keep the mode "E" and check the debugger , you can exactly see where the error is and let me know, what error and where it is stoping.
    By your coding, i suppose to think that, its proble in the amount (currency). When ever you are try to pass the value, and value is not there in upload file or data is mismatch, the call transaction will fail in mode 'A' and succesful in mode 'N'.
    In that situation use this before the currecny field.
    IF NOT FEBMKA-SSALD IS INTIAL.
       perform bdc_field using 'FEBMKA-ESALD'
                                      gu_upload-esald.
    ENDIF.
    tHANKS
    Manju

  • Call transaction using bdc tab and also skip first screen??

    Hi,
    Please help.
    I want to call transaction PA30 fill it with values which are determined only at runtime and then skip first screen.
    The screen doesn't have parameter fields so i cannot use 'set parameter id'.
    I also cannot create a transaction with parameters as I only have these at runtime.
    Anyone done anything like this???

    hi,
      you might be populateing the itab bdc_tab with the corresponding values fronm the recording.
    while doing the recording go until to the screen wher u want to finsih.
    and populate the bdc_tab wit the ok code,screen number and the value.
    this will do.
    for eg see the code below.
    METHOD analyze_log.
      DATA : wrk_extid TYPE balhdr-extnumber.
      DATA : wrk_date(10) TYPE c.
      DATA : it_rspar TYPE TABLE OF rsparams .
      DATA : wa_rspar TYPE rsparams.
      DATA: it_bdcdata TYPE STANDARD TABLE OF bdcdata,
          wa_bdcdata TYPE bdcdata.
      DATA: params TYPE ctu_params.
      CONSTANTS : object TYPE balhdr-object VALUE 'ZKIV_LOG'.
      IF wa_kopf-vertr_nr IS NOT INITIAL.
        CONCATENATE wa_kopf-vertr_nr '/' wa_kopf-nachtr_nr  INTO wrk_extid.
        wrk_date = '01.09.2006'.
        SET PARAMETER ID 'BALOBJ' FIELD object .
        SET PARAMETER ID 'BALEXT' FIELD wrk_extid.
        wa_rspar-selname = 'ALDATE'.
        wa_rspar-sign = 'I'.
        wa_rspar-kind = 'P'.
        wa_rspar-option = 'EQ'.
        wa_rspar-low = wrk_date.
        APPEND wa_rspar TO it_rspar.
      ELSE.
        CLEAR wrk_extid.
        SET PARAMETER ID 'BALEXT' FIELD wrk_extid.
      ENDIF.
    Update BDC tab
    --Call SLG1 using BDC--&
      params-dismode = 'E'. "Show errors only
      CLEAR wa_bdcdata.
      wa_bdcdata-program  = 'SAPLSLG3'.
      wa_bdcdata-dynpro   = '0100'.
      wa_bdcdata-dynbegin = 'X'.
      APPEND wa_bdcdata TO it_bdcdata.
      CLEAR wa_bdcdata.
      wa_bdcdata-fnam = 'BDC_CURSOR'.
      wa_bdcdata-fval = 'BALHDR-ALDATE'.
      APPEND wa_bdcdata TO it_bdcdata.
      CLEAR wa_bdcdata.
      wa_bdcdata-fnam = 'BALHDR-ALDATE'.
      wa_bdcdata-fval = wrk_date.
      APPEND wa_bdcdata TO it_bdcdata.
      CLEAR wa_bdcdata.
      wa_bdcdata-fnam = 'BDC_OKCODE'.
      wa_bdcdata-fval = '=SELE'.
      APPEND wa_bdcdata TO it_bdcdata.
      CLEAR wa_bdcdata.
      wa_bdcdata-program  = 'SAPLSLG3'.
      wa_bdcdata-dynpro   = '0100'.
      wa_bdcdata-dynbegin = 'X'.
      APPEND wa_bdcdata TO it_bdcdata.
      CLEAR wa_bdcdata.
      wa_bdcdata-fnam = 'BDC_OKCODE'.
      wa_bdcdata-fval = '=&F03'.
      APPEND wa_bdcdata TO it_bdcdata.
      CLEAR wa_bdcdata.
      wa_bdcdata-fnam = 'BDC_SUBSCR'.
      wa_bdcdata-fval = 'SAPLSBAL_DISPLAY                        0101SUBSCREEN'.
      APPEND wa_bdcdata TO it_bdcdata.
      CALL TRANSACTION 'SLG1' USING it_bdcdata OPTIONS FROM params.
    --End of BDC--&
    ENDMETHOD.
    here wat i m doing is that i dont want the subscreen 101 to be displayed..
    Message was edited by:
            Sandeep S

Maybe you are looking for