BDC Program: Upload half field.

Dear Gurus,
I had a field which look like this, [Salesperson|http://www.pikipimp.com/pp/pimped_photo/s/image/42/144/463/mk03-compiled.JPG?ts=1236666465484]
I want to update the high lighted place in the salesperson field on the screen base by BDC program. User gave me the CSV file with vendor code and new salesperson name only, how can I upload the CSV file with this 2 field and will not affected the business category field at the RHS?
Please guide if possible.
Thank you very much!!
Warm regards

hi,
before modyfing field via BDC program from CSV file you must
read current value in LFM1-VERKF:
1. select verkf from lfm1 into zverkf where....
2. concatenate value_from_csv_file zverkf+10 into new_field.
(I assumed that second part of field started at 10 character)
3. modify field via bdc:
perform bdc_field     using 'LFM1-VERKF' new_field.
regards,darek

Similar Messages

  • Changes in BDC program to upload data from text/excel file

    Hi friends i have obtained the BDc program after recording :
    start-of-selection.
    perform open_group.
    perform bdc_dynpro      using 'SAPLCOIH' '0100'.
    perform bdc_field       using 'BDC_CURSOR'
                                  'CAUFVD-GSBER'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '/00'.
    perform bdc_field       using 'AUFPAR-PM_AUFART'
                                  'PM01'.
    perform bdc_field       using 'CAUFVD-IWERK'
                                  '460a'.
    perform bdc_field       using 'CAUFVD-GSBER'
                                  '2460'.
    perform bdc_field       using 'CAUFVD-EQUNR'
                                  '10000009'.
    perform bdc_dynpro      using 'SAPLCOIH' '3000'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '/00'.
    perform bdc_field       using 'CAUFVD-KTEXT'
                                  'abc'.
    perform bdc_field       using 'CAUFVD-INGPR'
                                  'GM'.
    perform bdc_field       using 'CAUFVD-VAPLZ'
                                  'RTN_VELR'.
    perform bdc_field       using 'CAUFVD-VAWRK'
                                  '460A'.
    perform bdc_field       using 'BDC_CURSOR'
                                  'CAUFVD-GLTRP'.
    perform bdc_field       using 'CAUFVD-GSTRP'
                                  '1.8.2010'.
    perform bdc_field       using 'CAUFVD-GLTRP'
                                  '1.8.2010'.
    perform bdc_field       using 'CAUFVD-TPLNR'
                                  'RTNP-HIG'.
    perform bdc_field       using 'CAUFVD-EQUNR'
                                  '10000009'.
    perform bdc_field       using 'AFVGD-INDET'
                                  '1'.
    perform bdc_field       using 'AFVGD-WERKS'
                                  '460A'.
    perform bdc_field       using 'AFVGD-STEUS'
                                  'PMIN'.
    perform bdc_field       using 'AFVGD-ARBEH'
                                  'H'.
    perform bdc_field       using 'AFVGD-DAUNE'
                                  'H'.
    perform bdc_dynpro      using 'SAPLCOIH' '3000'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '=BU'.
    perform bdc_field       using 'BDC_CURSOR'
                                  'CAUFVD-KTEXT'.
    perform bdc_field       using 'CAUFVD-KTEXT'
                                  'abc'.
    perform bdc_field       using 'CAUFVD-INGPR'
                                  'GM'.
    perform bdc_field       using 'CAUFVD-VAPLZ'
                                  'RTN_VELR'.
    perform bdc_field       using 'CAUFVD-VAWRK'
                                  '460A'.
    perform bdc_field       using 'CAUFVD-GSTRP'
                                  '01.08.2010'.
    perform bdc_field       using 'CAUFVD-GLTRP'
                                  '01.08.2010'.
    perform bdc_field       using 'CAUFVD-TPLNR'
                                  'RTNP-HIG'.
    perform bdc_field       using 'CAUFVD-EQUNR'
                                  '10000009'.
    perform bdc_field       using 'AFVGD-LTXA1'
                                  'abc'.
    perform bdc_field       using 'AFVGD-INDET'
                                  '1'.
    perform bdc_field       using 'AFVGD-ARBPL'
                                  'RTN_VELR'.
    perform bdc_field       using 'AFVGD-WERKS'
                                  '460A'.
    perform bdc_field       using 'AFVGD-STEUS'
                                  'PMIN'.
    perform bdc_field       using 'AFVGD-ARBEH'
                                  'H'.
    perform bdc_field       using 'AFVGD-DAUNE'
                                  'H'.
    perform bdc_transaction using 'IW31'.
    perform close_group.
    after executing it has two options.one is for call transactioin and other is for with session.Now i want to do the uploading from text file.Please guide me how to achieve that and what should be the order of fields in the text file.I am just a beginner.I know how to do that with LSMW bt trying BDc first time for creating PM orders

    You can use class "cl_gui_frontend_services". First you must select file with "file_open_dialog" method and the you can upload file with "gui_upload" method into internal table. Here is a sample: (I didn't try the code but I'm sure you can get it working, there are lots of sample codes about that. You can also search FM "GUI_UPLOAD").
    REPORT  zreport.
    DATA:
    gv_subrc TYPE sysubrc,
    gv_result TYPE abap_bool,
    gt_data_tab type table of zstruc.
    PARAMETERS: p_fname LIKE rlgrap-filename.
    AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_fname.
        PERFORM file_open_dialog USING space space space space
                            CHANGING p_fname gv_action gv_subrc.
    START-OF-SELECTION.
    PERFORM gui_upload TABLES gt_data_tab
                     USING p_fname  CHANGING gv_subrc.
    *** FORMS ***
    FORM file_open_dialog USING pv_window_title
                                pv_default_extension
                                pv_default_filename
                                pv_initial_directory
                       CHANGING pv_filename
                                pv_user_action
                                pv_subrc.
      DATA:
      lt_file_table TYPE filetable,
      lv_rc         TYPE i,
      lv_initial_directory TYPE string.
      IF pv_initial_directory IS INITIAL.
        PERFORM get_desktop_directory CHANGING lv_initial_directory.
      ELSE.
        lv_initial_directory = pv_initial_directory.
      ENDIF.
      CALL METHOD cl_gui_frontend_services=>file_open_dialog
        EXPORTING
          window_title            = pv_window_title
          default_extension       = pv_default_extension
          default_filename        = pv_default_filename
    *     file_filter             =
    *     with_encoding           =
          initial_directory       = lv_initial_directory
    *     multiselection          =
        CHANGING
          file_table              = lt_file_table
          rc                      = lv_rc
          user_action             = pv_user_action
    *     file_encoding           =
        EXCEPTIONS
          file_open_dialog_failed = 1
          cntl_error              = 2
          error_no_gui            = 3
          not_supported_by_gui    = 4
          OTHERS                  = 5
      pv_subrc = sy-subrc.
      IF pv_subrc EQ 0.
        READ TABLE lt_file_table INTO pv_filename INDEX 1.
      ENDIF.
    ENDFORM.
    FORM gui_upload TABLES pt_data_tab
                     USING pv_filename
                  CHANGING pv_subrc    TYPE sysubrc.
      DATA:
      lt_data_tab TYPE TABLE OF string,
      lv_filename TYPE string.
      lv_filename = pv_filename.
      CALL METHOD cl_gui_frontend_services=>gui_upload
        EXPORTING
          filename                = lv_filename
          filetype                = 'ASC'
         has_field_separator     = 'X'
    *     header_length           = 0
    *     read_by_line            = 'X'
    *     dat_mode                = SPACE
    *     codepage                = SPACE
    *     ignore_cerr             = ABAP_TRUE
    *     replacement             = '#'
    *     virus_scan_profile      =
    *     show_transfer_status    = 'X'
    *   IMPORTING
    *     filelength              =
    *     header                  =
        CHANGING
          data_tab                = lt_data_tab
        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
          not_supported_by_gui    = 17
          error_no_gui            = 18
          OTHERS                  = 19
      pv_subrc = sy-subrc.
      IF pv_subrc EQ 0.
        pt_data_tab[] = lt_data_tab[].
      ENDIF.
    ENDFORM.

  • Problem in the BDC program to upload the data from a flat file.

    Hi,
    I am required to write a BDC program to upload the data from a flat file. The conditions are as mentioned below:-
    1) Selection Screen will be prompted to user and user needs to provide:- File Path on presentation server (with F4 help for this obligatory parameter) and File Separator e.g. @,#,$,%,... etc(fields in the file will be separated by using this special character) or fields may be separated by tab(tab delimited).
    2) Finally after the data is uploaded, following messages need to be displayed:-
    a) Total Number of records successfully uploaded.
    b) Session Name
    c) Number of Sessions created.
    Problem is when each record is fetched from flat file, the record needs to be split into individual fields separated by delimiter or in case tab separated, then proceeding in usual manner.
    It would be great if you provide me either the logic, pseudocode, or sample code for this BDC program.
    Thanks,

    Here is an example program,  if you require the delimitor to be a TAB, then enter TAB on the selection screen, if you require the delimitor to be a comma, slash, pipe, whatever, then simply enter that value.  This example is simply the uploading of the file, not the BDC, I assume that you know what to do once you have the data into the internal table.
    REPORT zrich_0001.
    TYPES: BEGIN OF ttab,
            rec TYPE string,
           END OF ttab.
    TYPES: BEGIN OF tdat,
           fld1(10) TYPE c,
           fld2(10) TYPE c,
           fld3(10) TYPE c,
           fld4(10) TYPE c,
           END OF tdat.
    DATA: itab TYPE TABLE OF ttab.
    data: xtab like line of itab.
    DATA: idat TYPE TABLE OF tdat.
    data: xdat like line of idat.
    DATA: file_str TYPE string.
    DATA: delimitor TYPE string.
    PARAMETERS: p_file TYPE localfile.
    PARAMETERS: p_del(5) TYPE c.
    AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_file.
      DATA: ifiletab TYPE filetable.
      DATA: xfiletab LIKE LINE OF ifiletab.
      DATA: rc TYPE i.
      CALL METHOD cl_gui_frontend_services=>file_open_dialog
        CHANGING
          file_table = ifiletab
          rc         = rc.
      READ TABLE ifiletab INTO xfiletab INDEX 1.
      IF sy-subrc = 0.
        p_file = xfiletab-filename.
      ENDIF.
    START-OF-SELECTION.
      TRANSLATE p_del TO UPPER CASE.
      CASE p_del.
        WHEN 'TAB'.
          delimitor = cl_abap_char_utilities=>horizontal_tab.
        WHEN others.
          delimitor = p_del.
      ENDCASE.
      file_str = p_file.
      CALL METHOD cl_gui_frontend_services=>gui_upload
        EXPORTING
          filename = file_str
        CHANGING
          data_tab = itab.
      LOOP AT itab into xtab.
        CLEAR xdat.
        SPLIT xtab-rec AT delimitor INTO xdat-fld1
                                         xdat-fld2
                                         xdat-fld3
                                         xdat-fld4.
        APPEND xdat to idat.
      ENDLOOP.
      LOOP AT idat into xdat.
        WRITE:/ xdat-fld1, xdat-fld2, xdat-fld3, xdat-fld4.
      ENDLOOP.
    Regards,
    Rich Heilman

  • Budget Document Entry Upload via LSMW or BDC Program not working!

    Hi All,
    I tried creating a LSMW and a BDC program for upload of budgets by recording Tcode FMBB.  Unfortunately, I didn't succeed because some fields in Tcode FMBB are not input ready.  I therefore seek an alternative solution to upload the budgets.  I have the following questions:-
    1.  Is there a standard program that can be used to upload the budgets?  If so, please give a the name or   Tcode for the program.
    2. I have checked in this site and confirmed I can use BAPI BAPI_0050_CREATE to upload the budgets.  Unfortunately, I have never used BAPIs before. How do I the BAPI to upload my data in Excel? Do I call the BAPI as a function in a program? How do I format the data in Excel for Upload.  Kindly provide a step by step procedure on how this can be done and also explain how the data is formatted in Excel.
    Thank you.
    Robeth

    Hi Alok,
    May be ur recording a table control in the transaction FB01 for accounting line items..
    When recording line items.. u need to record the page "page down" button...
    If it is so..
    You can control the line item table control , by recording the line item in the second row, then recording the 'page down' button..
    This will move your line item to first row and the next line item will be recorded in the second row....and it continues on...
    But i am unaware that BDC is tuff for enjoy transactions... If it is so, please go for the bapi specified by Kishan..
    Awrd and close the thread if answered...
    Thanks
    Rajiv

  • How can we write BDC program to upload data in to line items(VA01) ?

    Error in processing BDC table control program...
    How can i populate data through bdc program dynamically, when some of the lines are in disable mode....
    for e.g ...
    in va01 transaction code ....
    1 to 5 lines are not in disable mode....
    but 5 to 10 lines are in disable mode...
    so hw u process those remaining disable lines at runtime and populate data in to the fields of line items...through bdc program..

    hi..friends.,
    yea actually this question has been raised by interviewer ...
    but just the same i replied as you did...
    but he told that we can upload the data....towards in to disabled line items
    at run time..with using change trasaction va02..with implementing bdc programm...
    so i just want to know the steps of how to perform it..
    Can anyone....my friends..
    byeeee.....

  • Upload HR master data Parmanent Address & home address  by a BDC Program.

    Hi exparts,
    I writte a BDC program to upload HR master data for tcode PA30.
    But I can upload parmanet address with this program.
    I want to upload parmanent address then home address .
    Can anybody help , how can I upload  Parmanent Address & home address   by a single BDC program.
    Thanks
    Edited by: Abu Rayhan on Jun 2, 2011 1:01 PM

    report ZHR_SMP
           no standard page heading line-size 255.
    Internal Table TYPE Declaration for keeping Legacy Data
    TYPES: BEGIN OF TW_MAIN,
            PERNR LIKE RP50G-PERNR,
            BEGDA LIKE P0006-BEGDA,
            ANSSA LIKE P0006-ANSSA,
            STRAS LIKE P0006-STRAS,
            ORT01 LIKE P0006-ORT01,
            STATE LIKE P0006-STATE,
            PSTLZ LIKE P0006-PSTLZ,
            LAND1 LIKE P0006-LAND1,
            END OF TW_MAIN,
           TT_MAIN TYPE STANDARD TABLE OF TW_MAIN.
    DATA : WA_MAIN TYPE TW_MAIN,
           IT_MAIN TYPE TT_MAIN,
           WA_ITEM TYPE TW_MAIN,
           IT_ITEM TYPE TT_MAIN,
           WA_BDCDATA TYPE BDCDATA,
           IT_BDCDATA TYPE STANDARD TABLE OF BDCDATA,
           WA_BDCMSGCOLL TYPE BDCMSGCOLL,
           IT_BDCMSGCOLL TYPE STANDARD TABLE OF BDCMSGCOLL.
    Internal table for enable Required options using Call transaction & Session Method.
    DATA: it_intern TYPE alsmex_tabline OCCURS 0 WITH HEADER LINE.
    DATA ls_ctu_params TYPE ctu_params.
    DATA : U_MODE(1),
           U_UPDT(1),
           FNAM(30),
           STR TYPE STRING.
    SELECTION-SCREEN BEGIN OF BLOCK bk1 WITH FRAME TITLE text-001.
    PARAMETERS p_fname TYPE localfile OBLIGATORY.
    PARAMETERS: p_begcol TYPE i DEFAULT 1,
                p_begrow TYPE i DEFAULT 2,
                p_endcol TYPE i DEFAULT 20,
                p_endrow TYPE i DEFAULT 1600.
    SELECTION-SCREEN END OF BLOCK bk1.
    SELECTION-SCREEN : BEGIN OF BLOCK B4 WITH FRAME TITLE TEXT-004.
    SELECTION-SCREEN : BEGIN OF BLOCK B2 WITH FRAME TITLE TEXT-002.
    PARAMETERS : P_FIRST RADIOBUTTON GROUP RB  DEFAULT 'X',
                 P_SECOND RADIOBUTTON GROUP RB,
                 P_THIRD RADIOBUTTON GROUP RB.
    SELECTION-SCREEN : END OF BLOCK B2.
    SELECTION-SCREEN : BEGIN OF BLOCK B3 WITH FRAME TITLE TEXT-003.
    PARAMETERS : P_SYN RADIOBUTTON GROUP RB1,
                 P_ASYN RADIOBUTTON GROUP RB1   DEFAULT 'X'.
    SELECTION-SCREEN : END OF BLOCK B3.
    SELECTION-SCREEN : END OF BLOCK B4.
    Initialize the work are and internal table body
    INITIALIZATION.
      PERFORM INTIALIZE_ITAB.
    *Get F4 help based on which file need to selected
    AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_fname.
      PERFORM GETFILENAME.
    START-OF-SELECTION.
    Upload the file from Excel to Internal Table
      PERFORM FILE_UPLOAD.
    Selection Method for Foreground or background or call transactio or session method.
      PERFORM SCREEN_FLAG.
    Uploading the data from Legacy Sytem to SAP.
      PERFORM BDC_TRANSACTION.
    END-OF-SELECTION.
    *&      Form  BDC_TRANSACTION
          text
    -->  p1        text
    <--  p2        text
    FORM BDC_TRANSACTION.
      IT_ITEM = IT_MAIN.
      PERFORM CALL_TRANSACTION.
    ENDFORM.                    " BDC_TRANSACTION
    *&      Form  CALL_TRANSACTION
          text
    -->  p1        text
    <--  p2        text
    FORM CALL_TRANSACTION .
      LOOP AT IT_MAIN INTO WA_MAIN.
        CLEAR WA_BDCDATA.
        REFRESH IT_BDCDATA.
        perform bdc_dynpro      using 'SAPMP50A' '1300'.
        perform bdc_field       using 'BDC_OKCODE' '/00'.
        perform bdc_field       using 'RP50G-PERNR' WA_MAIN-PERNR.
        perform bdc_field       using 'RP50G-TIMR6' 'X'.
        perform bdc_field       using 'BDC_CURSOR' 'RP50G-CHOIC'.
        perform bdc_field       using 'RP50G-CHOIC' '0006'.
        perform bdc_dynpro      using 'SAPMP50A' '1300'.
        perform bdc_field       using 'BDC_OKCODE' '=INS'.
        perform bdc_field       using 'BDC_CURSOR' 'RP50G-PERNR'.
        perform bdc_field       using 'RP50G-PERNR' WA_MAIN-PERNR.
        perform bdc_field       using 'RP50G-TIMR6' 'X'.
        perform bdc_field       using 'RP50G-CHOIC' 'Addresses'.
        perform bdc_dynpro      using 'SAPMSSY0' '0120'.
        perform bdc_field       using 'BDC_CURSOR' '04/03'.
        perform bdc_field       using 'BDC_OKCODE' '=ENTR'.
        perform bdc_dynpro      using 'MP000600_CE' '2010'.
        perform bdc_field       using 'BDC_CURSOR' 'P0006-PSTLZ'.
        perform bdc_field       using 'BDC_OKCODE' '/00'.
        perform bdc_field       using 'P0006-BEGDA' WA_MAIN-BEGDA.
        perform bdc_field       using 'P0006-ENDDA' '12-31-9999'.
        perform bdc_field       using 'P0006-ANSSA' WA_MAIN-ANSSA.
        perform bdc_field       using 'P0006-STRAS' WA_MAIN-STRAS.
        perform bdc_field       using 'P0006-ORT01' WA_MAIN-ORT01.
        perform bdc_field       using 'P0006-STATE' WA_MAIN-STATE.
        perform bdc_field       using 'P0006-PSTLZ' WA_MAIN-PSTLZ.
        perform bdc_field       using 'P0006-LAND1' WA_MAIN-LAND1.
        perform bdc_dynpro      using 'SAPLSBAL_DISPLAY' '0200'.
        perform bdc_field       using 'BDC_OKCODE' '=&ONT'.
        perform bdc_dynpro      using 'MP000600_CE' '2010'.
        perform bdc_field       using 'BDC_CURSOR' 'P0006-STATE'.
        perform bdc_field       using 'BDC_OKCODE'  '/00'.
        perform bdc_field       using 'P0006-BEGDA' WA_MAIN-BEGDA.
        perform bdc_field       using 'P0006-ENDDA' '12-31-9999'.
        perform bdc_field       using 'P0006-ANSSA' WA_MAIN-ANSSA.
        perform bdc_field       using 'P0006-STRAS' WA_MAIN-STRAS.
        perform bdc_field       using 'P0006-ORT01' WA_MAIN-ORT01.
        perform bdc_field       using 'P0006-STATE' WA_MAIN-STATE.
        perform bdc_field       using 'P0006-PSTLZ' WA_MAIN-PSTLZ.
        perform bdc_field       using 'P0006-LAND1' WA_MAIN-LAND1.
        perform bdc_dynpro      using 'MP000600_CE' '2010'.
        perform bdc_field       using 'BDC_OKCODE' '/EBCK'.
        perform bdc_field       using 'BDC_CURSOR' 'P0006-BEGDA'.
        perform bdc_dynpro      using 'SAPLSPO1' '0200'.
        perform bdc_field       using 'BDC_OKCODE' '=YES'.
        perform bdc_dynpro      using 'MP000600_CE' '2010'.
        perform bdc_field       using 'BDC_CURSOR' 'P0006-PSTLZ'.
        perform bdc_field       using 'BDC_OKCODE'  '/00'.
        perform bdc_field       using 'P0006-BEGDA' WA_MAIN-BEGDA.
        perform bdc_field       using 'P0006-ENDDA' '12-31-9999'.
        perform bdc_field       using 'P0006-ANSSA' WA_MAIN-ANSSA.
        perform bdc_field       using 'P0006-STRAS' WA_MAIN-STRAS.
        perform bdc_field       using 'P0006-ORT01' WA_MAIN-ORT01.
        perform bdc_field       using 'P0006-STATE' WA_MAIN-STATE.
        perform bdc_field       using 'P0006-PSTLZ' WA_MAIN-PSTLZ.
        perform bdc_field       using 'P0006-LAND1' WA_MAIN-LAND1.
        perform bdc_dynpro      using 'SAPLSBAL_DISPLAY' '0200'.
        perform bdc_field       using 'BDC_OKCODE' '=&ONT'.
        perform bdc_dynpro      using 'MP000600_CE' '2010'.
        perform bdc_field       using 'BDC_CURSOR' 'P0006-PSTLZ'.
        perform bdc_field       using 'BDC_OKCODE'  '/00'.
        perform bdc_field       using 'P0006-BEGDA' WA_MAIN-BEGDA.
        perform bdc_field       using 'P0006-ENDDA' '12-31-9999'.
        perform bdc_field       using 'P0006-ANSSA' WA_MAIN-ANSSA.
        perform bdc_field       using 'P0006-STRAS' WA_MAIN-STRAS.
        perform bdc_field       using 'P0006-ORT01' WA_MAIN-ORT01.
        perform bdc_field       using 'P0006-STATE' WA_MAIN-STATE.
        perform bdc_field       using 'P0006-PSTLZ' WA_MAIN-PSTLZ.
        perform bdc_field       using 'P0006-LAND1' WA_MAIN-LAND1.
        perform bdc_dynpro      using 'MP000600_CE' '2010'.
        perform bdc_field       using 'BDC_CURSOR' 'P0006-BEGDA'.
        perform bdc_field       using 'BDC_OKCODE' '=UPD'.
        perform bdc_field       using 'P0006-BEGDA' WA_MAIN-BEGDA.
        perform bdc_field       using 'P0006-ENDDA' '12-31-9999'.
        perform bdc_field       using 'P0006-ANSSA' WA_MAIN-ANSSA.
        perform bdc_field       using 'P0006-STRAS' WA_MAIN-STRAS.
        perform bdc_field       using 'P0006-ORT01' WA_MAIN-ORT01.
        perform bdc_field       using 'P0006-STATE' WA_MAIN-STATE.
        perform bdc_field       using 'P0006-PSTLZ' WA_MAIN-PSTLZ.
        perform bdc_field       using 'P0006-LAND1' WA_MAIN-LAND1.
        ls_ctu_params-dismode = U_MODE.
        ls_ctu_params-updmode = U_UPDT.
        ls_ctu_params-NOBINPT = 'X'.
        CALL TRANSACTION 'PA30' USING it_bdcdata
               OPTIONS FROM ls_ctu_params MESSAGES INTO IT_BDCMSGCOLL.
        PERFORM message.
        CLEAR: WA_MAIN, WA_ITEM.
      ENDLOOP.
    ENDFORM.                    " CALL_TRANSACTION
    *&      Form  INTIALIZE_ITAB
          text
    -->  p1        text
    <--  p2        text
    FORM INTIALIZE_ITAB .
      CLEAR: WA_MAIN,
             WA_ITEM,
             WA_BDCDATA,
             WA_BDCMSGCOLL,
             LS_CTU_PARAMS.
      REFRESH: IT_MAIN,
               IT_ITEM,
               IT_INTERN,
               IT_BDCDATA,
               IT_BDCMSGCOLL.
    ENDFORM.                    " INTIALIZE_ITAB
    *&      Form  GETFILENAME
          text
    -->  p1        text
    <--  p2        text
    FORM GETFILENAME .
      CALL FUNCTION 'F4_FILENAME'
        EXPORTING
          PROGRAM_NAME  = SYST-CPROG
          DYNPRO_NUMBER = SYST-DYNNR
          FIELD_NAME    = ' '
        IMPORTING
          FILE_NAME     = p_fname.
    ENDFORM.                    " GETFILENAME
    *&      Form  FILE_UPLOAD
          text
    -->  p1        text
    <--  p2        text
    FORM FILE_UPLOAD .
      CALL FUNCTION 'ALSM_EXCEL_TO_INTERNAL_TABLE'
        EXPORTING
          filename    = p_fname
          i_begin_col = p_begcol
          i_begin_row = p_begrow
          i_end_col   = p_endcol
          i_end_row   = p_endrow
        TABLES
          intern      = it_intern.
    Moving the data to internal table.
      PERFORM MOVE_DATA.
    ENDFORM.                    " FILE_UPLOAD
    *&      Form  MOVE_DATA
          text
    -->  p1        text
    <--  p2        text
    FORM MOVE_DATA .
      DATA : lv_index TYPE i.
      FIELD-SYMBOLS <fs>.
    *--- Sorting the internal table
      SORT it_intern BY row col.
      CLEAR it_intern.
      LOOP AT it_intern.
        MOVE it_intern-col TO lv_index.
    *--- Assigning the each WA_DATA to an internal table row
        ASSIGN COMPONENT lv_index OF STRUCTURE wa_main TO <fs>.
    *--- Asigning the field value to a field symbol
        MOVE it_intern-value TO <fs>.
        AT END OF row.
          APPEND wa_main to it_main.
          CLEAR wa_main.
        ENDAT.
      ENDLOOP.
    ENDFORM.                    " MOVE_DATA
    *&      Form  SCREEN_FLAG
          text
    -->  p1        text
    <--  p2        text
    FORM SCREEN_FLAG .
      IF P_FIRST = 'X'.
        U_MODE = 'A'.
      ENDIF.
      IF P_SECOND = 'X'.
        U_MODE = 'N'.
      ENDIF.
      IF P_THIRD = 'X'.
        U_MODE = 'E'.
      ENDIF.
      IF P_SYN = 'X'.
        U_UPDT = 'S'.
      ENDIF.
      IF P_ASYN = 'X'.
        U_UPDT = 'A'.
      ENDIF.
    ENDFORM.                    " SCREEN_FLAG
    *&      Form  BDC_DYNPRO
          text
         -->P_0161   text
         -->P_0162   text
    FORM BDC_DYNPRO  USING   program dynpro.
      CLEAR WA_BDCDATA.
      wa_bdcdata-program = program.
      wa_bdcdata-dynpro = dynpro.
      wa_bdcdata-dynbegin = 'X'.
      APPEND WA_BDCDATA TO IT_BDCDATA.
    ENDFORM.                    " BDC_DYNPRO
    *&      Form  BDC_FIELD
          text
         -->P_0211   text
         -->P_LW_MAIN_TEXT1  text
    FORM BDC_FIELD  USING   FNAM FVAL.
      CLEAR WA_BDCDATA.
      WA_BDCDATA-FNAM = FNAM.
      WA_BDCDATA-FVAL = FVAL.
      APPEND WA_BDCDATA TO IT_BDCDATA.
    ENDFORM.                    " BDC_FIELD
    *&      Form  MESSAGE
          text
    -->  p1        text
    <--  p2        text
    FORM MESSAGE .
      DATA: MSG TYPE STRING.
      LOOP AT IT_BDCMSGCOLL INTO WA_BDCMSGCOLL.
        CALL FUNCTION 'FORMAT_MESSAGE'
          EXPORTING
            ID   = SY-MSGID
            LANG = SY-LANGU
          IMPORTING
            MSG  = MSG.
        IF WA_BDCMSGCOLL-MSGTYP = 'S'.
          WRITE:/ MSG,'For',WA_MAIN-PERNR.
        ENDIF.
      ENDLOOP.
    ENDFORM.                    " MESSAGE
    FILE FORMAT:
    PERNR     BEGDA     ANSSA     STRAS     ORT01     STATE     PSTLZ     LAND1
    10270     8/2/2011     1(Permanent)     SSS     ban     01     578987     IN
    10270     8/2/2011     3(Home)     SSS     ban     01     578987     IN

  • How to upload a multistructured file in BDC program using gui_upload?

    I want to upload a multistructured file in BDC program...in which some structures are repeating for multiple records..how to do this..
    BP_GEN_DATA     FR0100270154                         FR12345678902
    BP_PAYMENT     FR     0123456789     01234567890          
    BP_UNLOAD     MARSEILLE     X     FR                    
    BP_UNLOAD     PARIS          FR                         
    Here BP_GEN_DATA is root structure and BP_UNLOAD is lower level structure which is repeating

    Resolved

  • In BDC programming how can we maintain date field

    hello all
    In BDC programming how we will deal with date field?
    In my flat file my date field format is different from the sap date field format. how can we deal this?

    hi,
    just define a variable with length 10 in ur internal table.
    now pass the date format in flat file as dd.mm.yyyy.

  • Handling screen resolution fields in me21 for bdc programming

    I need to use BDC program for ME21 for that how to handle the screen resolution,
    i know CTU_PARAMS structure is there ,but how to use them, please send the model code. for handling check boxes fields.

    answered

  • BDC Program for Uploading Data for Property Tree in cg02

    Hi,
        How to upload data for property tree ( standard Properties ) of CG02. I checked for BAPI or Function Module but most them supports for specification header and sub item. 
    Please Let me know if any function module or BAPI available for this process.  I tried with BDC Program, but it fails.
    Regards,
    Rajesh Kumar Murugesan

    Hallo Rajesh
    take a look here:
    http://help.sap.com/erp2005_ehp_06/helpdata/en/c1/eda0f591ec12408b25e7a1b369ca45/frameset.htm
    Chapter "Import and Export".
    1.)  Reads cross these further chapters:
    "Tools (EHS-BD-TLS)" => "IMport and Export" => "Import: Process" => "Specifying the Sequence of the External Data Structure "  => "External File Structure: Specification"
    Here you will learn how to prepare the data. In chapter:" Example: Transfer File for Specifications" you will find an example of an file whcih could be used to upload data in the property tree
    2.) Chapter:" Importing Specifications"  is explaining the steps whcih are need to populate the property with data using the file as prepared; read cross chapter "Specification Import Control"
    I hope this helps.
    C.B.
    Edited by: Christoph Bergemann on Feb 4, 2012 6:59 PM
    Edited by: Christoph Bergemann on Feb 4, 2012 6:59 PM

  • How to download and upload BDC programs

    How to download and upload BDC programs from one instance to another instance? I would like to transport my BDC programs from one dev client to another Dev client not through transport like smartforms.(we can download smartforms to desktop and upload to someother client)

    Hi,
    No need to record again. You can save the recording session by generating the program in transaction SHDB. Then you can download the BDC program and upload to another SAP client using transaction SE38.
    Regards,
    Ferry Lianto

  • ENTRY_ACT field in BDC program for Txn. IA05

    Dear Gurus,
    I want to write BDC program for IA05 transaction.  In that, Inspection Charatertics entries, I want to add more entries (more than one page - page down).  Please guide me how to handle RQPAS-ENTRY_ACT screen field.
    Please provide the logic in writing, if possible.
    Regards,

    Hi,
    I am having same problem.
    Can you give me the code as it shows solved at your end..
    -Maharshi

  • Bdc program for uploading region data in sales analysis

    hi expert,
        i want to upload the region data in sales transaction show that i want to analysis the area wise sales detail for different material.for this which *transaction code* ,i should use for recording.can any body provide me example for BDC Program.
                                         Thank you

    hi expert,
        i want to upload the region data in sales transaction show that i want to analysis the area wise sales detail for different material.for this which *transaction code* ,i should use for recording.can any body provide me example for BDC Program.
                                         Thank you

  • How can we know the return code of BDC Program ?

    Hi All,
    Please tell me : How can we know the return code of BDC Program when being exceuted in Session or in Transaction mode.
    In my program, we are uploading data from Excel sheet to SAP via BDC
    The records that are not updated we want to create a log file.
    Now to know whether a record is updated ot not, wat syst field shloud be used?
    Its urgent....
    <b>Reward Point will be there ....</b>
    Thanks,
    Harish

    Hi harish,
    try the logic in this code ...
    i had attached input file in the end.
    TYPES: begin of errmess,
            msgnr type t100-msgnr,
            text type t100-text,
           end of errmess.
    TABLES : t100.
    DATA: BEGIN OF DD_VA01,
           AUART TYPE VBAK-AUART,
           KUNNR TYPE RV45A-KUNNR,
           BSTKD TYPE VBKD-BSTKD,
           MABNR TYPE RV45A-MABNR,
           KWMENG(2) type C,
           KBETR(2) type C,
          END OF DD_VA01.
    DATA:IT_VA01     Like TABLE OF DD_VA01,
         WA_VA01     Like LINE  OF IT_VA01,
         WA_VA01_F   Like LINE  OF IT_VA01,
         IT_BDCDATA  TYPE TABLE OF BDCDATA,
         WA_BDCDATA  Like Line  OF IT_BDCDATA,
         W_FNAME     TYPE STRING,
         messtab like bdcmsgcoll occurs 0 with header line,
         it_errmess type table of errmess,
         wa_errmess like line of it_errmess,
         err_message type string.
    data: zf1 type i,
          zc1 type c value '2',
          fn(20) type c.
    Main Code ************************************************************
    PERFORM get_input using 'C:\Documents and Settings\ic881592\Desktop\Daran_bdc_VA01-e.txt'.
    SORT IT_VA01 BY AUART KUNNR BSTKD.
    LOOP AT IT_VA01 INTO WA_VA01.
      if WA_VA01_F-AUART <> WA_VA01-AUART OR
         WA_VA01_F-KUNNR <> WA_VA01-KUNNR OR
         WA_VA01_F-BSTKD <> WA_VA01-BSTKD.
           PERFORM set_header_flag.
           PERFORM create_bdc_header_data.
      endif.
      PERFORM create_bdc_item_data.
    ENDLOOP.
    PERFORM call_transaction.
    PERFORM errorlog.
    Procedures ***********************************************************
    form get_input using w_fname.
      CALL FUNCTION 'GUI_UPLOAD'
        EXPORTING
          FILENAME            = W_FNAME
          HAS_FIELD_SEPARATOR = '#'
        TABLES
          DATA_TAB            = IT_VA01.
    endform.
    form call_transaction.
        PERFORM bdc_field       using 'BDC_OKCODE' '/11'.
        CALL TRANSACTION 'VA01' USING IT_BDCDATA MODE 'A' messages into messtab.
        refresh it_bdcdata.
    endform.
    FORM set_header_flag.
           WA_VA01_F-AUART = WA_VA01-AUART.
           WA_VA01_F-KUNNR = WA_VA01-KUNNR.
           WA_VA01_F-BSTKD = WA_VA01-BSTKD.
           if zf1 = 1.
               PERFORM call_transaction.
           endif.
           zf1 = 1.
    endform.   "set_header_flag.
    form create_bdc_header_data.
         perform bdc_dynpro      using 'SAPMV45A' '0101'.
         perform bdc_field       using 'VBAK-AUART' WA_VA01-AUART.
         perform bdc_field       using 'BDC_OKCODE' '/00'.
         perform bdc_dynpro      using 'SAPMV45A' '4001'.
         perform bdc_field       using 'KUAGV-KUNNR' WA_VA01-KUNNR.
         perform bdc_field       using 'VBKD-BSTKD' WA_VA01-BSTKD.
         perform bdc_field       using 'BDC_OKCODE' '/00'.
         perform bdc_dynpro      using 'SAPMSSY0' '0120'.
         perform bdc_field       using 'BDC_CURSOR' '04/06'.
         perform bdc_field       using 'BDC_OKCODE' '=CHOO'.
         perform bdc_dynpro      using 'SAPMV45A' '4001'.
         PERFORM bdc_field       USING 'BDC_OKCODE' '=POAN'.
    endform. "create_bdcdata
    FORM create_bdc_item_data.
         CONCATENATE 'RV45A-KWMENG(' zc1 ')' INTO FN.
         perform bdc_field       using 'BDC_CURSOR' FN.
         perform bdc_field       using FN WA_VA01-KWMENG.
         CONCATENATE 'KOMV-KBETR(' zc1 ')' INTO FN.
         perform bdc_field       using FN WA_VA01-KBETR.
         CONCATENATE 'RV45A-MABNR(' zc1 ')' INTO FN.
         perform bdc_field       using FN WA_VA01-MABNR.
         perform bdc_dynpro      using 'SAPMV45A' '4001'.
         PERFORM bdc_field       USING 'BDC_OKCODE' '=POAN'.
    ENDFORM.
    form errorlog.
      LOOP AT MESSTAB .
        if MESSTAB-MSGNR = '311' or MESSTAB-MSGTYP = 'E'.
            SELECT SINGLE msgnr text FROM T100
                            into wa_errmess
                            WHERE SPRSL = MESSTAB-MSGSPRA
                              AND ARBGB = MESSTAB-MSGID
                              AND MSGNR = MESSTAB-MSGNR.
            IF SY-SUBRC = 0.
              err_message = wa_errmess-TEXT.
              IF err_message CS '&1'.
                REPLACE '&1' WITH MESSTAB-MSGV1 INTO err_message.
                REPLACE '&2' WITH MESSTAB-MSGV2 INTO err_message.
                REPLACE '&3' WITH MESSTAB-MSGV3 INTO err_message.
                REPLACE '&4' WITH MESSTAB-MSGV4 INTO err_message.
              ELSE.
                REPLACE '&' WITH MESSTAB-MSGV1 INTO err_message.
                REPLACE '&' WITH MESSTAB-MSGV2 INTO err_message.
                REPLACE '&' WITH MESSTAB-MSGV3 INTO err_message.
                REPLACE '&' WITH MESSTAB-MSGV4 INTO err_message.
              ENDIF.
              CONDENSE err_message.
              WRITE: / MESSTAB-MSGTYP, err_message .
            ELSE.
              WRITE: / MESSTAB.
            ENDIF.
        endif.
      ENDLOOP.
    endform. "errorlog
    FORM BDC_DYNPRO USING PROGRAM DYNPRO.
      WA_BDCDATA-PROGRAM  = PROGRAM.
      WA_BDCDATA-DYNPRO   = DYNPRO.
      WA_BDCDATA-DYNBEGIN = 'X'.
      APPEND WA_BDCDATA TO IT_BDCDATA.
      CLEAR  WA_BDCDATA.
    ENDFORM.
    FORM BDC_FIELD USING FNAM FVAL.
      WA_BDCDATA-FNAM = FNAM.
      WA_BDCDATA-FVAL = FVAL.
      APPEND WA_BDCDATA TO IT_BDCDATA.
      CLEAR  WA_BDCDATA.
    ENDFORM.
    input file :
    OR     2148     0001235     R-1162     8     17
    OR     2148     0001235     R-1161     2     30
    OR     2148     0001235     100-400     6     25
    OR     2148     0001235     R-1162     4     12
    OR     2148     0001236     R-1162     3     12
    OR     2148     0001236     R-1161     2     30
    OR     2148     0001236     100-400     1     25
    OR     2148     0001236     R-1162     7     12
    OR     2148     0001236     R-1161     8     30
    OR     2148     0001236     100-400     10     25
    OR     2148     0001235     R-1161     5     30
    OR     2148     0001235     100-400     2     25
    OR     2148     0001235     R-11621     3     12
    OR     2148     0001235     R-1161     2     30
    OR     2148     0001235     100-400     1     25
    OR     2148     0001235     R-1162     7     12
    OR     2148     0001235     R-1161     8     30
    OR     2148     0001235     100-400     10     25
    OR     2148     0001236     R-1162     8     17
    OR     2148     0001236     R-1161     2     30
    OR     2148     0001236     100-400     6     25
    OR     2148     0001236     R-1162     4     12
    OR     2148     0001236     R-1161     5     30
    OR     2148     0001236     100-400     2     25

  • BDC programming using Batch input Session.

    Hello Experts.
    I'm an ABAP beginner. I've benn practicing BDC programming using Batch input Session
    at the moment.
    This is the program that upload Local file which has plural records, and put the records into a Session.
    These are the records.
    413459,KIM EI HWAN121                ,19810607,MIADONG1234
    423459,KIM EI HWAN122                ,19810607,MIADONG1235
    433459,KIM EI HWAN123                ,19810607,MIADONG1236
    443459,KIM EI HWAN124                ,19810607,MIADONG1237
    453459,KIM EI HWAN125                ,19810607,MIADONG1238
    463459,KIM EI HWAN126                ,19810607,MIADONG1239
    I succeeded making Session.
    However, for some reaseon, every record in the Session has got the same, value which is the first record.
    Why is this happening? And How can I correct the code below?
    REPORT ZBCUSER002_BATCH NO STANDARD PAGE HEADING
                            LINE-SIZE 255
                            MESSAGE-ID ZBATCH.
    = Types definition ===================================================
    TYPES: BEGIN OF TYP_LOCAL,               "For Local file upload
             RECORD(200) TYPE C,
           END   OF TYP_LOCAL.
    = Internal table definition ==============================================
    DATA: BEGIN OF BDC_TAB OCCURS 0.        "BDCDATA itab
            INCLUDE STRUCTURE BDCDATA.
    DATA: END   OF BDC_TAB.
    DATA: BEGIN OF MESSAGE_BDC OCCURS 0.    "Message itab
            INCLUDE STRUCTURE BDCMSGCOLL.
    DATA: END   OF MESSAGE_BDC.
    DATA: TBL_LOCAL TYPE STANDARD TABLE OF TYP_LOCAL,  "Local file itab
          F_TBL     TYPE FILETABLE.                    "FILETABLE fot local
    = Structure table definition =========================================
    DATA: STR_F_TBL LIKE LINE OF F_TBL,                "FILETABLE structure
          STR_LOCAL TYPE TYP_LOCAL.                    "Local file structure
    = Variable definition ================================================
    DATA: LV_RC     TYPE I,                            "Method parameter
          ENUMBER   TYPE ZT601-ENUMBER,                "Employee number
          NAME      TYPE ZT601-NAME,                   "Employee name
          BIRTH     TYPE ZT601-BIRTH,                           "Birthday
          HOMETOWN  TYPE ZT601-HOMETOWN,                        "Hometown
          SYSVAL    TYPE SY-SUBRC.                     "System valuible
    = Constants definition ===============================================
    CONSTANTS: TBL_NAME(10) TYPE C VALUE 'ZT601'.      "Table name ZT601
    = Parameters definition ==============================================
    PARAMETERS: F_NAME      TYPE RLGRAP-FILENAME OBLIGATORY,    "File path
                EXECMODE(1) TYPE C.                    "Execute mode
    INITIALIZATION
    *----- Initialize all valuables, structures and internal tables
    CLEAR: LV_RC,
           STR_F_TBL,
           STR_LOCAL,
           ENUMBER,
           NAME,
           BIRTH,
           HOMETOWN.
    REFRESH: F_TBL,
             TBL_LOCAL.
    AT SELECTION-SCREEN
    *----- When the button next to Parameter 'F_NAME',
    *----- File dialog open.
    AT SELECTION-SCREEN ON VALUE-REQUEST FOR F_NAME.
      CALL METHOD CL_GUI_FRONTEND_SERVICES=>FILE_OPEN_DIALOG
        EXPORTING
          WINDOW_TITLE            = 'SELECT FILE'
          DEFAULT_FILENAME        = '*.TXT'
       CHANGING
         FILE_TABLE               = F_TBL
         RC                       = LV_RC
        EXCEPTIONS
          FILE_OPEN_DIALOG_FAILED = 1
          CNTL_ERROR              = 2
          OTHERS                  = 3
    *----- system valiable check.
    *----- If done properly,
    *----- Put the path into the File path parameter
      IF SY-SUBRC = 0.
        READ TABLE F_TBL INTO STR_F_TBL INDEX 1.
        F_NAME = STR_F_TBL.
    *----- If not done properly, show message
    *----- An error occured while getting file path then end program
      ELSE.
        MESSAGE E000.
      ENDIF.
    *----- Execute code can only be A or N.
    AT SELECTION-SCREEN ON EXECMODE.
      IF EXECMODE <> 'A' AND EXECMODE <> 'N'.
        MESSAGE E001.
      ENDIF.
    START-OF-SELECTION
    START-OF-SELECTION.
    *----- Upload Local file of file path parameter.
      CALL FUNCTION 'GUI_UPLOAD'
           EXPORTING
                FILENAME                = F_NAME
                FILETYPE                = 'ASC'
           TABLES
                DATA_TAB                = TBL_LOCAL
           EXCEPTIONS
                FILE_OPEN_ERROR         = 1
                FILE_READ_ERROR         = 2
                NO_BATCH                = 3
                GUI_REFUSE_FILETRANSFER = 4
                INVALID_TYPE            = 5
                OTHERS                  = 6.
    *----- System valiable check.
    *----- If not done properly, show an error message
    *----- An error occured while uploading local file then end program
      IF SY-SUBRC <> 0.
        MESSAGE E002.
      ENDIF.
      PERFORM BDC_OPEN.
    *----- Loop Internal table
      LOOP AT TBL_LOCAL INTO STR_LOCAL.
    *----- Spilt the file record and put them into each valiable.
        SPLIT STR_LOCAL AT ',' INTO  ENUMBER
                                     NAME
                                     BIRTH
                                     HOMETOWN.
    *----- Data check Function module
        CALL FUNCTION 'DATE_CHECK_PLAUSIBILITY'
             EXPORTING
                  DATE                      = BIRTH
             EXCEPTIONS
                  PLAUSIBILITY_CHECK_FAILED = 1
                  OTHERS                    = 2.
    *----- When error occurs while checking date, show an error message.
    *----- (&1) is not date
        IF SY-SUBRC <> 0.
          MESSAGE E003 WITH BIRTH.
        ENDIF.
    *-- The first screen of SE11
    *----- Screen number 0102 of program id SAPMSRD0
        PERFORM BDC_DYNPRO      USING 'SAPMSRD0' '0102'.
        PERFORM BDC_FIELD       USING 'BDC_CURSOR'
                                      'RSRD1-TBMA_VAL'. "Field on Cursor
        PERFORM BDC_FIELD       USING 'BDC_OKCODE'
                                      '=SHOW'.          "Display button
        PERFORM BDC_FIELD       USING 'RSRD1-TBMA'
                                      'X'.
        PERFORM BDC_FIELD       USING 'RSRD1-TBMA_VAL'
                                       TBL_NAME.                "ZT601
    *-- Table definition screen
    *----- Screen number 2000 of program id SAPLSD02
        PERFORM BDC_DYNPRO      USING 'SAPLSD02' '2000'.
        PERFORM BDC_FIELD       USING 'BDC_CURSOR'
                                      'DD02D-TABCLTEXT'.  "Field on Cursor
        PERFORM BDC_FIELD       USING 'BDC_OKCODE'
                                      '=TDED'.            "Create entry
        PERFORM BDC_FIELD       USING 'BDC_SUBSCR'
                                      'SAPLSD02'.
        PERFORM BDC_FIELD       USING 'BDC_SUBSCR'
                                      'SAPLSED5'.
    *-- Data input screen
    *----- Screen number 0101 of program /1BCDWB/DBZT601
        PERFORM BDC_DYNPRO      USING '/1BCDWB/DBZT601' '0101'.
        PERFORM BDC_FIELD       USING 'BDC_CURSOR'
                                      'ZT601-CRUSER'.    "Field on Cursor
        PERFORM BDC_FIELD       USING 'BDC_OKCODE'
                                      '=SAVE'.                  "Save
        PERFORM BDC_FIELD       USING 'ZT601-MANDT'
                                      SY-MANDT.                 "Client
        PERFORM BDC_FIELD       USING 'ZT601-ENUMBER'
                                      ENUMBER.           "Employee number
        PERFORM BDC_FIELD       USING 'ZT601-NAME'
                                      NAME.              "Employee name
        PERFORM BDC_FIELD       USING 'ZT601-BIRTH'
                                      BIRTH.                    "Birthday
        PERFORM BDC_FIELD       USING 'ZT601-HOMETOWN'
                                      HOMETOWN.                 "Hometown
        PERFORM BDC_FIELD       USING 'ZT601-CRDATE'
                                      SY-DATUM.          "System date
        PERFORM BDC_FIELD       USING 'ZT601-CRTIME'
                                      SY-UZEIT.          "System time
        PERFORM BDC_FIELD       USING 'ZT601-CRUSER'
                                      SY-UNAME.          "System user
    *-- Data input screen (After input)
    *----- Screen number 0101 of program /1BCDWB/DBZT601
        PERFORM BDC_DYNPRO      USING '/1BCDWB/DBZT601' '0101'.
        PERFORM BDC_FIELD       USING 'BDC_OKCODE'
                                      '/EBACK'.                 "Back
        PERFORM BDC_FIELD       USING 'BDC_CURSOR'
                                      'ZT601-CRUSER'.    "Field on Cursor
    *-- Table definition screen]
    *----- Screen number 2000 of program SAPLSD02
        PERFORM BDC_DYNPRO      USING 'SAPLSD02' '2000'.
        PERFORM BDC_FIELD       USING 'BDC_CURSOR'
                                      'DD02D-TABCLTEXT'.  "Field on Cursor
        PERFORM BDC_FIELD       USING 'BDC_OKCODE'
                                      '=WB_BACK'.               "Back
    *-- The first screen of SE11
    *----- Screen number 0102 of program SAPMSRD0
        PERFORM BDC_DYNPRO      USING 'SAPMSRD0' '0102'.
        PERFORM BDC_FIELD       USING 'BDC_CURSOR'
                                      'RSRD1-TBMA_VAL'.   "Field on Cursor
        PERFORM BDC_FIELD       USING 'BDC_OKCODE'
                                      '=BACK'.
        PERFORM BDC_FIELD       USING 'RSRD1-TBMA'
                                      'X'.
        PERFORM BDC_FIELD       USING 'RSRD1-TBMA_VAL'
                                      TBL_NAME.
        PERFORM BDC_INSERT.
      ENDLOOP.
      PERFORM BDC_CLOSE.
          FORM BDC_DYNPRO                                               *
          Put Program-Id, Dynpro screen number, Start point
          into DBCDATA
    -->  PROGRAM                                                       *
    -->  DYNPRO                                                        *
    FORM BDC_DYNPRO USING PROGRAM DYNPRO.
      CLEAR BDC_TAB.
      BDC_TAB-PROGRAM  = PROGRAM.
      BDC_TAB-DYNPRO   = DYNPRO.
      BDC_TAB-DYNBEGIN = 'X'.
      APPEND BDC_TAB.
    ENDFORM.
          FORM BDC_FIELD                                                *
          Put Field Name and Value into BDCDATA
    -->  FNAM                                                          *
    -->  FVAL                                                          *
    FORM BDC_FIELD USING FNAM FVAL.
      CLEAR BDC_TAB.
      BDC_TAB-FNAM = FNAM.
      BDC_TAB-FVAL = FVAL.
      APPEND BDC_TAB.
    ENDFORM.
          FORM bdc_process                                              *
    FORM BDC_OPEN.
      CALL FUNCTION 'BDC_OPEN_GROUP'
           EXPORTING
                CLIENT = SY-MANDT
                GROUP  = 'Testsession'
                KEEP   = 'X'
                USER   = SY-UNAME.
      IF SY-SUBRC <> 0.
        MESSAGE E006 WITH SY-SUBRC.
      ENDIF.
    ENDFORM.
          FORM bdc_insert                                               *
    FORM BDC_INSERT.
      CALL FUNCTION 'BDC_INSERT'
           EXPORTING
                TCODE            = 'SE11'
           TABLES
                DYNPROTAB        = BDC_TAB
           EXCEPTIONS
                INTERNAL_ERROR   = 1
                NOT_OPEN         = 2
                QUEUE_ERROR      = 3
                TCODE_INVALID    = 4
                PRINTING_INVALID = 5
                POSTING_INVALID  = 6
                OTHERS           = 7.
      IF SY-SUBRC <> 0.
        MESSAGE E007 WITH SY-SUBRC.
      ENDIF.
      CLEAR: BDC_TAB.
    ENDFORM.
          FORM bdc_close                                                *
    FORM BDC_CLOSE.
      CALL FUNCTION 'BDC_CLOSE_GROUP'
           EXCEPTIONS
                NOT_OPEN    = 1
                QUEUE_ERROR = 2
                OTHERS      = 3.
      IF SY-SUBRC <> 0.
        MESSAGE E008 WITH SY-SUBRC.
      ENDIF.
    ENDFORM.

    God I forgot to refresh Internal table after putting record into Session.
    Now I'm done.
    You guys be careful too.

Maybe you are looking for