BDC program using HR ABAP

Hi,
I am new to HR ABAP . Can anybody send me an end to end sample BDC program using HR ABAP. I have a requirement  to develop a program.
Please give the sample file which  has the sample data to upload to SAP.
Rgds,
Sofia

hi....
to create a program of your own....
goto tcode 'SHDB' and there go for a new recording of the TCODE as required by you...
after recording is complete there is a button to GENERATE a program for that
i am looking for a complete data tranfer example which i have done.... i ll send that to you
regards
this is a sample code for it
THIS IS WRITTEN BY ME,YOU CAN GENERATE PROGRAM DIRECTLY
*" Type declarations...................................................
Type declaration of the structure to hold material information      *
TYPES:
  BEGIN OF type_s_mat,
    name(10)  TYPE c,                  " Material Number
    industry  TYPE c,                  " Industry Sector
    mtype(10) TYPE c,                  " Material Type
    descr(20) TYPE c,                  " Material Description
    unit(10)  TYPE c,                  " Base Unit of Measure
  END OF type_s_mat,
  type_s_f2(4096) TYPE c.
*" Data declarations...................................................
Work variables                                                      *
DATA:
  fs_f1 TYPE type_s_mat,               " Field string of TYPE_S_MAT
  fs_workarea TYPE bdcdata,            " Field string of type BDCDATA
  fs_bdc TYPE bdcmsgcoll,              " Field string of type bdcmsgcoll
  w_msg(72) TYPE c,                    " Holds message for writing
  w_i TYPE i,                          " Holds value of rc
  w_file TYPE filetable,               " Holds name of the file
  w_var  TYPE file_table,              " Field string of file_table
  w_file1 TYPE string.                 " Holds the path of the file
Internal table to hold data for the input                           *
DATA:
  t_itab LIKE
STANDARD TABLE
      OF fs_workarea,
Internal table to hold data for the messages                        *
   t_mess LIKE
STANDARD TABLE
       OF fs_bdc,
   t_mat LIKE
STANDARD TABLE
      OF fs_f1,
Internal table to hold data for the input                           *
  t_temp TYPE
STANDARD TABLE
      OF type_s_f2.
*"Selection screen elements............................................
SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME.
PARAMETERS: p_file(128) TYPE c.
SELECTION-SCREEN END OF BLOCK b1.
           AT SELECTION-SCREEN ON VALUE-REQUEST EVENT               *
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_file.
  CALL METHOD cl_gui_frontend_services=>file_open_dialog
    EXPORTING
      window_title            = 'FILE_OPEN'
      default_extension       = 'XLS'
    CHANGING
      file_table              = w_file
      rc                      = w_i
    EXCEPTIONS
      file_open_dialog_failed = 1
      cntl_error              = 2
      error_no_gui            = 3
      not_supported_by_gui    = 4
      OTHERS                  = 5.
  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 SY-SUBRC <> 0.
  LOOP AT w_file INTO w_var.
    p_file = w_var-filename.
  ENDLOOP.                             " LOOP AT W_FILE INTO W_VAR.
  ULINE.
                      START-OF-SELECTION EVENT                      *
START-OF-SELECTION.
  CALL FUNCTION 'TEXT_CONVERT_XLS_TO_SAP'
    EXPORTING
      i_tab_raw_data       = t_temp
      i_filename           = p_file
    TABLES
      i_tab_converted_data = t_mat
    EXCEPTIONS
      conversion_failed    = 1
      OTHERS               = 2.
  IF sy-subrc <> 0.
    MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
            WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
  ENDIF.                               " IF SY-SUBRC EQ 0.
                      END-OF-SELECTION EVENT                        *
END-OF-SELECTION.
  PERFORM sub_display.
*& Form  sub_screen
This subroutine appends the value of screen name and number        *
     -->PV_screenam  This holds screen name                         *
     -->PV_scrnum    This holds screen number                       *
FORM sub_screen  USING    value(pv_screenam)
                              value(pv_scrnum).
  CLEAR fs_workarea.
  fs_workarea-program = pv_screenam.
  fs_workarea-dynpro = pv_scrnum.
  fs_workarea-dynbegin = 'X'.
  APPEND fs_workarea TO  t_itab.
ENDFORM.                               " FORM SUB_SCREEN
*& Form  SUB_FIELD_DATA                                               *
This subroutine apppends  field name and value of the screen.      *
-->PV_FLDNAM   This holds field name                               *
-->PV_FLDVAL   This holds Field value                              *
FORM sub_field_data  USING    value(pv_fldnam)
                           value(pv_fldval).
  CLEAR fs_workarea.
  fs_workarea-fnam = pv_fldnam.
  fs_workarea-fval = pv_fldval.
  APPEND fs_workarea TO  t_itab.
