Table control lines cannot be controlled in Batch Input session ?

I am using a program which creates Batch Input sessions for the transaction FCHR (Online cashed checks) . The second screen is that of a table control where the check number is entered.
     I observed that while doing SHDB, if we tick the default size then changing the desktop resolution has no effect on the number of lines in table control - we see 14 lines in both cases.However, when the batch input session is processed, the number of table control lines varies according to the resoution(9 lines for 800600 and approx 15 for 1024768). Selecting the 'Dynpro standard size' option while processing the session has no effect.
  I know call transaction with 'default' parameter in optparam will take care of this problem. But I want to know whether Batch Input Session is known to have a problem with different resolutions.

HI..
i had the same problem once.... i dealt in the following way
while entering values in table control
1) enter value in the first line
2) look for button on application toolbar using which you can increment line
3) you will not find difference for first line but you will find it when you insert second line and go for next line.
4) now for every increment you will get table conrol as (02) if you are going for recording.
this will surely solve all issue related to table control as it solved for me
regards
Edited by: Mohit Kumar on Feb 19, 2009 12:04 PM

Similar Messages

  • Batch input session is not generating In BRS

    Hello,
    I am uploading bank statement through ZFF67 program manual bank statement, after entering all the line items in the file, batch input session is not generating in SM35.
    Please give advice.
    Thanks,
    Ratnam

    Hi,
    Go to environment - specification-  here you need to maintain settings for batch input processing in T.code FF67.
    I am not exactly remembering the menu option name. The sub option name is Specification, these settings you need to change with your user id.
    Check and revert back still the same problem exists.
    Regards,
    Sankar

  • SM35: Batch-Input Session cannot be released / RSBDCBTC

    Hi,
    a job with ABAP RSBDCBTC, which processed a batch input session, was cancelled due to system shutdown.
    Now the sm35-session has got status 'In processing' and cannot be released ( Message 00299: Could not release folder MM06_XXXX, since it still contains a background job).
    A new Job finishes with 'The requested session cannot be processed'.
    Is there a possibility to get the batch-input-session released ?
    Wolfrad

    Hi,
    It seems the Batch Input Session had schedule a background job which is still running & hence cannot be released.
    Could you please check in transaction SM37 whether any related background job is still running.
    Select the job & click on Cancel to stop the job. Then retry to release.
    Best regards,
    Prashant

  • SM35-Downloading the Logs for the Batch-Input Session

    Hi Folks,
    I have above 300 Batch-Input sessions imported, and most of them ended with errors, right now I am copying the errors from line to line into excel but this is time consuming. Does any body has a solution to download the logs created through the Batch-Input session into excel sheets. So that I can send through mail to my customer.
    Any help would be appriciated.
    Thanks in Advance.
    Sanjeev.

    Okay... I have one more crude way of downloading the log but this will only work if you have the new abap debugger available..
    1. Go to SM35
    2. Select the session and Click the log button
    3. Select the log you want to download, activate debugging and choose display
    4. Put a breakpoint at the statement "Call screen 1400."
    5. Select "Switch to New ABAP debugger" from the Debugging option in the toolbar
    6. Go to the "Tables" tab and enter BDCLM and hit enter
    7. Click the "Services of the tool" option. This is the last of the 6 buttons available on the Tables tab besides the table control which displays the contents of internal table BDCLM
    8. Choose "Save to local file" option on the following popup
    Pretty lengthy and cumbersome approach but I think this is the only option available if you cannot migrate the program to production.
    -Kiran

  • Number of transactions in the current batch input session ...

    Hi,
    How to control a Number of transactions in the current batch input session ...
    for LSMW.
    Pls help. I'm new to LSMW
    Thanks
    Ram

    > Main idea is to get an idea about the DB
    >
    > currently in the PRD DB auditing is disabled.
    > Im thinking of enabling the DB auditing.
    > Therefore i'm looking to get rough idea about, number of transactions that will occur in the DB
    >
    > audit_sys_operations                 boolean     FALSE
    > audit_trail                                    string      NONE
    >
    > Will enabling auditing, make additional overhead to the database.!
    I see.
    Just my two cents on this:
    - you enable auditing, when there is a requirement for it (business/legal wise), so it isn't really about the technical overhead
    - and of course there is overhead. It's just the question whether or not your users will see a increased response time because of that.
    > how can i check these stats in DB level. (table/view)
    Check V$SYSSTAT and V$SYSMETRIC on Oracle level.
    These should contain the information you like to see.
    (btw: in my first reply I referred to how easy it is to create these statistic information on DB kernel level )
    regards,
    Lars

  • Batch Input Session - Display Error Only - SM35

    Dear all,
    Need to do material master extension in MM01 and considering batch input session using mode 'display error' only.
    However,do have a concern on its performance or run time. In SM35, running in display error only mode - will there be any time out error like the ones encounter in abap reporting ?
    This is because, we will be dealing with a huge volume of data (round 2,000). Therefore would like to know, if there would be any possibility that the bdc session in sm35 will experience a time out or not .
    Appreciate it if you could shed some lights on this. Thanks in advance.

    Hello there,
    Executing MM01's batch job in background wasn't really an option. This is because, this error was encountered "Control Framework: Fatal error - GUI cannot be reached".
    Had done a search on this -- and it indicates that in background mode there isn't GUI involved. Searched result also shows that this error appears when its comes to screens with text ie. Purchase Text or Sales text. Nope, no BDC on entering text involved.
    http://www.sapfans.com/forums/viewtopic.php?f=13&t=164902&hilit=ControlFramework%3AFatalerrorGUIcannotbe+reached
    Therefore the option am considering is executing the batch job in "Display Error Only". Nonetheless, am not too sure if this will cause time out. The other reason as to this option is that -- we initially introduced CALL TRANSACTION for extending material in MM01. However, functional feedback that it was slow.
    Kindly advise - thanks in advance.

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

  • Update error after all screens in Batch Input session is processed.

    Hi,
    I have a problem in processing the batch input session.  The batch input session is calling F-02 to post less than 999 line items (around 700) to a single financial document. The batch session is expected to have an error because tax code is missing for some line items but even after the tax code is added manually onto the batch screen, the update error message still happened at the end of the process. In the log, it said "System error: Error when inserting table BSET". Same account has been used to post 10+ line items manually with F-02, no error occurred.
    Does anyone have any idea what possible reason could cause the update error in updating the tax table?

    Hi Rob,
    That is exactly what happened to us. We already had note 521481 in our system but we also have OSS 558288 in which causes our scenario not generating an error message but an update termination instead.
    The other thing I found out is once tax code is entering in one of the line items, it will be copied to all the succeeding line items even for the accounts that does not require a tax code (i.e. posting without tax code allowed checked) which will significantly increase the amounts of data posted into BSET.
    We fixed the issue by changing the BDC program so it will take out the auto-copied tax code from other line items. Issue is solved. Thank you. I also rewarded the points.
    Minami

  • Batch Input Session for Errors

    Hello
    I'm running a Batch Input (in a FM) and I want to create a session for records with errors. In case of error (output parameter of the FM subrc NE 0) I send it to that session for later running.
    Can you explain how do I do this? Thanks!

    hi,
    Look at the sample program
    REPORT Z_BDC_CUSTOMER_R07
           NO STANDARD PAGE HEADING LINE-SIZE 255.
    INCLUDE Z_CUSTOMER_BDC_R02.
    *-----AT SELECTION-SCREEN
    AT SELECTION-SCREEN.
      IF SY-UCOMM = 'ONLI'.
    *-----group and user must be filled to create a session
        IF SESSION = 'X' AND
           GROUP = SPACE OR USER = SPACE.
          MESSAGE E613(MS).
        ENDIF.
    *----Presentation File name should be entered
        IF SESSION = 'X' AND RB_PRE = 'X'
                         AND P_FILE = '' .
          MESSAGE E004(ZROJA).
        ELSEIF CTU = 'X' AND RB_PRE = 'X'
                         AND P_FILE = '' .
          MESSAGE E004(ZROJA).
        ENDIF.
    *----Application File name should be entered
        IF SESSION = 'X' AND RB_APP   = 'X'
                         AND P_FILE_A = '' .
          MESSAGE E004(ZROJA).
        ELSEIF CTU = 'X' AND RB_APP = 'X'
                   AND P_FILE_A = '' .
          MESSAGE E004(ZROJA).
        ENDIF.
      ENDIF.
    *-----AT SELECTION-SCREEN OUTPUT
    AT SELECTION-SCREEN OUTPUT.
    *----When file from Presentation server is selected
      IF RB_PRE = 'X'.
    *----To make the application server inactive
        LOOP AT SCREEN.
          IF SCREEN-GROUP1 = 'AAA'.
            SCREEN-ACTIVE = 0.
            MODIFY SCREEN.
          ENDIF.
        ENDLOOP.
      ELSE.
    *----When file from Presentation server is selected
        RB_APP = 'X'.
    *----To make the application server inactive
        LOOP AT SCREEN.
          IF SCREEN-GROUP1 = 'BBB'.
            SCREEN-ACTIVE = 0.
            MODIFY SCREEN.
          ENDIF.
        ENDLOOP.
      ENDIF.
    *-----AT SELECTION-SCREEN ON VALUE-REQUEST
    AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_FILE_A.
      CALL FUNCTION 'F4_DXFILENAME_TOPRECURSION'
        EXPORTING
          I_LOCATION_FLAG = 'A'
          I_SERVER        = ' '
          FILEOPERATION   = 'R'
        IMPORTING
          O_PATH          = P_FILE_A
        EXCEPTIONS
          RFC_ERROR       = 1
          ERROR_WITH_GUI  = 2
          OTHERS          = 3.
      IF SY-SUBRC <> 0.
        MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
                WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
      ENDIF.
    *-----AT SELECTION-SCREEN ON VALUE-REQUEST
    AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_FILE.
    *-----Function module for value-request
      CALL FUNCTION 'F4_FILENAME'
        EXPORTING
          PROGRAM_NAME  = SYST-CPROG
          DYNPRO_NUMBER = SYST-DYNNR
          FIELD_NAME    = ' '
        IMPORTING
          FILE_NAME     = V_FILE_NAME.
    *----Assigning the flatfile to parameter
      P_FILE        = V_FILE_NAME.
    *-----START-OF-SELECTION
    START-OF-SELECTION.
      DATA: FILENAME TYPE STRING.
    *----When file from Presentation Server is selected
      IF RB_PRE = 'X'.
        FILENAME = P_FILE.
    *-----Function module to upload data from the presentation server
        CALL FUNCTION 'GUI_UPLOAD'
          EXPORTING
            FILENAME                = FILENAME
            FILETYPE                = 'ASC'
            HAS_FIELD_SEPARATOR     = 'X'
          TABLES
            DATA_TAB                = IT_KNA1
          EXCEPTIONS
            FILE_OPEN_ERROR         = 1
            FILE_READ_ERROR         = 2
            NO_BATCH                = 3
            GUI_REFUSE_FILETRANSFER = 4
            INVALID_TYPE            = 5
            NO_AUTHORITY            = 6
            UNKNOWN_ERROR           = 7
            BAD_DATA_FORMAT         = 8
            HEADER_NOT_ALLOWED      = 9
            SEPARATOR_NOT_ALLOWED   = 10
            HEADER_TOO_LONG         = 11
            UNKNOWN_DP_ERROR        = 12
            ACCESS_DENIED           = 13
            DP_OUT_OF_MEMORY        = 14
            DISK_FULL               = 15
            DP_TIMEOUT              = 16
            OTHERS                  = 17.
        IF SY-SUBRC <> 0.
          MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
                  WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
        ENDIF.
      ELSE.
    *----Upload the File from Application Server
        OPEN DATASET P_FILE_A FOR INPUT IN TEXT MODE ENCODING DEFAULT.
    *-----to display an error if the file is not in application server
        IF SY-SUBRC NE 0.
          MESSAGE E006(ZROJA).
        ELSE.
          DO.
            READ DATASET P_FILE_A INTO X_KNA1.
            IF SY-SUBRC EQ 0.
              APPEND X_KNA1 TO IT_KNA1.
            ELSE.
              EXIT.
            ENDIF.
          ENDDO.
        ENDIF.
        CLOSE DATASET P_FILE_A.
      ENDIF.
    *-----To open a batchinput session
      IF SESSION = 'X'.
        CALL FUNCTION 'BDC_OPEN_GROUP'
          EXPORTING
            CLIENT              = SY-MANDT
            GROUP               = GROUP
            KEEP                = KEEP
            USER                = USER
            PROG                = SY-CPROG
          EXCEPTIONS
            CLIENT_INVALID      = 1
            DESTINATION_INVALID = 2
            GROUP_INVALID       = 3
            GROUP_IS_LOCKED     = 4
            INTERNAL_ERROR      = 6
            QUEUE_ERROR         = 7
            RUNNING             = 8
            SYSTEM_LOCK_ERROR   = 9
            USER_INVALID        = 10
            OTHERS              = 11.
        IF SY-SUBRC <> 0.
          MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
                  WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
        ENDIF.
      ENDIF.
    *-----Filling the BDCDATA using the Internal Table
      LOOP AT IT_KNA1 INTO X_KNA1.
        PERFORM BDC_DYNPRO      USING 'SAPMF02D' '0100'.
        PERFORM BDC_FIELD       USING 'BDC_CURSOR'
                                      'RF02D-KTOKD'.
        PERFORM BDC_FIELD       USING 'BDC_OKCODE'
                                      '/00'.
        PERFORM BDC_FIELD       USING 'RF02D-KUNNR'
                                      X_KNA1-KUNNR.
        PERFORM BDC_FIELD       USING 'RF02D-KTOKD'
                                      X_KNA1-KTOKD.
        PERFORM BDC_DYNPRO      USING 'SAPMF02D' '0110'.
        PERFORM BDC_FIELD       USING 'BDC_CURSOR'
                                      'KNA1-SPRAS'.
        PERFORM BDC_FIELD       USING 'BDC_OKCODE'
                                      '/00'.
        PERFORM BDC_FIELD       USING 'KNA1-NAME1'
                                      X_KNA1-NAME1.
        PERFORM BDC_FIELD       USING 'KNA1-SORTL'
                                      X_KNA1-SORTL.
        PERFORM BDC_FIELD       USING 'KNA1-ORT01'
                                      X_KNA1-ORT01.
        PERFORM BDC_FIELD       USING 'KNA1-PSTLZ'
                                      X_KNA1-PSTLZ.
        PERFORM BDC_FIELD       USING 'KNA1-LAND1'
                                      X_KNA1-LAND1.
        PERFORM BDC_FIELD       USING 'KNA1-SPRAS'
                                      X_KNA1-SPRAS.
        PERFORM BDC_DYNPRO      USING 'SAPMF02D' '0120'.
        PERFORM BDC_FIELD       USING 'BDC_CURSOR'
                                      'KNA1-LZONE'.
        PERFORM BDC_FIELD       USING 'BDC_OKCODE'
                                      '/00'.
        PERFORM BDC_FIELD       USING 'KNA1-LZONE'
                                      X_KNA1-LZONE.
        PERFORM BDC_DYNPRO      USING 'SAPMF02D' '0125'.
        PERFORM BDC_FIELD       USING 'BDC_CURSOR'
                                      'KNA1-NIELS'.
        PERFORM BDC_FIELD       USING 'BDC_OKCODE'
                                      '/00'.
        PERFORM BDC_DYNPRO      USING 'SAPMF02D' '0130'.
        PERFORM BDC_FIELD       USING 'BDC_CURSOR'
                                      'KNBK-BANKS(01)'.
        PERFORM BDC_FIELD       USING 'BDC_OKCODE'
                                      '=ENTR'.
        PERFORM BDC_DYNPRO      USING 'SAPMF02D' '0340'.
        PERFORM BDC_FIELD       USING 'BDC_CURSOR'
                                      'RF02D-KUNNR'.
        PERFORM BDC_FIELD       USING 'BDC_OKCODE'
                                      '=ENTR'.
        PERFORM BDC_DYNPRO      USING 'SAPMF02D' '0370'.
        PERFORM BDC_FIELD       USING 'BDC_CURSOR'
                                      'RF02D-KUNNR'.
        PERFORM BDC_FIELD       USING 'BDC_OKCODE'
                                      '=ENTR'.
        PERFORM BDC_FIELD       USING 'KNA1-CIVVE'
                                      'X'.
        PERFORM BDC_DYNPRO      USING 'SAPMF02D' '0360'.
        PERFORM BDC_FIELD       USING 'BDC_CURSOR'
                                      'KNVK-NAMEV(01)'.
        PERFORM BDC_FIELD       USING 'BDC_OKCODE'
                                      '=ENTR'.
    *----If Session is selected
        IF SESSION = 'X'.
    *----To insert data into batch input session
          CALL FUNCTION 'BDC_INSERT'
            EXPORTING
              TCODE     = 'XD01'
            TABLES
              DYNPROTAB = IT_BDCDATA.
          REFRESH IT_BDCDATA.
          AT LAST.
            SKIP.
            WRITE:/ TEXT-001.
          ENDAT.
        ELSE.
    *----Calling the transaction
          CALL TRANSACTION 'XD01' USING IT_BDCDATA
                                  MODE     CTUMODE
                                  UPDATE   CUPDATE
                                MESSAGES INTO IT_BDCMSGCOLL.
          CLEAR IT_BDCDATA.
          REFRESH IT_BDCDATA.
        ENDIF.
      ENDLOOP.
    *----If Session is Selected
      IF SESSION = 'X'.
    *----To close the session
        CALL FUNCTION 'BDC_CLOSE_GROUP'
          EXCEPTIONS
            NOT_OPEN    = 1
            QUEUE_ERROR = 2
            OTHERS      = 3.
        IF SY-SUBRC <> 0.
          MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
                  WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
        ENDIF.
      ENDIF.
    *-----END-OF-SELECTION
    END-OF-SELECTION.
    *----To display the success messages
      LOOP AT IT_BDCMSGCOLL INTO X_BDCMSGCOLL WHERE MSGTYP = 'S' .
    *-----If Message Type Differs
        ON CHANGE OF X_BDCMSGCOLL-MSGTYP.
          WRITE:/ TEXT-002.
          SKIP.
          ULINE (58).
          WRITE:/01 SY-VLINE,02 TEXT-003,
                 14 SY-VLINE,15 TEXT-004,
                 21 SY-VLINE,22 TEXT-005,
                 35 SY-VLINE,36 TEXT-006,
                 58 SY-VLINE,/01 SY-ULINE(58).
        ENDON.
        WRITE:/01 SY-VLINE,02 X_BDCMSGCOLL-MSGTYP,
               14 SY-VLINE,15 X_BDCMSGCOLL-TCODE,
               21 SY-VLINE,22 X_BDCMSGCOLL-MSGV1,
               35 SY-VLINE,36 TEXT-007,
               58 SY-VLINE,/01 SY-ULINE(58).
      ENDLOOP.
      SKIP 2.
    *----To display the error messages
      LOOP AT IT_BDCMSGCOLL INTO X_BDCMSGCOLL WHERE MSGTYP = 'E'.
    *-----If Message Type Differs
        ON CHANGE OF X_BDCMSGCOLL-MSGTYP.
          WRITE:/ TEXT-008.
          SKIP.
          ULINE (58).
          WRITE:/01 SY-VLINE,02 TEXT-003,
                 14 SY-VLINE,15 TEXT-004,
                 21 SY-VLINE,22 TEXT-005,
                 35 SY-VLINE,36 TEXT-006,
                 58 SY-VLINE,/01 SY-ULINE(58).
        ENDON.
        WRITE:/01 SY-VLINE,02 X_BDCMSGCOLL-MSGTYP,
               14 SY-VLINE,15 X_BDCMSGCOLL-TCODE,
               21 SY-VLINE,22 X_BDCMSGCOLL-MSGV1,
               35 SY-VLINE,36 'Customer Already Exits',
               58 SY-VLINE,/01 SY-ULINE(58).
      ENDLOOP.
    *-----FORM fill_bdcdata
    FORM FILL_BDCDATA USING L_DYNPRO TYPE ANY
                            L_FNAME  TYPE ANY
                            L_FVALUE TYPE ANY.
      CLEAR X_BDCDATA.
      IF L_DYNPRO = 'X'.
        X_BDCDATA-DYNBEGIN = 'X'.
        X_BDCDATA-PROGRAM  = L_FNAME.
        X_BDCDATA-DYNPRO   = L_FVALUE.
      ELSE.
        X_BDCDATA-FNAM = L_FNAME.
        X_BDCDATA-FVAL = L_FVALUE.
      ENDIF.
      APPEND X_BDCDATA TO IT_BDCDATA.
    ENDFORM.                    "BDC_FIELD
    *-----Start new screen
    FORM BDC_DYNPRO USING PROGRAM DYNPRO.
      CLEAR IT_BDCDATA.
      IT_BDCDATA-PROGRAM  = PROGRAM.
      IT_BDCDATA-DYNPRO   = DYNPRO.
      IT_BDCDATA-DYNBEGIN = 'X'.
      APPEND IT_BDCDATA.
    ENDFORM.                    "BDC_DYNPRO
    *-----Insert field
    FORM BDC_FIELD USING FNAM FVAL.
      IF FVAL <> SPACE.
        CLEAR IT_BDCDATA.
        IT_BDCDATA-FNAM = FNAM.
        IT_BDCDATA-FVAL = FVAL.
        APPEND IT_BDCDATA.
      ENDIF.
    ENDFORM.                    "BDC_FIELD

  • BDC Batch input session method

    Hi ,
               I am new to SAP progamming. Pls let me know the basics of BDC Batch Input session method and Call transaction method. I want to know the pros and cons of both methods with justification. Please help me in this regarding.

    Hi,
    Session method.
    1) synchronous processing.
    2) can tranfer large amount of data.
    3) processing is slower.
    4) error log is created
    5) data is not updated until session is processed.
    Call transaction.
    1) asynchronous processing
    2) can transfer small amount of data
    3) processing is faster.
    4) errors need to be handled explicitly
    5) data is updated automatically
    Check these link:
    http://www.sap-img.com/abap/difference-between-batch-input-and-call-transaction-in-bdc.htm
    http://www.sap-img.com/abap/question-about-bdc-program.htm
    http://www.itcserver.com/blog/2006/06/30/batch-input-vs-call-transaction/
    http://www.planetsap.com/bdc_main_page.htm
    Session method:
    1. Data migration is done in two steps .. Generate session and Process session.
    So resouces can be used efficiently. good for bulkdata migration.
    2. Session method generates error log when u process a session.
    3. No SY-SUBRC can be returned after each transaction is called.
    4. Provides synchronous Updation only...
    Call transaction method:
    1. Data migration is done in single steps ..bcoz Transactions are called immediately after filling BDCDATA table. So good for small amount of data.
    2. We have to collect error messages using BDCMSGCOLL Table
    3. Returns SY-SUBRC and Messages ..after each Call Transaction..very useful feature for further processing based on the Status and Messages..
    4. Supports Asynch or Synch Updation.
    Example code for session method
    Here is the porgram for Purchase order
    REPORT zmm0069 NO STANDARD PAGE HEADING
                                      MESSAGE-ID z0
                                      LINE-SIZE  132
                                      LINE-COUNT 65(2).
                         Internal Tables                                 *
    *Internal table for the purchasing info records fields.
      DATA: BEGIN OF i_inforecord OCCURS 0,
            matnr(18),
            lifnr(10),
            uom(3),
            ekgrp(3),
            planned_time(3),
            under_tol(3),
            over_tol(3),
            qty(10),
            price_cat(5),
            inco(3),
            designation(28),
            netpr(13),
            scale_qty1(10),
            scale_pr1(13),
            scale_qty2(10),
            scale_pr2(13),
            scale_qty3(13),
            scale_pr3(10),
            scale_qty4(13),
            scale_pr4(10),
            scale_qty5(13),
            scale_pr5(10),
            scale_qty6(13),
            scale_pr6(10),
            scale_qty7(13),
            scale_pr7(10),
            scale_qty8(13),
            scale_pr8(10),
            scale_qty9(13),
            scale_pr9(10),
            scale_qty10(13),
            scale_pr10(10),
            END OF i_inforecord.
    Internal table for Old and New Vendor number
      DATA : BEGIN OF i_lfb1 OCCURS 1,
             lifnr(10),
             altkn(10),
             END   OF i_lfb1.
    Declare internal table for Call Transaction and BDC Session
      DATA: i_bdc_table LIKE bdcdata OCCURS 0 WITH HEADER LINE.
                         Global Variables                                *
      DATA: g_counter(2) TYPE n,
            g_field_name(18) TYPE c,
            zc_yes  TYPE syftype VALUE 'X'.
                         Selection Screen                                *
      SELECTION-SCREEN BEGIN OF BLOCK a WITH FRAME TITLE text-001.
      PARAMETERS: p_fname1 TYPE localfile .
      SELECTION-SCREEN SKIP 1.
      SELECTION-SCREEN BEGIN OF BLOCK b WITH FRAME TITLE text-002.
      PARAMETERS: p_rloc1 AS CHECKBOX  DEFAULT 'X'.
      SELECTION-SCREEN BEGIN OF BLOCK c WITH FRAME TITLE text-003.
      PARAMETERS p_group(12) OBLIGATORY DEFAULT 'ZPURCHINFO'.
      SELECTION-SCREEN END OF BLOCK c.
      SELECTION-SCREEN END OF BLOCK b.
      SELECTION-SCREEN END OF BLOCK a.
    **WRITE the report header
      TOP-OF-PAGE.
        INCLUDE zheading.
                         Start of selection                              *
      START-OF-SELECTION.
    Load Input file
        PERFORM f_load_input_file.
    Create BDC records.
        PERFORM create_bdc_records .
    *&      Form  Create_BDC_records
          Perform the BDC for the records in the internal table
      FORM create_bdc_records .
        IF NOT i_inforecord[] IS INITIAL.
    Open BDC session
          PERFORM open_bdc_session.
          SELECT lifnr altkn FROM lfb1 INTO TABLE i_lfb1
                              FOR ALL ENTRIES IN i_inforecord
                              WHERE altkn = i_inforecord-lifnr.
    Sorting the Internal table for better performance
          SORT i_lfb1 BY altkn.
          LOOP AT i_inforecord.
    ***Mapping Old Vendor number to the new Vendor number
            READ TABLE i_lfb1 WITH KEY altkn = i_inforecord-lifnr BINARY
                                                                  SEARCH.
            IF sy-subrc EQ 0.
              i_inforecord-lifnr = i_lfb1-lifnr.
            ENDIF.
            CLEAR i_bdc_table[].
            PERFORM insert_screen_header.
         call transaction 'ME11' using i_bdc_table
                       mode 'A'.
         CLEAR i_bdc_table.
          ENDLOOP.
          CLEAR i_inforecord[].
          PERFORM close_bdc_session.
    Release the BDC sessions created
          PERFORM release_bdc.
        ENDIF.
      ENDFORM.                    " open_group
    *&      Form  bdc_dynpro_start
          Start the screen for the transfer of fields
      FORM bdc_dynpro_start  USING    p_g_program_1
                                      p_g_screen.
        CLEAR i_bdc_table.
        i_bdc_table-program  = p_g_program_1.
        i_bdc_table-dynpro   = p_g_screen.
        i_bdc_table-dynbegin = 'X'.
        APPEND i_bdc_table.
      ENDFORM.                    " bdc_dynpro_start_start
    *&      Form  bdc_insert_field
           Insert field                                                  *
      FORM bdc_insert_field USING f_name f_value.
        IF f_value <> space.
          CLEAR i_bdc_table.
          i_bdc_table-fnam = f_name.
          i_bdc_table-fval = f_value.
          APPEND i_bdc_table.
        ENDIF.
      ENDFORM.                    "bdc_insert_field
    *&      Form  open_bdc_session
          Open a BDC session
      FORM open_bdc_session .
    Open BDC session and create and update records
        CALL FUNCTION 'BDC_OPEN_GROUP'
          EXPORTING
            client                    = sy-mandt
          DEST                      = FILLER8
            group                     = p_group
          HOLDDATE                  = FILLER8
            keep                      = 'X'
            user                      = sy-uname
          RECORD                    = FILLER1
          PROG                      = SY-CPROG
        IMPORTING
          QID                       =
       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
        IF sy-subrc <> 0.
          MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
          WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
        ENDIF.
      ENDFORM.                    " create_bdc_session
    *&      Form  insert_screen_header
          Screen flow for the transfer of fields
      FORM insert_screen_header .
    First Screen 100
        PERFORM bdc_dynpro_start USING 'SAPMM06I' '0100'.
        PERFORM bdc_insert_field USING:'BDC_CURSOR' 'EINA-LIFNR',
                                       'BDC_OKCODE' '/00',
                                       'EINA-LIFNR' i_inforecord-lifnr,
                                       'EINA-MATNR' i_inforecord-matnr,
                                       'EINE-EKORG' '1000',
                                       'RM06I-NORMB' zc_yes.
    Next Screen 101
        PERFORM bdc_dynpro_start USING 'SAPMM06I' '0101'.
        PERFORM bdc_insert_field USING : 'BDC_CURSOR' 'EINA-MAHN1',
                                         'BDC_OKCODE' '/00',
                                         'EINA-MEINS' i_inforecord-uom.
    *Next Screen 102
        PERFORM bdc_dynpro_start USING 'SAPMM06I' '0102'.
        PERFORM bdc_insert_field USING : 'BDC_CURSOR' 'EINE-INCO2',
                                     'EINE-APLFZ' i_inforecord-planned_time,
                                     'EINE-EKGRP' i_inforecord-ekgrp,
                                     'EINE-NORBM' i_inforecord-qty.
        PERFORM bdc_insert USING  'EINE-UEBTK' ' '.
        PERFORM bdc_insert_field USING:'EINE-PEINH' i_inforecord-scale_qty1,
                                       'EINE-BPRME' i_inforecord-uom,
                                       'EINE-UNTTO' '5',
                                       'EINE-UEBTO' '25',
                                       'EINE-MEPRF' i_inforecord-price_cat,
                                       'EINE-NETPR' i_inforecord-netpr,
                                       'EINE-INCO1' i_inforecord-inco,
                                      'EINE-INCO2' i_inforecord-designation.
    Checking for Scale quantities
        IF i_inforecord-scale_qty2 = space.
          PERFORM bdc_insert_field  USING 'BDC_OKCODE' '=BU'.
          PERFORM insert_bdc_new.
        ELSE.
          PERFORM bdc_insert_field  USING 'BDC_OKCODE' '=KO'.
    Next Screen 201
          PERFORM bdc_dynpro_start USING 'SAPMV13A' '0201'.
          PERFORM bdc_insert_field USING : 'BDC_CURSOR' 'RV13A-DATAB',
                                            'BDC_OKCODE' '=PSTF'.
    Next Screen 201
          PERFORM bdc_dynpro_start USING 'SAPMV13A' '0201'.
          PERFORM bdc_insert_field USING : 'BDC_CURSOR' 'KONP-KSCHL(01)',
                                           'BDC_OKCODE' '=PSTF',
                                           'RV130-SELKZ(01)' zc_yes.
    LAST SCREEN 303
          PERFORM bdc_dynpro_start USING 'SAPMV13A' '0303'.
          PERFORM bdc_insert_field USING : 'BDC_CURSOR' 'KONM-KBETR(03)',
                                           'BDC_OKCODE' '=SICH'.
    Counter to Loop the Item level entry
          g_counter = 0.
          PERFORM scale_entry USING i_inforecord-scale_qty2
                                    i_inforecord-scale_pr2.
          PERFORM scale_entry USING i_inforecord-scale_qty3
                                    i_inforecord-scale_pr3.
          PERFORM scale_entry USING i_inforecord-scale_qty4
                                    i_inforecord-scale_pr4.
          PERFORM scale_entry USING i_inforecord-scale_qty5
                                    i_inforecord-scale_pr5.
          PERFORM scale_entry USING i_inforecord-scale_qty6
                                    i_inforecord-scale_pr6.
          PERFORM scale_entry USING i_inforecord-scale_qty7
                                    i_inforecord-scale_pr7.
          PERFORM scale_entry USING i_inforecord-scale_qty8
                                    i_inforecord-scale_pr8.
          PERFORM scale_entry USING i_inforecord-scale_qty9
                                    i_inforecord-scale_pr9.
          PERFORM scale_entry USING  i_inforecord-scale_qty10
                                     i_inforecord-scale_pr10.
          PERFORM insert_bdc_new.
        ENDIF.
      ENDFORM.                    " insert_screen_header
    *&      Form  insert_bdc
          Insert BDC
      FORM insert_bdc_new .
        CALL FUNCTION 'BDC_INSERT'
           EXPORTING
             tcode                  = 'ME11'
          POST_LOCAL             = NOVBLOCAL
          PRINTING               = NOPRINT
          SIMUBATCH              = ' '
          CTUPARAMS              = ' '
           TABLES
             dynprotab              = i_bdc_table
        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 ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
          WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
        ENDIF.
        CLEAR i_bdc_table[].
      ENDFORM.                    " insert_bdc
    *&      Form  close_bdc_session
         Close the BDC session
      FORM close_bdc_session .
        CALL FUNCTION 'BDC_CLOSE_GROUP'
             EXCEPTIONS
                  not_open    = 1
                  queue_error = 2
                  OTHERS      = 3.
        IF sy-subrc <> 0.
          MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
                  WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
        ENDIF.
      ENDFORM.                    " close_bdc_session
    *&      Form  f_load_input_file
          Upload the file
      FORM f_load_input_file.
    Check always Local file for upload
        IF p_rloc1 = zc_yes.
          CALL FUNCTION 'WS_UPLOAD'
               EXPORTING
                    filename                = p_fname1
                    filetype                = 'DAT'
               TABLES
                    data_tab                = i_inforecord
               EXCEPTIONS
                    conversion_error        = 1
                    file_open_error         = 2
                    file_read_error         = 3
                    invalid_type            = 4
                    no_batch                = 5
                    unknown_error           = 6
                    invalid_table_width     = 7
                    gui_refuse_filetransfer = 8
                    customer_error          = 9
                    OTHERS                  = 10.
          IF sy-subrc <> 0.
            MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
                    WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
            STOP.
          ENDIF.
        ENDIF.
      ENDFORM.                    " f_load_input_file
    *&      Form  release_bdc
         Release the session
      FORM release_bdc.
        SUBMIT rsbdcsub WITH mappe EQ p_group
                        WITH von EQ sy-datum
                        WITH bis EQ sy-datum
                        WITH fehler EQ '.'
                        EXPORTING LIST TO MEMORY
                        AND RETURN.
      ENDFORM.                    " release_bdc
    *&      Form  scale_entry
          Populate the Scale quantities
         -->P_SCALE_QTY
         -->P_SCALE_PRICE
      FORM scale_entry USING    p_scale_qty
                                p_scale_price.
    Increment the Counter
        g_counter = g_counter + 1.
        IF p_scale_qty <> space.
          CONCATENATE 'KONM-KSTBM('  g_counter  ')' INTO g_field_name.
          PERFORM bdc_insert_field USING g_field_name p_scale_qty.
          CONCATENATE 'KONM-KBETR('  g_counter  ')' INTO g_field_name.
          PERFORM bdc_insert_field USING g_field_name p_scale_price.
        ENDIF.
      ENDFORM.
    *&      Form  bdc_insert
          To uncheck the Unlimited (UEBTK)
      FORM bdc_insert USING  f_name f_value.
        CLEAR i_bdc_table.
        i_bdc_table-fnam = f_name.
        i_bdc_table-fval = f_value.
        APPEND i_bdc_table.
      ENDFORM.                    " bdc_insert
    Reward points if it is usefull ....
    Cheers,
    Chandra Sekhar.

  • How to check whether a batch input session is completed in ABAP program

    I have created a ABAP program to create a batch input session (reference to RSBDCSUB). After the creation of the batch input session, I kick it to start and read the execution log. However, sometimes I cannot read anything from the execution log as the execution of the batch input is a synchronized process to the execution of my program, i.e. at the time being that I try to read the log of a particular transaction, that transaction is being processing / haven't start processing.
    How can I check whether a batch input session is completed in the program?
    The code that corresponding to the triggering of batch input session:
    SUBMIT (SUBREPORT)
       USER MTAB-USERID
       VIA JOB MTAB-GROUPID
       NUMBER JNUMB
       WITH QUEUE_ID  EQ MTAB-QID
       WITH MAPPE     EQ MTAB-GROUPID
       WITH MODUS     EQ 'N'
       WITH LOGALL    EQ LMODUS
    Or is there any method to wait here until the process is completed before further processing?

    Hi gundam,
    1. Or is there any method to wait here until the process is completed before further processing?
    There is no such direct method to wait.
    2. Immediately after submitting in background,
       we cannot wait
      neither can we LOOP and go on detecting
      whether the b/g process has completed or not !
    3. To over come such problems,
      we have to use another technique.
    4. we have to submit another
       job which will get triggered
       on event SAP_END_OF_JOB
       ie. when the original job will finish,
      our new job will AUTOMATICALLY get triggered,
    5. This new job / program
       will do the FURTHER actions !
    regards,
    amit m.

  • Creation of batch input session for mass reversal of payment documents

    Hello FI experts,
    There is a business requirement in which the users want to reverse the payments en-masse. This can be achieved by creating a batch input session via a custom program to upload the documents from excel . Then calling FBRA and FB08 to do the resetting and reversal.
    My issue is how to create the batch input session ? Please help.
    Regards,
    Van

    Hi,
    I have got developed such program earlierr.
    You can define your custom program specification as below:-
    (A) Based on the selection screen, the program will read all the records (field document number VBLNR, company code ZBUKR and year from field ZALDT) from table REGUH. (Proposal Run Indicator XVORL should be blank.)
    (B) If Paying company code (REGUH-ZBUKR) is equal to Sending company code (REGUH-ABSBU):-
           Step 1:- For each record of (Payment Document Number (REGUH-VBLNR), Company code (REGUH-ZBUKR), and Fiscal Year (REGUH-ZALDT)) it will call transaction FBRA and will reset the clearing of the document.
           Step 2:- Then call transaction FB08 and pass the data as below:-
                  Document Number     =     Payment Document Number (REGUH-VBLNR)
                  Company Code     =     Company code (REGUH-ZBUKR)
                  Fiscal Year               =     Fiscal Year (REGUH-ZALDT)
                  Reversal Reason, Posting Date and Posting period will be defaulted from the selection screen of out program.
    (C) If Paying company code (REGUH-ZBUKR) is not equal to Sending company code (REGUH-ABSBU):-
           Step 1:- For each record of (Payment Document Number (REGUH-VBLNR), Company code (REGUH-ZBUKR), and Fiscal Year (REGUH-ZALDT)) it will call transaction FBRA and will reset the clearing of the document.
            Step 2:- for each record of (Payment Document Number (REGUH-VBLNR), Company code (REGUH-ZBUKR), and Fiscal Year (REGUH-ZALDT)) get the cross company code document number (BKPF-BVORG) and
                   (ii) Then find out the Document number (BKPF-BELNR) from BKPF matching BUKRS = Sending company code (REGUH-ABSBU) and GJAHR = Fiscal Year (REGUH-ZALDT) and BVORG = cross company code document number (BKPF-BVORG) as obtained above in
                  (iii) Then call transaction FBRA and will reset the clearing of the document passing BKPF-BELNR, BKPF-BUKRS and BKPF-GKAHR as obtained in (ii) above.
           Step 3:- Then call transaction FBU8 and pass the data as below:-
                  Cross CC Doc. Number=     Blank
                  Document Number     =     Payment Document Number (REGUH-VBLNR)
                  Company Code     =     Company code (REGUH-ZBUKR)
                  Fiscal Year               =     Fiscal Year (REGUH-ZALDT)
                  Reversal Reason, Posting Date and Posting period will be defaulted from the selection screen of out program.
    Regards,
    Gaurav

  • How to see the Batch input session name in SM35 with User name.

    Hi
    Yesterday,User has created one Batch input session from FBWE and selected process button after that display errors only tick mark in SM35. Then the system displayed one error message"No Batch input data for screen SAPMF05A 0700".After that he came out from the screen. He dont know what happened.
    Today we have verified in SM35. But there is no batch input session with his name. We have verified in incorrect screens and every thing in SM35.
    We have verified in Table 'T045DTA'. There are some entries are there.
    We dont know the session name also.
    How we can find the session name created by the User.
    We have not deleted any thing.
    Please help me
    Thanks
    Ravi.

    Hi Ravi,
    Yes, you should be able to create a new batch job for FBWE. You can see your own batch sessions from SYSTEM ==> OWN JOBS
    Regards,
    Mike

  • How do I create a data set ready for a batch input session

    Hi:
    I don't know how to create a data set ready for an BATCH-INPUT SESSION.I know that with the function BDC_INSERT make de input online, but my requirement is that generate the data set and left to the user get in de SM35 transaccion and decide to him if it's execute or not. I have all the information in a BDCDATA table.
    Any clue would be great!!

    You just have to do:
    BDC_OPEN_GROUP (Open new batch)
    BUILD BDC DATA (Your own code)
    BDC_INSERT (Insert BDC data you have built in step 2)
    BDC_CLOSE_GROUP (Close batch)
    This will just create a new batch and it can be processed in SM35.
    To build BDC data:
    LOOP AT your_input_table.
    <<here you have to use the code generated from recording in  trasaction SHDB>> (i.e. bdc_dynpro and bdc_field performs)
    ENDLOOP.

  • SM35 - manual processing of the batch input session

    Hello,
    In SM35 I see that some batch input sessions were processed by user XXX-XXXX (user type:System) (in our case INT-3528) in N mode. The question is: how to determine the exact user who has really processed that session? We need to stop that - I guess - automatic processing of the sessions and process them manually.
    Thanks for help,
    Slawek

    Hi,
    also, you can check the logs directly in SM35. So if any documents were posted (or anyting updated in the system) information about what happened should be shown there.
    If there were acounting documents (table BKPF), I think the user name will be the same system user "who" has processed the sessions.
    I think that your basis team has set up the system in a way that batch input sessions are processed automatically. This is simialr when scheduled jobs are running under a pseudo user name (system user, IT user, not a real person behind). You can ask the basis team to switch off this automatic processing competely or only for selected sessions.
    Hope that helps, points welcome
    Csaba

Maybe you are looking for

  • Help, ClawHammer won't do 2Ghz anymore!

    Ok, first it was fast, 2000Mhz. I was happy. I decided to try Cool and Quiet and it worked well, I use WCPUID prog, it has a live update of your Mhz. I can see current Mhz updating in the window. Then I looked at the MSI NEO PLATINUM (what I have BIO

  • Opening desktop app from internet application

    Hello, I have build an desktop application using swing package. It should be called by an internet application(jsp page). I am placing the desktop appliation(jar file) in a client machine. If the application is not in client machine then it should te

  • Exchange Server 2003/2010 Coexistence Mail-flow Issues

    I've installed Exchange 2010 in a 2003 coexistence scenario. 2010 was deployed with CAS,HUB, and Mailbox roles.  The installation went through smoothly, and the default RGC was created. On the 2010 Server, when I create a new users with mailbox, that

  • Apache shows PHP files sources instead of running them.

    I've installed MySQL, Apache and PHP. All the configuration mentioned in Arch WiKi for LAMP seems to be done. But instead of executing PHP scripts Apache shows their sources as plain text. What can cause such a problem?

  • Copy paste color doesn't work?

    Copying and pasting background colors of boxes doesn't appear to work. Any workarounds?