ENDFORM.                               " FORM SUB_FIELD_DATA
*& Form  sub_display                                             *
This subroutine fills the value on screen fields when BDC executes *
There are no interface parameters to be passed to this subroutine. *
FORM sub_display .
  LOOP AT t_mat INTO fs_f1.
    CLEAR fs_workarea.
    CLEAR fs_bdc.
    PERFORM sub_screen     USING 'SAPLMGMM' '0060'.
    PERFORM sub_field_data USING 'RMMG1-MATNR' fs_f1-name.
    PERFORM sub_field_data USING 'RMMG1-MBRSH' fs_f1-industry.
    PERFORM sub_field_data USING 'RMMG1-MTART' fs_f1-mtype.
    PERFORM sub_field_data USING 'BDC_OKCODE' '/00'.
    PERFORM sub_screen     USING 'SAPLMGMM' '0070'.
    PERFORM sub_field_data USING 'MSICHTAUSW-KZSEL(01)' 'X'.
    PERFORM sub_field_data USING 'MSICHTAUSW-KZSEL(02)' 'X'.
    PERFORM sub_field_data USING 'BDC_OKCODE' '=ENTR'.
    PERFORM sub_screen     USING 'SAPLMGMM' '4004'.
    PERFORM sub_field_data USING 'MAKT-MAKTX' fs_f1-descr.
    PERFORM sub_field_data USING 'MARA-MEINS' fs_f1-unit.
    PERFORM sub_field_data USING 'BDC_OKCODE' '/00'.
    PERFORM sub_screen     USING 'SAPLMGMM' '4004'.
    PERFORM sub_field_data USING 'BDC_OKCODE' '=BU'.
    CALL TRANSACTION 'MM01' USING t_itab MODE 'A' MESSAGES INTO t_mess.
  ENDLOOP.
ENDFORM.                    " SUB_DISPLAY
Edited by: Mohit Kumar on Feb 18, 2009 12:40 PM

Similar Messages

  • 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.

  • Standard BDC program used for FI

    hi all ,
    i would like to know the standard BDC program used in FI , like for tcode fb01 or somethings else.
    Appreciate for any segguestion.
    thanks and regards.

    hi siddu m 
    thanks for replay ,
    i have anohter question
    provided the transaction A was contianed in the first batch file,
    and also  contained in the second batch file , how the tcode treated as the duplicate posting ?
    many thanks

  • Issue with BDC program used for FBZ5 (Check Print)

    Hi all,
    I am having one requirement in Check printing. as per that i have made one Z program which will accept multiple Payment documents. I am passing selected accounting documents to BDC routine for Transaction FBZ5. (As in FBZ5 we can take a print for one Payment document not for multiple)
    We can have 3 scenarios in FBZ5
    1. Fresh Check printing (First time check printing)
    2. Old Check (printing for same Check no)
    3. New Check (After voiding older check)
    Category 1 and 2 are working fine but i am facing problem in category 3.
    For Category 3 : BDC Screen flow is like this
    A. Tcode FBZ5 Start program: SAPMFCHK Screen: 750 --> Click on 'Print'
    B. Program: SAPLSPO2 Screen: 0100  --> Here specify option 'New Check'
    C. Program: SAPMFCHK Screen: 0700
        - This program belongs to new Tcode FCH7
        - Here we have to give Void Reason code
    Now issue with Category 3:
    While executing BDC in online and background mode my control is terminating at step C mentioned above
    Troubleshooting:
    I have debugged standard program of FBZ5
    1. in Include MFCHKFD0 we can see call to Tcode FCH7  (PERFORM AUFRUF_FCH7.)
    2. in form AUFRUF_FCH7 i found code related to BDC
       also there one statement is getting triggered -->   CALL TRANSACTION 'FCH7' USING BDC MODE 'A'.
    So there is a BDC call inside my Z BDC program, so is this a reason why my program is not working for above scenario ?
    Or can't we handle above scenario in a way mentioned above?

    Hi Sandra,
    I was trying to upload customer master in fd01 using bdc. The screens were different while recording. So could not perform the upload. Thenone screen was skipped so that the bdc was working fine and the data was uploaded.
    This is the flow of the recording.
    'SAPMF02D' '0105'.
    SAPMF02D' '7105'
    SAPMF02D' '0111
    SAPMF02D' '0120
    SAPMF02D' '0130
    SAPMF02D' '0210
    SAPMF02D' '0215
    SAPMF02D' '0220'
    SAPMF02D' '0230'
    SAPMF02D' '0610
    After the second screen was deleted the bdc worked fine.

  • 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

  • Problem in BDC program using MIGO_GO transaction code

    Hi Gurus
    I have developed a BDC session upload program. The program is
    running fine except for the issue that when it goes the subscreen in
    MIGO_GO transaction (same as MIGO) it does not generates any code
    for page down or next page key. While recording after 15 entries
    (end of page) it moves automaticaly to the next page on line 2 but
    when I have used my own itab to fill data into this screen it
    passes/generates the code for page down with clear screen. It does
    go to item 2 but overwrites earlier entries instead of generting new
    one.
    Any suggestions?
    Guys this is very urgent so need ur feedback immediately?
    Lots of thanks in advance.
    The code is as follows:
    PURPOSE: The purpose of this upload program is to upload
    receipt
    against Production Order. Data is uploaded into SAP
    via text
    file which is converted from pre-defined excel file
    pattern.
    REPORT zmm_migo_rec
    NO STANDARD PAGE HEADING LINE-SIZE 255.
    *Excel column sequence SAP Material Number Batch # Crop Year
    Process Date Net Weight Plant Area Gross
    Weight Plant Number Shift Mat.Desc Prod.Ord#
    TYPES : BEGIN OF st_barcode,
    m_matnr LIKE mara-matnr,
    m_batch_no LIKE mseg-charg,
    m_crop_year TYPE c LENGTH 4,
    m_process_date LIKE mkpf-bldat,
    m_net_wt TYPE c LENGTH 7,
    m_plant_area TYPE c LENGTH 5,
    m_gross_wt TYPE c LENGTH 7,
    m_plant_num TYPE c LENGTH 1,
    m_shift TYPE c LENGTH 1,
    m_matnr_desc TYPE c LENGTH 30,
    m_prod_ord LIKE mseg-aufnr,
    text(200),
    text1(200),
    END OF st_barcode.
    DATA : itab_barcode TYPE TABLE OF st_barcode WITH HEADER LINE.
    DATA : itab_log TYPE TABLE OF st_barcode WITH HEADER LINE.
    DATA : itab_log1 TYPE TABLE OF st_barcode WITH HEADER LINE.
    DATA : g_filename TYPE rlgrap-filename.
    INCLUDE bdcrecx1.
    Start of Selection Screen for document data, screen data and
    posting date fields.
    SELECTION-SCREEN BEGIN OF BLOCK a1 WITH FRAME TITLE text-000.
    PARAMETERS :
    p_dummy TYPE i DEFAULT 0,
    p_bldat LIKE sy-datum OBLIGATORY DEFAULT sy-
    datum, "Document date
    p_budat LIKE sy-datum OBLIGATORY DEFAULT sy-
    datum, "Posting date
    p_frmplt LIKE t001l-werks OBLIGATORY,
    p_frmloc LIKE t001l-lgort OBLIGATORY,
    p_toloc LIKE t001l-lgort OBLIGATORY,
    p_rsnmov LIKE mseg-grund OBLIGATORY,
    p_bsarea LIKE mseg-gsber OBLIGATORY,
    cb_simul AS CHECKBOX DEFAULT 'X'.
    SELECTION-SCREEN END OF BLOCK a1.
    START-OF-SELECTION.
    *to remove unnecessary fields from selection screen
    AT SELECTION-SCREEN OUTPUT.
    LOOP AT SCREEN.
    IF screen-group4 LT '060' AND screen-group3 NE 'BLK'.
    screen-active = 0.
    MODIFY SCREEN.
    ENDIF.
    ENDLOOP.
    *to Process Call Transaction in Error Mode
    ctu = 'X'.
    ctumode = 'A'.
    nodata = space.
    END-OF-SELECTION.
    Get data from file
    PERFORM f_get_data.
    Validate data retrieved from excel file
    PERFORM f_validate_data.
    Batch data / simulate.
    IF cb_simul IS INITIAL.
    PERFORM f_prized_data.
    PERFORM f_write_log.
    ELSE.
    PERFORM f_write_log.
    ENDIF.
    *& Form F_GET_DATA
    This module is used to read text file data into SAP itab.
    FORM f_get_data .
    Select the file to be uploaded
    CALL FUNCTION 'UPLOAD'
    EXPORTING
    filename = g_filename
    filetype = 'DAT'
    TABLES
    data_tab = itab_barcode
    EXCEPTIONS
    conversion_error = 1
    invalid_table_width = 2
    invalid_type = 3
    no_batch = 4
    unknown_error = 5
    gui_refuse_filetransfer = 6
    OTHERS = 7.
    ENDFORM. " F_GET_DATA
    *& Form F_VALIDATE_DATA
    text
    FORM f_validate_data .
    DATA : BEGIN OF lt_marc OCCURS 0,
    matnr LIKE mard-matnr,
    werks LIKE mard-werks, " Plant
    END OF lt_marc.
    RANGES : lr_matnr FOR mara-matnr.
    READ TABLE itab_barcode INDEX 1.
    Prepare Ranges to check/verify Material from Table MARD i.e.
    respective plant
    lr_matnr-sign = 'I'.
    lr_matnr-option = 'EQ'.
    LOOP AT itab_barcode.
    Add leading zeros incase of numeric value.
    CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
    EXPORTING
    input = itab_barcode-m_matnr
    IMPORTING
    output = itab_barcode-m_matnr.
    lr_matnr-low = itab_barcode-m_matnr.
    APPEND lr_matnr.
    MODIFY itab_barcode TRANSPORTING m_matnr.
    ENDLOOP.
    IF NOT lr_matnr[] IS INITIAL.
    SORT lr_matnr BY low.
    DELETE ADJACENT DUPLICATES FROM lr_matnr COMPARING low.
    SELECT matnr werks FROM marc
    INTO TABLE lt_marc
    WHERE matnr IN lr_matnr AND
    werks = p_frmplt.
    ENDIF.
    LOOP AT itab_barcode.
    READ TABLE lt_marc
    WITH KEY matnr = itab_barcode-m_matnr
    werks = p_frmplt.
    IF sy-subrc <> 0 .
    CONCATENATE 'Material' itab_barcode-m_matnr
    ' does not exist in Plant ' p_frmplt
    INTO itab_barcode-text SEPARATED BY space.
    MOVE-CORRESPONDING itab_barcode TO itab_log.
    APPEND itab_log.
    MODIFY itab_barcode TRANSPORTING text.
    CONTINUE.
    ENDIF.
    ENDLOOP.
    ENDFORM. " F_VALIDATE_DATA
    *& Form F_WRITE_LOG
    text
    FORM f_write_log .
    LOOP AT itab_log.
    WRITE :/ itab_log-text.
    ENDLOOP.
    LOOP AT itab_log1.
    WRITE :/ itab_log1-text1.
    ENDLOOP.
    ENDFORM. " F_WRITE_LOG
    *& Form f_prized_data
    text
    --> p1 text
    <-- p2 text
    FORM f_prized_data.
    DATA: ld_lines LIKE sy-tabix,
    ld_sw TYPE i,
    lh_loop TYPE i,
    ld_recno TYPE i,
    lremain TYPE i,
    ld_total TYPE i,
    ld_counter LIKE sy-index,
    ld_counter TYPE i,
    ld_save LIKE sy-index,
    ld_last TYPE i,
    sc_counter(2) TYPE n,
    ld_budat(10),
    ld_bldat(10).
    DATA: wa_matnr(40) TYPE c,
    wa_bwtar(40) TYPE c,
    wa_erfme(40) TYPE c,
    wa_charg(40) TYPE c.
    WRITE: p_budat TO ld_budat,
    p_bldat TO ld_bldat.
    ld_recno = 300. " Number of records in the upload file.
    ld_last = 0.
    Open BDC session.
    PERFORM open_group.
    DESCRIBE TABLE itab_barcode LINES ld_lines.
    CLEAR: lh_loop, lremain.
    lh_loop = ld_lines DIV ld_recno.
    lremain = ld_lines MOD ld_recno.
    IF lremain > 0.
    lh_loop = lh_loop + 1.
    ENDIF.
    ld_sw = 1.
    LOOP AT itab_barcode.
    ADD 1 TO ld_counter.
    ADD 1 TO sc_counter.
    ADD 1 TO ld_total. " Check for 300
    IF ld_sw = 1.
    Header data.
    PERFORM open_group.
    PERFORM bdc_dynpro USING 'SAPLMIGO' '0001'.
    PERFORM bdc_field
    USING 'BDC_OKCODE' '=MIGO_OK_ACTION'.
    PERFORM bdc_field
    USING 'BDC_CURSOR' 'GODYNPRO-ACTION'.
    PERFORM bdc_field USING 'GODYNPRO-
    ACTION' 'A01'.
    PERFORM bdc_field USING 'GODYNPRO-
    REFDOC' 'R02'.
    PERFORM bdc_dynpro USING 'SAPLMIGO' '0001'.
    PERFORM bdc_field
    USING 'BDC_OKCODE' '=OK_GO'.
    PERFORM bdc_field USING 'GODYNPRO-
    ACTION' 'A01'.
    PERFORM bdc_field USING 'GODYNPRO-
    REFDOC' 'R08'.
    PERFORM bdc_field USING 'GODEFAULT_TV-
    BWART' '101'.
    PERFORM bdc_field
    USING 'BDC_CURSOR' 'GODYNPRO-
    ORDER_NUMBER'.
    PERFORM bdc_field USING 'GOHEAD-
    BLDAT' ld_bldat.
    PERFORM bdc_field USING 'GOHEAD-
    BUDAT' ld_budat.
    PERFORM bdc_field USING 'GOHEAD-
    XNAPR' 'X'.
    PERFORM bdc_dynpro USING 'SAPLMIGO' '0001'.
    PERFORM bdc_field
    USING 'BDC_OKCODE' '=MIGO_OK_DETAIL_OP
    EN'.
    PERFORM bdc_field USING 'GODYNPRO-
    ACTION' 'A01'.
    PERFORM bdc_field USING 'GODYNPRO-
    REFDOC' 'R08'.
    PERFORM bdc_field USING 'GODEFAULT_TV-
    BWART' '101'.
    PERFORM bdc_field
    USING 'BDC_CURSOR' 'GODYNPRO-
    ORDER_NUMBER'.
    PERFORM bdc_field USING 'GOHEAD-
    BLDAT' ld_bldat.
    PERFORM bdc_field USING 'GOHEAD-
    BUDAT' ld_budat.
    PERFORM bdc_field USING 'GOHEAD-
    XNAPR' 'X'.
    PERFORM bdc_dynpro USING 'SAPLMIGO' '0001'.
    PERFORM bdc_field
    USING 'BDC_OKCODE' '=OK_GO'.
    PERFORM bdc_field USING 'GODYNPRO-
    ACTION' 'A01'.
    PERFORM bdc_field USING 'GODYNPRO-
    REFDOC' 'R08'.
    PERFORM bdc_field USING 'GODEFAULT_TV-
    BWART' '101'.
    PERFORM bdc_field
    USING 'BDC_CURSOR' 'GODYNPRO-
    ORDER_NUMBER'.
    PERFORM bdc_field USING 'GODYNPRO-
    ORDER_NUMBER' itab_barcode-m_prod_ord.
    PERFORM bdc_field USING 'GOHEAD-
    BLDAT' ld_bldat.
    PERFORM bdc_field USING 'GOHEAD-
    BUDAT' ld_budat.
    PERFORM bdc_field USING 'GOHEAD-
    XNAPR' 'X'.
    PERFORM bdc_dynpro USING 'SAPLMIGO' '0001'.
    PERFORM bdc_field
    USING 'BDC_OKCODE' '=MIGO_OK_LINE_CLIC
    K'.
    PERFORM bdc_field USING 'GODEFAULT_TV-
    BWART' '101'.
    PERFORM bdc_field USING 'GOHEAD-
    BLDAT' ld_bldat.
    PERFORM bdc_field USING 'GOHEAD-
    BUDAT' ld_budat.
    PERFORM bdc_field USING 'GOHEAD-
    XNAPR' 'X'.
    PERFORM bdc_field USING 'GOHEAD-
    WEVER' '3'.
    PERFORM bdc_field
    USING 'BDC_CURSOR' 'GOITEM-ZEILE(01)'.
    PERFORM bdc_field USING 'GODYNPRO-
    DETAIL_ZEILE' ' 1'.
    PERFORM bdc_field USING 'GOITEM-
    ERFME' 'KG'.
    PERFORM bdc_field USING 'GOITEM-
    BWART' '101'.
    PERFORM bdc_dynpro USING 'SAPLMIGO' '0001'.
    PERFORM bdc_field
    USING 'BDC_OKCODE' '=MIGO_OK_SPLIT_QUA
    N'.
    PERFORM bdc_field USING 'GODEFAULT_TV-
    BWART' '101'.
    PERFORM bdc_field USING 'GOHEAD-
    BLDAT' ld_bldat.
    PERFORM bdc_field USING 'GOHEAD-
    BUDAT' ld_budat.
    PERFORM bdc_field USING 'GOHEAD-
    XNAPR' 'X'.
    PERFORM bdc_field USING 'GOHEAD-
    WEVER' '3'.
    PERFORM bdc_field
    USING 'BDC_CURSOR' 'GOITEM-ZEILE(01)'.
    PERFORM bdc_field USING 'GODYNPRO-
    DETAIL_ZEILE' ' 1'.
    PERFORM bdc_field USING 'GOITEM-
    ERFME' 'KG'.
    PERFORM bdc_field USING 'GOITEM-
    MIGO_ELIKZ' '1'.
    PERFORM bdc_field USING 'GOITEM-
    BWART' '101'.
    ld_sw = 0.
    ENDIF.
    IF sc_counter = 16.
    CLEAR sc_counter.
    PERFORM bdc_field USING 'BDC_OKCODE' 'DOWN'.
    PERFORM bdc_field
    USING 'BDC_OKCODE' '/00'.
    add 2 to sc_counter.
    ELSE.
    PERFORM bdc_field USING 'BDC_OKCODE' '/00'.
    ENDIF.
    CLEAR wa_matnr.
    CONCATENATE 'GOSPLIT-ERFMG(' sc_counter ')' INTO wa_matnr.
    CLEAR wa_bwtar.
    CONCATENATE 'GOSPLIT-CHARG(' sc_counter ')' INTO wa_bwtar.
    PERFORM bdc_dynpro USING 'SAPLMIGO' '1000'.
    PERFORM bdc_field
    USING 'BDC_OKCODE' '=OK_SP_CH'.
    PERFORM bdc_field
    USING 'BDC_CURSOR' 'GOSPLIT-CHARG
    (sc_counter)'.
    PERFORM bdc_field USING wa_matnr itab_barcode-
    m_gross_wt.
    PERFORM bdc_field USING wa_bwtar itab_barcode-
    m_batch_no.
    PERFORM bdc_field
    USING 'BDC_CURSOR' 'GOSPLIT-CHARG
    (sc_counter)'.
    *When end of itab
    AT LAST.
    PERFORM bdc_dynpro USING 'SAPLMIGO' '1000'.
    PERFORM bdc_field
    USING 'BDC_OKCODE' '=OK_GOON'.
    PERFORM bdc_field
    USING 'BDC_CURSOR' 'GOSPLIT-CHARG
    (sc_counter)'.
    PERFORM bdc_dynpro USING 'SAPLMIGO' '0001'.
    PERFORM bdc_field
    USING 'BDC_OKCODE' '=MIGO_OK_NEXT_IT'.
    PERFORM bdc_field USING 'GODEFAULT_TV-
    BWART' '101'.
    PERFORM bdc_field USING 'GOHEAD-
    BLDAT' ld_bldat.
    PERFORM bdc_field USING 'GOHEAD-
    BUDAT' ld_budat.
    PERFORM bdc_field USING 'GOHEAD-
    XNAPR' 'X'.
    PERFORM bdc_field USING 'GOHEAD-
    WEVER' '3'.
    PERFORM bdc_field
    USING 'BDC_CURSOR' 'GOITEM-ZEILE(01)'.
    PERFORM bdc_field USING 'GODYNPRO-
    DETAIL_ZEILE' ' 1'.
    PERFORM bdc_field USING 'GOITEM-
    ERFME' 'KG'.
    PERFORM bdc_field USING 'GOITEM-
    MIGO_ELIKZ' '1'.
    PERFORM bdc_field USING 'GOITEM-
    BWART' '101'.
    PERFORM bdc_dynpro USING 'SAPLMIGO' '0001'.
    PERFORM bdc_field
    USING 'BDC_OKCODE' '=MIGO_OK_TAKE_VALU
    E'.
    PERFORM bdc_field USING 'GODEFAULT_TV-
    BWART' '101'.
    PERFORM bdc_field USING 'GOHEAD-
    BLDAT' ld_bldat.
    PERFORM bdc_field USING 'GOHEAD-
    BUDAT' ld_budat.
    PERFORM bdc_field USING 'GOHEAD-
    XNAPR' 'X'.
    PERFORM bdc_field
    USING 'BDC_CURSOR' 'GOITEM-TAKE_IT
    (01)'.
    PERFORM bdc_field USING 'GOITEM-TAKE_IT
    (01)' 'X'.
    PERFORM bdc_field USING 'GODYNPRO-
    DETAIL_ZEILE' ' 1'.
    PERFORM bdc_field USING 'GOITEM-
    ERFME' 'KG'.
    PERFORM bdc_field USING 'GOITEM-
    MIGO_ELIKZ' '1'.
    PERFORM bdc_field USING 'GOITEM-
    BWART' '101'.
    PERFORM bdc_dynpro USING 'SAPLMIGO' '0001'.
    PERFORM bdc_field
    USING 'BDC_OKCODE' '=OK_CHECK'.
    PERFORM bdc_field USING 'GODEFAULT_TV-
    BWART' '101'.
    PERFORM bdc_field USING 'GOHEAD-
    BLDAT' ld_bldat.
    PERFORM bdc_field USING 'GOHEAD-
    BUDAT' ld_budat.
    PERFORM bdc_field USING 'GOHEAD-
    XNAPR' 'X'.
    PERFORM bdc_field
    USING 'BDC_CURSOR' 'GOITEM-TAKE_IT
    (01)'.
    PERFORM bdc_field USING 'GODYNPRO-
    DETAIL_ZEILE' ' 1'.
    PERFORM bdc_field USING 'GOITEM-
    ERFME' 'KG'.
    PERFORM bdc_field USING 'GOITEM-
    MIGO_ELIKZ' '1'.
    PERFORM bdc_field USING 'GOITEM-
    BWART' '101'.
    PERFORM bdc_field USING 'GODYNPRO-
    DETAIL_TAKE' 'X'.
    PERFORM bdc_dynpro USING 'SAPMSSY0' '0120'.
    PERFORM bdc_field
    USING 'BDC_OKCODE' '=&ONT'.
    PERFORM bdc_dynpro USING 'SAPLMIGO' '0001'.
    PERFORM bdc_field
    USING 'BDC_OKCODE' '=OK_POST1'.
    PERFORM bdc_field USING 'GODEFAULT_TV-
    BWART' '101'.
    PERFORM bdc_field USING 'GOHEAD-
    BLDAT' ld_bldat.
    PERFORM bdc_field USING 'GOHEAD-
    BUDAT' ld_budat.
    PERFORM bdc_field USING 'GOHEAD-
    XNAPR' 'X'.
    PERFORM bdc_field
    USING 'BDC_CURSOR' 'GOITEM-TAKE_IT
    (01)'.
    PERFORM bdc_field USING 'GODYNPRO-
    DETAIL_ZEILE' ' 1'.
    PERFORM bdc_field USING 'GOITEM-
    ERFME' 'KG'.
    PERFORM bdc_field USING 'GOITEM-
    MIGO_ELIKZ' '1'.
    PERFORM bdc_field USING 'GOITEM-
    BWART' '101'.
    PERFORM bdc_field USING 'GODYNPRO-
    DETAIL_TAKE' 'X'.
    PERFORM bdc_transaction USING 'MIGO_GO'.
    ENDAT.
    ENDLOOP.
    PERFORM close_group.
    ENDFORM. "f_prized_data

    Hi
    Thanks Peram for your swift reply but I am a newbie to BAPIs ...... is there anyway i can do this from within the code i had written ....
    for BAPIs I have to do R & D in detail and I need to complete this urgently. If BAPI is the only solution kindly provide my some quick guideline to proceed.
    Thanks,
    Imran

  • Checking for running programs using a abap program

    Is there a way in ABAP to detect from within a program that another process is running the same program? Meaning if PROG1 is running, could PROG1 check to see if another process is running program PROG1?

    Use the locking concept.   You can either create your own, or a popular one to use is ESINDX, passing parameters: relid 'ZZ', SRTFD program name, and SRTF2 = 0. 
    The logic is:
    Attempt to get lock (FM ENQUEUE_ESINDX, perhaps).
    If lock got -> run program
    If lock not got -> quit.
    You have to put this logic at the start of your program.
    matt

  • BDC program using call txn for txn cj40

    Hi,
    I am uploading data using bdc call txn method for txn cj40. In flat file I have 2 header field and 4 line items.So in line items last field is Qty [RK70L-MENGE].This field data is not uploading.Pls tell me where is the problem.
    And in txn cj40 first field is project def, So user wants. That field should be blank.
    Bcoz it is taking previous value.Pls tell me the suitable code for that.
    Thanks & Regards,
    Shiv Kant

    So in line items last field is Qty RK70L-MENGE//
    ->Use char format in ur flat file for the quantity field.
    itab-menge(13) type c.
    //And in txn cj40 first field is project def, So user wants. That field should be blank.
    Bcoz it is taking previous value.Pls tell me the suitable code for that.
    Dont know what u mean by taking previous value .. just check if ur refreshing bdcdata structure after every iteration / before the start of iteration itself  in ur loop endloop .
    loop ..
    refresh i_bdcdata[].  " <----
    perform
    perform
    perform
    endloop.

  • BDC Programs Using SM35

    Hi,
    What is the best and easiest way to determine the list of programs in SAP (standard or custom) that uses SM35?  Is there a table somewhere that stores this information?
    Thanks,
    Gene

    Maybe one way is to do a where-used on the function module BDC_CLOSE_GROUP or BDC_OPEN_GROUP or BDC_INSERT.
    Regards,
    Rich Heilman

  • Wireless using SAP ABAP Report programming

    Hi All Boss,
    I am doing my project Wireless program using SAP ABAP
    I need that project.
    so please send me wireless program for sap abap and screen shot.
    reply me urgent....
    Please donot forgot to all..

    This is not a program writing service.

  • BDC program for Other Goods receipts

    Hi all,
    I need BDC program for Other goods receipts,
    I have data in excel like material, batch id, qty, actual width, length, plant etc. i want to upload this in one short based on the movement type.
    Thanks in advance.
    Shankar

    Hi MP Shankar,
    This is a sample BDC program .Use the format to develop your own BDC program.First record your trasnaction and use that recorded program here.Pass your filename here.
    SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-001.
    PARAMETERS: p_ifile TYPE dxfile-filename.
    SELECTION-SCREEN END OF BLOCK b1.
    SELECTION-SCREEN BEGIN OF BLOCK b3 WITH FRAME TITLE text-002.
    PARAMETERS: p_sess RADIOBUTTON GROUP g3                  "create session
                       DEFAULT 'X' USER-COMMAND bdc,
                p_ctu  RADIOBUTTON GROUP g3.                 "call transaction
    SELECTION-SCREEN END OF BLOCK b3.
    DATA : BEGIN OF itab OCCURS 0,
           str TYPE string,
           END OF itab,
           l_file TYPE string,
           t_bdcdata TYPE STANDARD TABLE OF bdcdata,
           wa_bdcdata LIKE LINE OF t_bdcdata.
    AT SELECTION SCREEN ON VALUE REQUEST
    Value request for the filename.
    AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_ifile.
      PERFORM help_input_file.
    START-OF-SELECTION.
      CLEAR l_file.
      l_file = p_ifile.
      CALL FUNCTION 'GUI_UPLOAD'
        EXPORTING
          filename                = l_file
          filetype                = 'ASC'
        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.
    *Start new session
      IF p_sess = 'X'.
        PERFORM bdc_open.
      ENDIF.
      LOOP AT itab.
        PERFORM creat_batch_input.
        PERFORM bdc_insert.
        IF p_ctu = 'X'.
          CALL TRANSACTION 'SE38'  USING t_bdcdata  MODE 'A'.
        ENDIF.
      ENDLOOP.
      IF p_sess = 'X'.
        PERFORM bdc_close .
      ENDIF.
    *&      Form  bdc_open
          text
    -->  p1        text
    <--  p2        text
    FORM bdc_open .
      CALL FUNCTION 'BDC_OPEN_GROUP'
        EXPORTING
          client              = sy-mandt
          group               = 'ZMUK'
          user                = sy-uname
        EXCEPTIONS
          client_invalid      = 1
          destination_invalid = 2
          group_invalid       = 3
          group_is_locked     = 4
          holddate_invalid    = 5
          internal_error      = 6
          queue_error         = 7
          running             = 8
          system_lock_error   = 9
          user_invalid        = 10
          OTHERS              = 11.
    ENDFORM.                    " bdc_open
    *&      Form  creat_batch_input
          text
    -->  p1        text
    <--  p2        text
    FORM creat_batch_input .
    use your own recorded program here.
      PERFORM bdc_dynpro      USING 'SAPLWBABAP' '0100'.
      PERFORM bdc_field       USING 'BDC_OKCODE'
                                    '=STRT'.
      PERFORM bdc_field       USING 'RS38M-PROGRAMM'
                                    itab-str.
      PERFORM bdc_field       USING 'RS38M-FUNC_EDIT'
                                    'X'.
      PERFORM bdc_dynpro      USING 'SAPLSLVC_FULLSCREEN' '0500'.
      PERFORM bdc_field       USING 'BDC_OKCODE'
                                    '=&F03'.
      PERFORM bdc_dynpro      USING 'SAPLWBABAP' '0100'.
      PERFORM bdc_field       USING 'BDC_OKCODE'
                                    '=BACK'.
      PERFORM bdc_field       USING 'RS38M-PROGRAMM'
                                    itab-str.
      PERFORM bdc_field       USING 'RS38M-FUNC_EDIT'
                                    'X'.
    ENDFORM.                    " creat_batch_input
    *&      Form  bdc_insert
          text
    -->  p1        text
    <--  p2        text
    FORM bdc_insert .
      CALL FUNCTION 'BDC_INSERT'
        EXPORTING
          tcode            = 'SE38'
        TABLES
          dynprotab        = t_bdcdata
        EXCEPTIONS
          internal_error   = 1
          not_open         = 2
          queue_error      = 3
          tcode_invalid    = 4
          printing_invalid = 5
          posting_invalid  = 6
          OTHERS           = 7.
    ENDFORM.                    " bdc_insert
    *&      Form  bdc_dynpro
          text
         -->P_0168   text
         -->P_0169   text
    FORM bdc_dynpro  USING p_program TYPE any
                           p_dynpro  TYPE any.
      CLEAR wa_bdcdata.
      wa_bdcdata-program  = p_program.
      wa_bdcdata-dynpro   = p_dynpro.
      wa_bdcdata-dynbegin = 'X'.
      APPEND wa_bdcdata TO t_bdcdata.
    ENDFORM.                    " bdc_dynpro
    *&      Form  bdc_field
          text
         -->P_0179   text
         -->P_0180   text
    FORM bdc_field  USING   p_fnam TYPE any
                            p_fval TYPE any.
      CLEAR wa_bdcdata.
      wa_bdcdata-fnam = p_fnam.
      wa_bdcdata-fval = p_fval.
      CONDENSE wa_bdcdata-fval.
      APPEND wa_bdcdata TO t_bdcdata.
    ENDFORM.                    " bdc_field
    *&      Form  bdc_close
          text
    -->  p1        text
    <--  p2        text
    FORM bdc_close .
      CALL FUNCTION 'BDC_CLOSE_GROUP'
        EXCEPTIONS
          not_open    = 1
          queue_error = 2
          OTHERS      = 3.
    ENDFORM.                    " bdc_close
    *&      Form  help_input_file
          text
    -->  p1        text
    <--  p2        text
    FORM help_input_file .
      DATA:  lt_file_table TYPE filetable,
             la_file_table LIKE LINE OF lt_file_table,
             l_rc TYPE i,
             l_pcdsn TYPE cffile-filename.
      REFRESH lt_file_table.
      CLEAR la_file_table.
      CALL METHOD cl_gui_frontend_services=>file_open_dialog
        CHANGING
          file_table = lt_file_table
          rc         = l_rc.
      READ TABLE lt_file_table INTO la_file_table INDEX 1.
      l_pcdsn = la_file_table-filename.
      MOVE l_pcdsn TO p_ifile.
    ENDFORM.                    " help_input_file

  • BDC Program for T-code MI10 in Session Method.

    hi everyone,
      I want a  BDC Program in Session Method using t-code MI10.
    If also ther is no pgms for this T-code, then can anybody send me a bdc program using Session Method...
    With Regards,
    Seevangi

    hi everyone,
      I want a  BDC Program in Session Method using t-code MI10.
    If also ther is no pgms for this T-code, then can anybody send me a bdc program using Session Method...
    With Regards,
    Seevangi

  • Sample BDC program

    Hi,
      I am trying to create a bdc program using va01, with call transaction method.
    i need a sample program for this which we generate after the recording, with any scenario.
    thanks in advance.
    Rag

    I would suggest that you use the BAPI instead. 
    BAPI_SALESORDER_CREATEFROMDAT2
    REgard,
    RIch Heilman

  • Submission of BDC Program in Module Pool fails

    HI,
    I have written the BDC Program to change the position text using 'PP01' .  When it is executed, its changing the value correctly.
    In my module Pool Program, i am calling the BDC Program using SUBMIT as background job . But it throws an RUN TIME ERROR.
    Could you please let me know, whether is this possible or not?
    Thanks in advance.
    Thanks,
    K.Tharani

    Hi Tharani.
    Please check whether u has been used OOPS  ALV (using Costom container)in module pool programming. If that was the case, system throws an rum time error.
    Regards,
    surya.

  • What is the use of CTU_PRAMS in bdc programming?

    what is the use of CTU_PRAMS in bdc programming?
    can any explain wit a sample code.

    Hi,
    Hi,
    If u write table control bdc program in 14'' monitor screen, then if the same program u run at different monitor size, then the screen resolution problem comes in to the picture,
    like, u get 5 records in table control in one screen, and some other records in other screen, to avoid this screen resolution problem we use CTU-PARAMS Structure.
    In ur program u have to set
    defsize type ctu_params-defsize value 'X',
    Then u will be free of screen resolution problem.
    Fill the str CTU_PARAMS-defsize = 'X' and pass in CTU stmnt as
    call transaction 'XXX' options using t_bdcdata ctu_params.
    Analysing :
    1. If nothing works, then we have to
    some ifs & buts.
    2. There shall be normally
    2-4 different kinds of resolution
    on various users comptuers.
    3. Based on this,
    we have to know beforehand,
    what will be the number of rows
    in the table control.
    4. The user can be given
    a selection/paraemter
    for resolution
    eg. 800x600
    1024x100
    axb
    etc.
    5. Based on this, we will hardcode
    in the program (based upon our knowledge/recording
    which we have seen and done)
    we will hardcode
    the number of lines
    in the VARIBLE.
    6. Then we can simply use this variable
    for our LOOP and logic purpose.
    7. It will be the responsibiltiy of the
    use to CHOOSE THE CORRECT resolution,
    on the selection-screen.
    For screen resolution use ctu_params, with default size
    Data : f_option type ctu_params,
    f_option-updmode = 'S'.
    f_option-defsize = 'X'.
    f_option-dismode = 'N'.
    call transaction 'VA01' using bdcdata options from f_option messages into bdcerror.
    CALL TRANSACTION tcode... OPTIONS FROM opt
    ... OPTIONS FROM opt
    Effect
    Allows you to control processing using the values of the componetns of the structure opt, which must have the ABAP Dictionary type CTU_PARAMS. The components have the following meanings:
    DISMODE
    Display mode (like the MODE addition)
    UPDMODE
    Update mode (like the UPDATE addition)
    CATTMODE
    CATT mode (controls a CATT)
    CATT mode can have the following values:
    ' ' No CATT active
    'N' CATT without single-screen control
    'A' CATT with single-screen control
    DEFSIZE
    Use default window size
    RACOMMIT
    Do not end transaction at COMMIT WORK
    NOBINPT
    No batch input mode (that is, SY-BINPT = SPACE)
    NOBIEND
    No batch input mode after the end of BDC data.
    The components DEFSIZE , RACOMMIT, NOBINPT, and NOBIEND always take the following values:
    'X' Yes
    ' ' No
    If you do not use the OPTIONS FROM addition, the following control parameter settings apply:
    DISMODE
    From addition MODE
    UPDMODE
    From addition UPDATE
    CATTMODE
    No CATT active
    DEFSIZE
    Do not use default window size
    RACOMMIT
    Successful end on COMMIT WORK
    NOBINPT
    Batch input mode active ( SY-BINPT = X
    NOBIEND
    Batch input mode remains active after the BDC data

Maybe you are looking for