Execution of BDC program without going to SM35

Hi
The BDC program is working fine in development but when run in production it uploads hardly 2-3 records and then gives error and then the session has to be completed thru SM35?
Any clues on this one?
Thanks
Sameer

HI Sameer
There is standard program to run Session without going to SM35 Tcode
Thats is RSBDCSUB.
Reward me if its helpful.
Regards
Ravi

Similar Messages

  • Doubt in HR-ABAP BDC Program

    hi all,
        My BDC program is going to dump while execution. Below I'm pasting the report.
        TYPES : BEGIN OF IT_INPUT,
            PERNR TYPE PERNR_D,
            CHOIC TYPE CHOIC,
            BEGDA TYPE CHAR10,
            ENDDA TYPE CHAR10,
            ANREX TYPE ANREX,
            NACHN TYPE NACHN,
            VORNA TYPE VORNA,
            GBPAS TYPE GBPAS,
            SPRSL TYPE SPRSL,
            END OF IT_INPUT.
    TYPES : BEGIN OF IT_RAW,
            LINE TYPE CHAR120,
            END OF IT_RAW.
    INTERNAL TABLES
    DATA : IT_FINAL TYPE STANDARD TABLE OF IT_INPUT.
    DATA : IT_RAW TYPE STANDARD TABLE OF IT_RAW.
    DATA : IT_ERROR TYPE STANDARD TABLE OF BDCMSGCOLL.
    WORK AREA
    DATA : WA_FINAL TYPE IT_INPUT.
    DATA : WA_RAW TYPE IT_RAW.
    DATA : WA_ERROR TYPE BDCMSGCOLL.
    CONSTANTS : C_TAB TYPE C value '/'.
    INCLUDE : BDCRECXY.
    START-OF-SELECTION.
    SUBROUTINE TO READ DATA FROM FLAT FILE
    PERFORM READ_DATA_FROM_FF.
    SUBROUTINE TO MAP DATA TO SCREEN FIELDS
    PERFORM DATA_MAPPING.
    *&      Form  READ_DATA_FROM_FF
          text
    -->  p1        text
    <--  p2        text
    FORM READ_DATA_FROM_FF .
    CALL FUNCTION 'GUI_UPLOAD'
      EXPORTING
        FILENAME                      = 'E:\RAG\BDC1.txt'
      TABLES
        DATA_TAB                      = IT_RAW
    IF sy-subrc eq 0.
    LOOP AT IT_RAW INTO WA_RAW.
    SPLIT WA_RAW
    AT C_TAB
    INTO WA_FINAL-PERNR
         WA_FINAL-CHOIC
         WA_FINAL-BEGDA
         WA_FINAL-ENDDA
         WA_FINAL-ANREX
         WA_FINAL-NACHN
         WA_FINAL-VORNA
         WA_FINAL-GBPAS
         WA_FINAL-SPRSL.
    APPEND WA_FINAL TO IT_FINAL.
    WRITE : WA_FINAL.
    CLEAR WA_FINAL.
    ENDLOOP.
    ENDIF.
    ENDFORM.                    " READ_DATA_FROM_FF
    *&      Form  DATA_MAPPING
          text
    -->  p1        text
    <--  p2        text
    FORM DATA_MAPPING .
    LOOP AT IT_FINAL INTO WA_FINAL.
    FIRST SCREEN INFORMATION FOR PA30
    perform bdc_dynpro      using 'SAPMP50A' '1000'.
    perform bdc_field       using 'RP50G-PERNR'
                                  WA_FINAL-PERNR.
    *perform bdc_field       using 'BDC_CURSOR'
                                 'T582S-ITEXT(03)'.
    perform bdc_field       using 'RP50G-SELEC(03)'
                                   'X'.
    perform bdc_field       using 'RP50G-TIMR6'
                                   'X'.
    perform bdc_field       using 'RP50G-CHOIC'
                                   '0002'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '=INS'.
    SECOND SCREEN INFORMATION 0002
    perform bdc_dynpro      using 'MP000200' '2001'.
    *perform bdc_field       using 'BDC_CURSOR'
                                 'Q0002-GBPAS'.
    perform bdc_field       using 'BDC_OKCODE'
                                  'UPD'.
    perform bdc_field       using 'P0002-BEGDA'
                                   WA_FINAL-BEGDA.
    perform bdc_field       using 'P0002-ENDDA'
                                  WA_FINAL-ENDDA.
    perform bdc_field       using 'Q0002-ANREX'
                                  WA_FINAL-ANREX.
    perform bdc_field       using 'P0002-NACHN'
                                  WA_FINAL-NACHN.
    perform bdc_field       using 'P0002-VORNA'
                                  WA_FINAL-VORNA.
    perform bdc_field       using 'Q0002-GBPAS'
                                  WA_FINAL-GBPAS.
    perform bdc_field       using 'P0002-SPRSL'
                                  WA_FINAL-SPRSL.
    perform bdc_transaction tables it_error using 'PA30' 'x' 'a' 'a'.
             IF it_ERROR[] IS NOT INITIAL.
                LOOP AT it_ERROR INTO wa_ERROR.
                WRITE : wa_ERROR.
               ENDLOOP.
              REFRESH it_ERROR.
             ENDIF.
    ENDLOOP.
    Error which I was getting is 'UNABLE TO INTERPRET '/ ' AS  A NUMBER'.

    Hi
    Look out for the error in the flat file which you are uploading. I have seen this error and I found it in Flat file. its a conversion error.
    Just copy few lines from the original file, make a new file and upload it. In this way, you will be able to say whether there is an error in file or in code.
    Regards
    Waz

  • Coding block in BDC program Tcode F-63

    Hello Techies,
                        Please help me in removing coding block in execution of BDC program for F-63, it is asking me to put Business Area. 

    Harshal, can you provide more details? It seems like you BDC is missing some mandatory field and you either need to get that from your input file or thru some other logic in your program.
    Vikram.M

  • XK99 lsmw or BDC program to copy vendors doesn´t update db records

    Hello people
    I am facing a requirement to copy a list of existing vendors into about 10 new company codes. Vendors all exist in the "main" company code, so I figured it would be a good idea to use the XK99 transaction as a basis for a mass upload via lsmw or bdc program.
    So
    So I performed a recording and applied my logic in lsmw, ran the batch input folder in SM35, seemingly without errors. But to my srprise I saw that no database records had been created in the LFB1 table.
    So I tried to incorporate the recording into a bdc program that uses call transaction, but the same thing happens. The batch input seems to be running OK, but no changes are actually made to db....
    So I was wondering what could I be doing wrong? I notice one strange thing though. After carrying out the selections in XK99 manually, one needs to mark columns to be transfered and then push the ´Perform mass update´ button and THEN click save. However, when in recording mode, one may click save directly, and no error is given and the recording ends.
    However, the select columns operation, if I try to do it during recording, doesnt seem to get captured....
    Any ideas of what I might be doing wrong here?
    Regards, Jorgen
    T    XK99                                 
    SAPMMSDL    0200    X                                                                                                                                                                                                                                                                               
                                                              BDC_OKCODE    =NEXT
                                                             BDC_SUBSCR    SAPMMSDL                                1000SUBTAB
                                                             BDC_CURSOR    MASSTABS-TABTXT(02)
                                                              MASSTABS-MARK(02)    X
    SAPLMASS_SEL_DIALOG    0100    X                                                                                                                                                                                                                                                                               
                                                              BDC_OKCODE    =NEW
                                                             BDC_SUBSCR    SAPLMASS_SEL_DIALOG                     0200SUB_ALL
                                                             BDC_SUBSCR    SAPLMASSFREESELECTIONS                  1000SUB_SEL
                                                              BDC_CURSOR    MASSFREESEL-LOW(01)
                                                             MASSFREESEL-LOW(01)    300011
    SAPLMASS_SEL_DIALOG    0100    X                                                                                                                                                                                                                                                                               
                                                              BDC_OKCODE    /00
                                                             BDC_SUBSCR    SAPLMASS_SEL_DIALOG                     0400SUB_ALL
                                                             BDC_SUBSCR    SAPLMASSFREESELECTIONS                  1000SUB_SEL
                                                              MASSFREESEL-LOW(01)    300011
                                                             MASSFREESEL-LOW(02)    7010
                                                             BDC_SUBSCR    SAPLMASSFREESELECTIONS                  2000SUB_PARA
                                                              BDC_CURSOR    MASSFREESEL_P-LOW(02)
                                                             MASSFREESEL_P-LOW(01)    300011
                                                             MASSFREESEL_P-LOW(02)    7000
    SAPLMASS_SEL_DIALOG    0100    X                                                                                                                                                                                                                                                                               
                                                              BDC_OKCODE    =CRET
                                                             BDC_SUBSCR    SAPLMASS_SEL_DIALOG                     0400SUB_ALL
                                                             BDC_SUBSCR    SAPLMASSFREESELECTIONS                  1000SUB_SEL
                                                              BDC_CURSOR    MASSFREESEL-LOW(01)
                                                             BDC_SUBSCR    SAPLMASSFREESELECTIONS                  2000SUB_PARA
    SAPLMASSINTERFACE    0200    X                                                                                                                                                                                                                                                                               
                                                              BDC_OKCODE    =SAVE
                                                             BDC_SUBSCR    SAPLMASSINTERFACE                       0202FIELDS
                                                             BDC_SUBSCR    SAPLMASSINTERFACE                       0210SUB_HEAD
                                                              BDC_CURSOR    HEADER_STRUC-FIELD2-VALUE-LEFT(01)
                                                             BDC_SUBSCR    SAPLMASSINTERFACE                       0212SUB_DATA

    Hello,
    first of all Transaction XK99 is more helpful in case of vendor change, not really creation.
    It was also intended to cover mass maintenance so it is used instead of LSMW or any other BDC custom program.
    I would say that you can go either with LSMW or CALL TRANSACTION custom program, but you should base your recording on XK/FK01 transactions.
    Regards,
    Grzegorz

  • Bdc program with out coding

    Hi All,
    I want to know how to write a bdc program with out coding...
    Thank you,
    Gopi....

    Hai.
    check this.
    BATCH DATA COMMUNICATION
    About Data Transfer In R/3 System
    When a company decides to implement the SAP R/3 to manage business-critical data, it usually does not start from a no-data situation. Normally, a SAP R/3 project comes into replace or complement existing application.
    In the process of replacing current applications and transferring application data, two situations might occur:
    • The first is when application data to be replaced is transferred at once, and only once.
    • The second situation is to transfer data periodically from external systems to SAP and vice versa.
    • There is a period of time when information has to be transferred from existing application, to SAP R/3, and often this process will be repetitive.
    The SAP system offers two primary methods for transferring data into SAP systems. From non-SAP systems or legacy system. These two methods are collectively called “batch input” or “batch data communication”.
    1. SESSION METHOD
    2. CALL TRANSACTION
    3. DIRECT INPUT
    Advantages offered by BATCH INPUT method:
    1. Can process large data volumes in batch.
    2. Can be planned and submitted in the background.
    3. No manual interaction is required when data is transferred.
    4. Data integrity is maintained as whatever data is transferred to the table is through transaction. Hence batch input data is submitted to all the checks and validations.
    To implement one of the supported data transfers, you must often write the program that exports the data from your non-SAP system. This program, known as a “data transfer” program must map the data from the external system into the data structure required by the SAP batch input program.
    The batch input program must build all of the input to execute the SAP transaction.
    Two main steps are required:
    • To build an internal table containing every screen and every field to be filled in during the execution of an SAP transaction.
    • To pass the table to SAP for processing.
    Prerequisite for Data Transfer Program
    Writing a Data Transfer Program involves following prerequisites:
    Analyzing data from local file
    Analyzing transaction
    Analyzing transaction involves following steps:
    • The transaction code, if you do not already know it.
    • Which fields require input i.e., mandatory.
    • Which fields can you allow to default to standard values.
    • The names, types, and lengths of the fields that are used by a transaction.
    • Screen number and Name of module pool program behind a particular transaction.
    To analyze a transaction::
    • Start the transaction by menu or by entering the transaction code in the command box.
    (You can determine the transaction name by choosing System – Status.)
    • Step through the transaction, entering the data will be required for processing your batch input data.
    • On each screen, note the program name and screen (dynpro) number.
    (dynpro = dyn + pro. Dyn = screen, pro = number)
    • Display these by choosing System – Status. The relevant fields are Program (dynpro) and Dynpro number. If pop-up windows occur during execution, you can get the program name and screen number by pressing F1 on any field or button on the screen.
    The technical info pop-up shows not only the field information but also the program and screen.
    • For each field, check box, and radio button on each screen, press F1 (help) and then choose Technical Info.
    Note the following information:
    - The field name for batch input, which you’ll find in its own box.
    - The length and data type of the field. You can display this information by double clicking on the Data Element field.
    • Find out the identification code for each function (button or menu) that you must execute to process the batch-input data (or to go to new screen).
    Place the cursor on the button or menu entry while holding down the left mouse button. Then press F1.
    In the pop-up window that follows, choose Technical info and note the code that is shown in the Function field.
    You can also run any function that is assigned to a function key by way of the function key number. To display the list of available function keys, click on the right mouse button. Note the key number that is assigned to the functions you want to run.
    Once you have program name, screen number, field name (screen field name), you can start writing.
    DATA TRANSFER program.
    Declaring internal table
    First Integral Table similar to structure like local file.
    Declaring internal table like BDCDATA
    The data from internal table is not transferred directly to database table, it has to go through transaction. You need to pass data to particular screen and to particular screen-field. Data is passed to transaction in particular format, hence there is a need for batch input structure.
    The batch input structure stores the data that is to be entered into SAP system and the actions that are necessary to process the data. The batch input structure is used by all of the batch input methods. You can use the same structure for all types of batch input, regardless of whether you are creating a session in the batch input queue or using CALL TRANSACTION.
    This structure is BDCDATA, which can contain the batch input data for only a single run of a transaction. The typical processing loop in a program is as follows:
    • Create a BDCDATA structure
    • Write the structure out to a session or process it with CALL TRANSACTION USING; and then
    • Create a BDCDATA structure for the next transaction that is to be processed.
    Within a BDCDATA structure, organize the data of screens in a transaction. Each screen that is processed in the course of a transaction must be identified with a BDCDATA record. This record uses the Program, Dynpro, and Dynbegin fields of the structure.
    The screen identifier record is followed by a separate BDCDATA record for each value, to be entered into a field. These records use the FNAM and FVAL fields of the BDCDATA structure. Values to be entered in a field can be any of the following:
    • Data that is entered into screen fields.
    • Function codes that are entered into the command field. Such function codes execute functions in a transaction, such as Save or Enter.
    The BDCDATA structure contains the following fields:
    • PROGRAM: Name of module pool program associated with the screen. Set this field only for the first record for the screen.
    • DYNPRO: Screen Number. Set this field only in the first record for the screen.
    • DYNBEGIN: Indicates the first record for the screen. Set this field to X, only for the first record for the screen. (Reset to ‘ ‘ (blank) for all other records.)
    • FNAM: Field Name. The FNAM field is not case-sensitive.
    • FVAL: Value for the field named in FNAM. The FVAL field is case-sensitive. Values assigned to this field are always padded on the right, if they are less than 132 characters. Values must be in character format.
    Transferring data from local file to internal table
    Data is uploaded to internal table by UPLOAD of WS_UPLOAD function.
    Population of BDCDATA
    For each record of internal table, you need to populate Internal table, which is similar to BDCDATA structure.
    All these five initial steps are necessary for any type of BDC interface.
    DATA TRANSFER program can call SESSION METHOD or CALL TRANSACTION. The initial steps for both the methods are same.
    First step for both the methods is to upload the data to internal table. From Internal Table, the data is transferred to database table by two ways i.e., Session method and Call transaction.
    SESSION METHOD
    About Session method
    In this method you transfer data from internal table to database table through sessions.
    In this method, an ABAP/4 program reads the external data that is to be entered in the SAP System and stores the data in session. A session stores the actions that are required to enter your data using normal SAP transaction i.e., Data is transferred to session which in turn transfers data to database table.
    Session is intermediate step between internal table and database table. Data along with its action is stored in session i.e., data for screen fields, to which screen it is passed, the program name behind it, and how the next screen is processed.
    When the program has finished generating the session, you can run the session to execute the SAP transactions in it. You can either explicitly start and monitor a session or have the session run in the background processing system.
    Unless session is processed, the data is not transferred to database table.
    BDC_OPEN_GROUP
    You create the session through program by BDC_OPEN_GROUP function.
    Parameters to this function are:
    • User Name: User name
    • Group: Name of the session
    • Lock Date: The date on which you want to process the session.
    • Keep: This parameter is passed as ‘X’ when you want to retain session after
    processing it or ‘ ‘ to delete it after processing.
    BDC_INSERT
    This function creates the session & data is transferred to Session.
    Parameters to this function are:
    • Tcode: Transaction Name
    • Dynprotab: BDC Data
    BDC_CLOSE_GROUP
    This function closes the BDC Group. No Parameters.
    Some additional information for session processing
    When the session is generated using the KEEP option within the BDC_OPEN_GROUP, the system always keeps the sessions in the queue, whether it has been processed successfully or not.
    However, if the session is processed, you have to delete it manually. When session processing is completed successfully while KEEP option was not set, it will be removed automatically from the session queue. Log is not removed for that session.
    If the batch-input session is terminated with errors, then it appears in the list of INCORRECT session and it can be processed again. To correct incorrect session, you can analyze the session. The Analysis function allows to determine which screen and value has produced the error. If you find small errors in data, you can correct them interactively, otherwise you need to modify batch input program, which has generated the session or many times even the data file.
    CALL TRANSACTION
    About CALL TRANSACTION
    A technique similar to SESSION method, while batch input is a two-step procedure, Call Transaction does both steps online, one after the other. In this method, you call a transaction from your program by
    Call transaction <tcode> using <BDCTAB>
    Mode <A/N/E>
    Update <S/A>
    Messages into <MSGTAB>.
    Parameter – 1 is transaction code.
    Parameter – 2 is name of BDCTAB table.
    Parameter – 3 here you are specifying mode in which you execute transaction
    A is all screen mode. All the screen of transaction are displayed.
    N is no screen mode. No screen is displayed when you execute the transaction.
    E is error screen. Only those screens are displayed wherein you have error record.
    Parameter – 4 here you are specifying update type by which database table is updated.
    S is for Synchronous update in which if you change data of one table then all the related Tables gets updated. And sy-subrc is returned i.e., sy-subrc is returned for once and all.
    A is for Asynchronous update. When you change data of one table, the sy-subrc is returned. And then updating of other affected tables takes place. So if system fails to update other tables, still sy-subrc returned is 0 (i.e., when first table gets updated).
    Parameter – 5 when you update database table, operation is either successful or unsuccessful or operation is successful with some warning. These messages are stored in internal table, which you specify along with MESSAGE statement. This internal table should be declared like BDCMSGCOLL, a structure available in ABAP/4. It contains the following fields:
    1. Tcode: Transaction code
    2. Dyname: Batch point module name
    3. Dynumb: Batch input Dyn number
    4. Msgtyp: Batch input message type (A/E/W/I/S)
    5. Msgspra: Batch input Lang, id of message
    6. Msgid: Message id
    7. MsgvN: Message variables (N = 1 - 4)
    For each entry, which is updated in database, table message is available in BDCMSGCOLL. As BDCMSGCOLL is structure, you need to declare a internal table which can contain multiple records (unlike structure).
    Steps for CALL TRANSACTION method
    1. Internal table for the data (structure similar to your local file)
    2. BDCTAB like BDCDATA
    3. UPLOAD or WS_UPLOAD function to upload the data from local file to itab. (Considering file is local file)
    4. Loop at itab.
    Populate BDCTAB table.
    Call transaction <tcode> using <BDCTAB>
    Mode <A/N/E>
    Update <S/A>.
    Refresh BDCTAB.
    Endloop.
    (To populate BDCTAB, You need to transfer each and every field)
    The major differences between Session method and Call transaction are as follows:
    SESSION METHOD CALL TRANSACTION
    1. Data is not updated in database table unless Session is processed. Immediate updation in database table.
    2. No sy-subrc is returned. Sy-subrc is returned.
    3. Error log is created for error records. Errors need to be handled explicitly
    4. Updation in database table is always synchronous Updation in database table can be synchronous Or Asynchronous.
    Error Handling in CALL TRANSACTION
    When Session Method updates the records in database table, error records are stored in the log file. In Call transaction there is no such log file available and error record is lost unless handled. Usually you need to give report of all the error records i.e., records which are not inserted or updated in the database table. This can be done by the following method:
    Steps for the error handling in CALL TRANSACTION
    1. Internal table for the data (structure similar to your local file)
    2. BDCTAB like BDCDATA
    3. Internal table BDCMSG like BDCMSGCOLL
    4. Internal table similar to Ist internal table
    (Third and fourth steps are for error handling)
    5. UPLOAD or WS_UPLOAD function to upload the data from the local file to itab. (Considering file is local file)
    6. Loop at itab.
    Populate BDCTAB table.
    Call transaction <tr.code> using <Bdctab>
    Mode <A/N/E>
    Update <S/A>
    Messages <BDCMSG>.
    Perform check.
    Refresh BDCTAB.
    Endloop.
    7 Form check.
    IF sy-subrc <> 0. (Call transaction returns the sy-subrc if updating is not successful).
    Call function Format_message.
    (This function is called to store the message given by system and to display it along with record)
    Append itab2.
    Display the record and message.
    DIRECT INPUT
    About Direct Input
    In contrast to batch input, this technique does not create sessions, but stores the data directly. It does not simulate the online transaction. To enter the data into the corresponding database tables directly, the system calls a number of function modules that execute any necessary checks. In case of errors, the direct input technique provides a restart mechanism. However, to be able to activate the restart mechanism, direct input programs must be executed in the background only. Direct input checks the data thoroughly and then updates the database directly.
    You can start a Direct Input program in two ways;
    Start the program directly
    This is the quickest way to see if the program works with your flat file. This option is possible with all direct input programs. If the program ends abnormally, you will not have any logs telling you what has or has not been posted. To minimize the chance of this happening, always use the check file option for the first run with your flat file. This allows you to detect format errors before transfer.
    Starting the program via the DI administration transaction
    This transaction restarts the processing, if the data transfer program aborts. Since DI document are immediately posted into the SAP D/B, the restart option prevents the duplicate document posting that occurs during a program restart (i.e., without adjusting your flat file).
    Direct input is usually done for standard data like material master, FI accounting document, SD sales order and Classification for which SAP has provided standard programs.
    First time you work with the Direct Input administration program, you will need to do some preparation before you can transfer data:
    - Create variant
    - Define job
    - Start job
    - Restart job
    Common batch input errors
    - The batch input BDCDATA structure tries to assign values to fields which do not exist in the current transaction screen.
    - The screen in the BDCDATA structure does not match the right sequence, or an intermediate screen is missing.
    - On exceptional occasions, the logic flow of batch input session does not exactly match that of manual online processing. Testing the sessions online can discover by this.
    - The BDCDATA structure contains fields, which are longer than the actual definition.
    - Authorization problems.
    RECORDING A BATCH INPUT
    A B recording allows you to record a R/3 transaction and generate a program that contains all screens and field information in the required BDC-DATA format.
    You can either use SHDB transaction for recording or
    SYSTEM ? SERVICES ? BATCH INPUT ? EDIT
    And from here click recording.
    Enter name for the recording.
    (Dates are optional)
    Click recording.
    Enter transaction code.
    Enter.
    Click Save button.
    You finally come to a screen where, you have all the information for each screen including BDC_OKCODE.
    • Click Get Transaction.
    • Return to BI.
    • Click overview.
    • Position the cursor on the just recorded entry and click generate program.
    • Enter program name.
    • Click enter
    The program is generated for the particular transaction.
    BACKGROUND PROCESSING
    Need for Background processing
    When a large volume of data is involved, usually all batch inputs are done in background.
    The R/3 system includes functions that allow users to work non-interactively or offline. The background processing systems handle these functions.
    Non-interactively means that instead of executing the ABAP/4 programs and waiting for an answer, user can submit those programs for execution at a more convenient planned time.
    There are several reasons to submit programs for background execution.
    • The maximum time allowed for online execution should not exceed 300 seconds. User gets TIMEOUT error and an aborted transaction, if time for execution exceeds 300 seconds. To avoid these types of error, you can submit jobs for background processing.
    • You can use the system while your program is executing.
    This does not mean that interactive or online work is not useful. Both type of processing have their own purposes. Online work is the most common one entering business data, displaying information, printing small reports, managing the system and so on. Background jobs are mainly used for the following tasks; to process large amount of data, to execute periodic jobs without human intervention, to run program at a more convenient, planned time other than during normal working hours i.e., Nights or weekends.
    The transaction for background processing is SM36.
    Or
    Tools ? Administration ? Jobs ? Define jobs
    Or
    System ? services ? Jobs
    Components of the background jobs
    A job in Background processing is a series of steps that can be scheduled and step is a program for background processing.
    • Job name. Define the name of assigned to the job. It identifies the job. You can specify up to 32 characters for the name.
    • Job class. Indicates the type of background processing priority assigned to the job.
    The job class determines the priority of a job. The background system admits three types of job classes: A B & C, which correspond to job priority.
    • Job steps. Parameters to be passed for this screen are as follows:
    Program name.
    Variant if it is report program
    Start criteria for the job: Option available for this are as follows:
    Immediate - allows you to start a job immediately.
    Date/Time - allows you to start a job at a specific name.
    After job - you can start a job after a particular job.
    After event - allows you to start a job after a particular event.
    At operation mode - allows you to start a job when the system switches to a particular operation mode.
    Defining Background jobs
    It is two step process: Firstly, you define the job and then release it.
    When users define a job and save it, they are actually scheduling the report i.e., specifying the job components, the steps, the start time.
    When users schedule program for background processing, they are instructing the system to execute an ABAP/4 report or an external program in the background. Scheduled jobs are not executed until they are released. When jobs are released, they are sent for execution to the background processing system at the specified start time. Both scheduling and releasing of jobs require authorizations.
    HANDLING OF POP UP SCREEN IN BDC
    Many times in transaction pop up screen appears and for this screen you don’t pass any record but some indication to system telling it to proceed further. For example: The following screen
    To handle such screen, system has provided a variable called BDC_CURSOR. You pass this variable to BDCDATA and process the screen.
    Usually such screen appears in many transactions, in this case you are just passing information, that YES you want to save the information, that means YES should be clicked. So you are transferring this information to BDCDATA i.e., field name of YES which is usually SPOT_OPTION. Instead of BDC_OKCODE, you are passing BDC_CURSOR.
    BDC_CURSOR is also used to place cursor on particular field.
    AN EXAMPLE WITH SESSION METHOD
    Following program demonstrates how data is passed from flat file to SAP transaction and further to database table by using SESSION method.
    The transaction is TFBA (to change customer).
    A simple transaction where you are entering customer number on first screen and on next screen data is displayed for the particular customer number. Field, which we are changing here, are name and city. When you click on save, the changed record gets saved.
    Prerequisite to write this BDC interface as indicated earlier is:
    1. To find screen number
    2. To find screen field names, type of the field and length of the field.
    3. To find BDC_OKCODE for each screen
    4. Create flat file.
    Flat file can be created in your hard disk as follows:
    1 Vinod   Hyderabad
    2 Kavitha Secunderabad
    3 Kishore Hyderabad
    (Where 1st character field is Customer number, 2nd field is Customer name and 3rd field is City.)
    To transfer this data to database table SCUSTOM following interface can be used.
    REPORT DEMO1.
    Following internal table is to upload flat file.
    DATA: BEGIN OF ITAB OCCURS 0,
    ID(10),
    NAME(25),
    CITY(25),
    END OF ITAB.
    *Following internal table BDCDATA is to pass date from internal table to session.
    DATA: BDCTAB LIKE BDCDATA OCCURS 0 WITH HEADER LINE.
    Variables
    DATA: DATE1 LIKE SY-DATUM. DATE1 = SY-DATUM - 1. “ This is for Hold Date
    To upload flat file to internal table.
    CALL FUNCTION UPLOAD
    EXPORTING
    FILE NAME = ‘C:\FF.TXT’
    FILE TYPE = ‘ASC”
    TABLES
    DATA_TAB = ITAB
    EXCEPTIONS
    CONVERSION_ERROR = 1
    INVALID_TABLE_WIDTH = 2
    INVALID_TYPE = 3
    NO_BATCH = 4
    UNKNOWN_ERROR = 5
    OTHERS = 6.
    If sy-subrc = 0.
    Calling Function to Create a Session
    CALL FUNCTION ‘BDC_OPEN_GROUP’
    EXPORTING
    CLIENT = SY-MANDT
    GROUP = ‘POTHURI’
    HOLDDATE = DATE1
    KEEP = ‘X’
    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.
    If sy-subrc = 0.
    *-- MAIN Logic--
    LOOP AT ITAB
    PERFORM GENERATE_DATA. “ Populating BDCDATA Table
    CALL FUNCTION ‘BDC_INSERT’
    EXPORTING
    TCODE = ‘TFBA’
    TABLES
    DYNPROTAB = BDCTAB
    EXCEPTIONS
    INTERNAL_ERROR = 1
    NOT_OPEN = 2
    QUEUE_ERROR = 3
    TCODE_INVALID = 4
    PRINTING_INVALID = 5
    POSTING_INVALID = 6
    OTHERS = 7.
    REFRESH BDCTAB
    ENDLOOP.
    Calling function to close the session
    CALL FUNCTION ‘BDC_CLOSE_GROUP’
    EXCEPTIONS
    NOT_OPEN = 1
    QUEUE_ERROR = 2
    OTHERS = 3.
    Endif.
    Endif.
    *& Form GENERATE_DATA
    Create BDC Data
    FORM GENERATE_DATA
    Passing information for 1st screen on BDCDATA
    BDCTAB-PROGRAM = ‘SAPMTFBA’.
    BDCTAX-DYNPRO = 100.
    BDCTAP-DYNBEGIN = ‘X’.
    APPEND BCDTAB.CLEAR BDCTAB.
    Passing field information to BDCDATA
    BDCTAB-FNAM = ‘SCUSTOM-ID’
    BDCTAB-FVAL = ITAB-ID.
    APPEND BDCTAB.CLEAR BDCTAB.
    Passing BDC_OKCODE to BDCDATA
    BDCTAB-FNAM = ‘BDC_OKCODE’.
    BDCTAB-FVAL = ‘/5’.
    APPEND BDCTAB.CLEAR BDCTAB.
    Passing screen information for next screen to BDCDATA
    BDCTAB-PROGRAM = ‘SAPMTFBA’.
    BDCTAB-DYNPRO = 200.
    BDCTAB-DYNBEGIN = ‘X’.
    APPEND BDCTAB.CLEAR BDCTAB.
    Passing screen information to BDCDATA
    BDCTAB-FNAM = ‘SCUSTOM-NAME’.
    BDCTAB-FVAL = ITAB-NAME.
    APPEND BDCTAB.CLEAR BDCTAB.
    Passing screen information to BDCDATA
    BDCTAB-FNAM = ‘SCUSTOM-CITY’.
    BDCTAB-FVAL = ITAB-CITY.
    APPEND BDCTAB.CLEAR BDCTAB.
    Passing BDC_OKCODE to BDCDATA
    BDCTAB-FNAM = ‘BDC_OKCODE’.
    BDCTAB-FVAL = ‘SAVE’.
    APPEND BDCTAB.CLEAR BDCTAB.
    ENDFORM. “GENERATE_DATA
    AN EXAMPLE WITH CALL TRANSACTION
    Same steps to be repeated for CALL TRANSACTION
    The only difference between the two types of interface is in Session method, you create session and store information about screen and data into session. When session is processed the data is transferred to database. While in CALL TRANSACTION, data is transferred directly to database table.
    REPORT DEMO1.
    Follow above Code till MAIN Logic. Even the Subroutine should be copied
    LOOP AT ITAB
    PERFORM GENERATE_DATA, “Populating BDCDATA Table
    Call transaction ‘TFBA’ using BCDDATA Mode ‘A’ Update ‘S’.
    REFRESH BDCTAB
    ENDLOOP.
    regards.
    sowjanya.b.

  • Firefox can't open normally without going through the "this is embarrassing" routine; nor does it close down properly; it also sticks frequently, i.e. screen freezes for a minute or more; should I uninstall and re-install to try and debug?

    Firefox can't open normally without going through the "this is embarrassing" routine; nor does it close down properly; I get the "end program" message and have to say "end now"it also sticks frequently, i.e. screen freezes for a minute or more; should I uninstall and re-install to try and debug?
    - I've used Firefox exclusively for around 2 years.
    - My outlook express has no problems
    - other programs seem unaffected; it seems peculiar to Firefox.
    - my main use is surfing the net, primarily entering competitions on line via specialist competition sites.
    - every day at some stage(s) I have to switch computer off as Firefox has got very slow/sticky/freezes.
    I'm not techy by any means, but I can only thing of un- and re-installing to hopefully start with a clean slate.

    Sounds like something is keeping Firefox from closing properly. See this: <br />
    https://support.mozilla.com/en-US/kb/Firefox+hangs#Hang_at_exit

  • Running BDC program in background for the transaction VL02N

    Hi All,
    I have coded a BDC program (call transaction method) for the transaction code VL02N. I can able to run the program manually & successfully. But if I execute the program in background(SM36), it is going to dump giving CNTL_ERROR.
    Note: I am not using any of the GUI_UPLOAD, GUI_DOWNLOAD funciton modules in the program. But I am using the FTP command funtion modules like( FTP_COMMAND, FTP_CONNECT, FTP_DISCONNECT and FTP_SERVER_TO_R/3).
    <removed_by_moderator>
    Thanks in advance.
    Ramesh.
    Edited by: Julius Bussche on Jul 8, 2008 5:55 PM

    VL02N is an enjoy transaction. You cant run it in background. Please try VL02.
    Thanks
    Romit

  • Please  Help me How write the BDC program for the MIGO inbound Delivery

    Please help me how to write bdc program for the MIGO Inbound Delivery in 4.7EE Version. Please help me.
    Not in LSMW.  Required call transaction or Session Method. Please help me.
    Mohan

    Run transaction BAPI . Select Logistics Execution/Shipping/InboundDelivery/SaveReplica.. You can use function module BAPI_INB_DELIVERY_SAVEREPLICA in your ABAP program.

  • Error in BDC program for Block vendor in SAP R/3

    Hello friends,
    I wrote a BDC program to block vendor using FK02.
    When I debug the program in <b>No screen</b> mode
    the program gives a error 'No batch input data for screen SAPMSSY3 0131.
    But the screen name and screen number is not available in the program.
    When I execute without debugging  in No screen mode, the program works correctly.
    When I run in ALL screen mode, the program works correctly and the program does not prompt for SAPMSSY3 0131 screen.
    Is there any solution for this problem.

    check this
    ... MODE mode
    Effect
    The processing mode can take the following values:
    'A' Display screen
    'E' Display only if an error occurs
    'N' Do not display
    <b>'P' Do not display; debugging possible</b>
    If the MODE addition is omitted, then the processing mode is 'A'.
    If a screen is displayed in processing mode 'E' because the system reached the end of the BDC data, the system automatically switches to processing mode 'A'.
    If breakpoints are set in a transaction tcod called using the CALL TRANSACTION tcod USING itab variant, these are not actually reached in 'N' mode. The system tries to insert data in the Debugger screen; the call ends with SY-SUBRC = 1001 and the message "Batch input data is not available for screen SAPMSSY3 0131" (S 00 344).
    Conversely, in 'P' mode, transaction screens are processed in the background (as in 'N' mode) and debugging is possible.
    Regards
    Prabhu

  • Problem in BDC program when executed using scheduled job

    I have developed a BDC program for J1I5 T-code whcih updates RG1 Register. This is working as expected when run in foreground as well as in background. But it is not giving expected results when scheduled in Job. It is not giving any error message, job is executed without error.
    What can be the problem? pls. help.
    Thanks!
    Prakash

    Hi,
    Thanks for reply.
    I have checked log using SM37, it is not showing any error.
    Log details are as follows...
    Date       Time     Message text                                                                             Message class Message no. Messag
    08.05.2010 11:47:10 Job started                                                                                00           516          S
    08.05.2010 11:47:10 Step 001 started (program ZSDB_J1I5_REG_UPDATE_BDC, variant 1101_1_RMA, user ID STK)      00           550          S
    08.05.2010 11:47:20 Job finished                                                                                00           517          S

  • Error in bdc programing code-pls help

    hi friends,
                I was tring to do a bdc program.But it shows me an error. MY bdc program is jus to upload a 2 fields in vendoe master table.
    That is LIFNR,NAME1 field for the new vendors.
    I worked out an execl sheet for this, and jus copied it to the text file by selecting all and  pasting.
    Even then i get an error code that BDC_open does not exits.
    MY code is this, please help me if iam wrong.
    If anyone can help to make it more understandable,I Kindly  request you to try out this program with the screen shot and mail to this id [email protected] would be very thankful for your timely help.
    report Z_PK_BDC
           no standard page heading line-size 255.
    include bdcrecx1.
    parameters: dataset(132) lower case.
    parameters: p_file like rlgrap-filename default
                    'C:\SAP TESTING\p_file.txt'.
       DO NOT CHANGE - the generated data section - DO NOT CHANGE    ***
      If it is nessesary to change the data section use the rules:
      1.) Each definition of a field exists of two lines
      2.) The first line shows exactly the comment
          '* data element: ' followed with the data element
          which describes the field.
          If you don't have a data element use the
          comment without a data element name
      3.) The second line shows the fieldname of the
          structure, the fieldname must consist of
          a fieldname and optional the character '_' and
          three numbers and the field length in brackets
      4.) Each field must be type C.
    Generated data section with specific formatting - DO NOT CHANGE  ***
    data: begin of record OCCURS 0,
    data element: LIF16
            LIFNR_001(016),
    data element: BUKRS
            BUKRS_002(004),
    data element: KTOKK
            KTOKK_003(004),
    data element: ANRED
            ANRED_004(015),
    data element: NAME1_GP
            NAME1_005(035),
    data element: SORTL
            SORTL_006(010),
    data element: NAME2_GP
            NAME2_007(035),
    data element: STRAS_GP
            STRAS_008(035),
    data element: ORT01_GP
            ORT01_009(035),
    data element: ORT02_GP
            ORT02_010(035),
    data element: PFORT_GP
            PFORT_011(035),
    data element: LAND1_GP
            LAND1_012(003),
    data element: SPRAS
            SPRAS_013(002),
          end of record.
    End generated data section ***
    start-of-selection.
      CALL FUNCTION 'WS_UPLOAD'
           EXPORTING
                FILENAME                = P_FILE
                FILETYPE                = 'DAT'
           TABLES
                DATA_TAB                = record
           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.
        WRITE:/ 'SY-SUBRC:', SY-SUBRC.
      ENDIF.
    LOOP AT RECORD.
    *perform open_dataset using dataset.
    *perform open_group.
    *do.
    *read dataset dataset into record.
    *if sy-subrc <> 0. exit. endif.
    perform bdc_dynpro      using 'SAPMF02K' '0105'.
    perform bdc_field       using 'BDC_CURSOR'
                                  'RF02K-KTOKK'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '/00'.
    perform bdc_field       using 'RF02K-LIFNR'
                                  record-LIFNR_001.
    perform bdc_field       using 'RF02K-BUKRS'
                                  record-BUKRS_002.
    perform bdc_field       using 'RF02K-KTOKK'
                                  record-KTOKK_003.
    perform bdc_dynpro      using 'SAPMF02K' '0110'.
    perform bdc_field       using 'BDC_CURSOR'
                                  'LFA1-SPRAS'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '=UPDA'.
    perform bdc_field       using 'LFA1-ANRED'
                                  record-ANRED_004.
    perform bdc_field       using 'LFA1-NAME1'
                                  record-NAME1_005.
    perform bdc_field       using 'LFA1-SORTL'
                                  record-SORTL_006.
    perform bdc_field       using 'LFA1-NAME2'
                                  record-NAME2_007.
    perform bdc_field       using 'LFA1-STRAS'
                                  record-STRAS_008.
    perform bdc_field       using 'LFA1-ORT01'
                                  record-ORT01_009.
    perform bdc_field       using 'LFA1-ORT02'
                                  record-ORT02_010.
    perform bdc_field       using 'LFA1-PFORT'
                                  record-PFORT_011.
    perform bdc_field       using 'LFA1-LAND1'
                                  record-LAND1_012.
    perform bdc_field       using 'LFA1-SPRAS'
                                  record-SPRAS_013.
    perform bdc_transaction using 'FK01'.
    **enddo.
    **perform close_group.
    endloop.
    **perform close_dataset using dataset.
    Thanks in Advance
    Rinky123

    Hi,
    If you are using GUI_UPLOAD in 4.7 then the file path whatever you are using currently it won't work. Replace the file path like this.
    P_FILE LIKE RLGRAP-FILENAME.
    DATA: V_FILE TYPE STRING.
    V_FILE = P_FILE.
    Now take this v_file for function module.Then only it will open the file otherwise you won't get unable to open file error message.
    I observerd that you are getting so many fields from the file to the internal table.

  • Using axbridge.dll without going through the JRE installation process

    I've searched the web and this forum for this specific problem, and have found related items, but nothing that quite answers the question.
    I have an application that uses the JRE's axbridge.dll to access a DLL created from a Java bean. I used the packager to create a DLL named MyBean.dll.
    When I go through the full JRE install, everything works great. That is to say, when I execute Sun's JRE installation program and go through the normal install process, I can access the bean through MyBean.dll without any problems.
    I am accessing MyBean.dll from a Visual Basic 6.0 application. Converting to VB .Net is NOT an option at this time. The VB app uses MyBean.dll for a critical part of the application.
    It is my understanding that it is not strictly necessary to go through the full JRE installation process. Simply deploying the JRE by copying its directory (and all subdirectories) to your application's directory structure should be sufficient. This would be HIGHLY desirable for my application. In fact, if I can't do this, it may be a show-stopper.
    When I install my application in this way (i.e, by simply copying the JRE instead of "installing" it) it doesn't work at all. I immediately get an error saying that the executable "has encountered a problem and needs to close. We are sorry for the inconvenience" and a dialog is displayed offering to send the problem information to Microsoft.
    The details indicate clearly that the problem occurs in the axbridge.dll, version 1.4.2.60.
    1. Any ideas on how to get the axbridge.dll to work without going through the full JRE install?
    2. Are there any alternatives to using the axbridge.dll to get my VB app to be able to use the Java? Remember, it is VB that must call the Java, NOT the other way around.
    3. Is JNI an alternative? If so, can I use JNI to get VB to use Java, or do I have to write the DLL's in C++?
    Any help you can give would be VERY MUCH appreciated.

    I'm also on a JRE installation problem with the bridge.
    Here is a regmon extract on excel using a dll that uses a java-packaged dll from the bridge:
    5229 5.69504923 EXCEL.EXE:2364 QueryValue HKCR\CLSID\{9DD49FCD-BB61-414E-88C8-E6F5B35AEDCB}\InprocServer32\(Default) SUCCESS "C:\win32app\Specific\jre1.5.0_05\bin\axbridge.dll" << The axbridge dll in a specific location
    5271 5.70646800 EXCEL.EXE:2364 QueryValue HKLM\SOFTWARE\JavaSoft\Java Plug-in\1.5.0_05\JavaHome SUCCESS "C:\Program Files\Java\jre1.5.0_05" << an installed JRE 1.5.0
    This is confirmed with process explorer : excel is using "C:\Program Files\Java\jre1.5.0_05\lib\rt.jar" and not "C:\win32app\Specific\jre1.5.0_05\lib\rt.jar"
    In other word, the axbridge check for its installation location in the registry to know where to start.
    Even if all your components have been updated in the registry as suggested here : http://forum.java.sun.com/thread.jspa?forumID=40&threadID=559704
    JRE Bug or feature?
    Anyway the registry is evil.

  • 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

  • Issue Related to BDC Program against Recording

    Hi,
    I have a issue related to <b>BDC Programming</b>.
    Here My Transaction is related to <b>VX22</b>.
    First I did <b>Recording[SHDB]</b> for This Transaction<b>[VX22].</b>
    Then I had added same code from <b>Recording[SHDB]</b> in my Program.
    The Transaction which was going through <b>SHDB</b> Correctly, Not Working from My Program.
    Can any body tell me the Reason for this.
    I am adding <b>SHDB[Recording]</b> as well as Programming Code out here for checking.
    If anybody knows the diffrence please reply me.
    <b>SHDB - RECORDING</b>
    <b>    PERFORM bdc_dynpro      USING 'SAPMV52G' '0100'.
        PERFORM bdc_field       USING 'BDC_CURSOR'
                                      'RV52G-SELKZ'.
        PERFORM bdc_field       USING 'BDC_OKCODE'
                                      '/00'.
        PERFORM bdc_field       USING 'VBAK-VBELN'
                                      record-vbeln_001.
        PERFORM bdc_field       USING 'RV52G-SELKZ'
                                      record-selkz_002. " space
        PERFORM bdc_dynpro      USING 'SAPLV52E' '0500'.
        PERFORM bdc_field       USING 'BDC_CURSOR'
                                      'RV52G-SELKZ(02)'.
        PERFORM bdc_field       USING 'BDC_OKCODE'
                                      '=DETA'.
        PERFORM bdc_field       USING 'RV52G-SELKZ(02)'
                                      record-selkz_02_003.
        PERFORM bdc_dynpro      USING 'SAPLV52E' '0520'.
        PERFORM bdc_field       USING 'BDC_CURSOR'
                                      'VBEX-MODCO'.
        PERFORM bdc_field       USING 'BDC_OKCODE'
                                      '/00'.
        PERFORM bdc_field       USING 'VBEX-ALNUM'
                                      record-alnum_004. "Space
        PERFORM bdc_field       USING 'VBEX-EMBGR'
                                      record-embgr_005. "Space
        PERFORM bdc_field       USING 'VBEX-GENNR'
                                      record-gennr_006. "Space
        PERFORM bdc_field       USING 'VBEX-MODCO'
                                      record-modco_007. "Space
        PERFORM bdc_dynpro      USING 'SAPLV52E' '0520'.
        PERFORM bdc_field       USING 'BDC_CURSOR'
                                      'VBEX-MODCO'.
        PERFORM bdc_field       USING 'BDC_OKCODE'
                                      '=BACK'.
        PERFORM bdc_field       USING 'VBEX-GENNR'
                                      record-gennr_008. "Value passed
        PERFORM bdc_field       USING 'VBEX-MODCO'
                                      record-modco_009. "Value Passed
        PERFORM bdc_dynpro      USING 'SAPLV52E' '0500'.
        PERFORM bdc_field       USING 'BDC_CURSOR'
                                      '*VBEX-VBELN'.
        PERFORM bdc_field       USING 'BDC_OKCODE'
                                      '=SICH'.
        PERFORM bdc_transaction USING 'VX22'.</b>
    <b>In Program Code Added:</b>
    <b>  CLEAR v_line_item.
      PERFORM f_bdc_dynpro      USING 'SAPMV52G' '0100'.
      PERFORM f_bdc_field       USING 'BDC_CURSOR'
                                      'RV52G-SELKZ'.
      PERFORM f_bdc_field       USING 'BDC_OKCODE'
                                      '/00'.
      PERFORM f_bdc_field       USING 'VBAK-VBELN'
                                      i_data-vbeln.
      PERFORM f_bdc_field       USING 'RV52G-SELKZ'
                                      v_space.
      CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
        EXPORTING
          input  = i_data-sno
        IMPORTING
          output = i_data-sno.
      SHIFT i_data-sno LEFT DELETING LEADING space.
      CONCATENATE c_line i_data-sno c_cl_b INTO v_line_item.
      PERFORM f_bdc_dynpro      USING 'SAPLV52E' '0500'.
      PERFORM f_bdc_field       USING 'BDC_CURSOR'
                                      v_line_item.
      PERFORM f_bdc_field       USING 'BDC_OKCODE'
                                      '=DETA'.
      PERFORM f_bdc_field       USING v_line_item
                                      c_x.
      PERFORM f_bdc_dynpro      USING 'SAPLV52E' '0520'.
      PERFORM f_bdc_field       USING 'BDC_CURSOR'
                                      'VBEX-MODCO'.
      PERFORM f_bdc_field       USING 'BDC_OKCODE'
                                      '/00'.
      PERFORM f_bdc_field       USING 'VBEX-ALNUM'
                                      v_space.
      PERFORM f_bdc_field       USING 'VBEX-EMBGR'
                                      v_space.
      PERFORM f_bdc_field       USING 'VBEX-GENNR'
                                      v_space.
      PERFORM f_bdc_field       USING 'VBEX-MODCO'
                                      v_space.
      PERFORM f_bdc_dynpro      USING 'SAPLV52E' '0520'.
      PERFORM f_bdc_field       USING 'BDC_CURSOR'
                                      'VBEX-MODCO'.
      PERFORM f_bdc_field       USING 'BDC_OKCODE'
                                      '=BACK'.
      PERFORM f_bdc_field       USING 'VBEX-GENNR'
                                      i_data-gennr.
      PERFORM f_bdc_field       USING 'VBEX-MODCO'
                                      'A'.
      PERFORM f_bdc_dynpro      USING 'SAPLV52E' '0500'.
      PERFORM f_bdc_field       USING 'BDC_CURSOR'
                                      '*VBEX-VBELN'.
      PERFORM f_bdc_field       USING 'BDC_OKCODE'
                                      '=SICH'.
      PERFORM f_bdc_call_transaction USING 'VX22'.</b>
    Can Anybody tell me the Diffrence B/N Recording and Program.
    only <b>v_line_item</b> is added extra in program to find out specific line item and select that line item that is working Correctly.
    <b>Issue#1</b>
    The issues in above come in first Initial Screen[100] Where i need to Remove Check for <b>'RV52G-SELKZ'</b> that is first thing that is not happening.
    Next it woking correctly for <b> 500</b> Screen [By Selecting Correct line item and then Details for it].
    <b>Issue#2</b>
    Then it is going to Screen <b>502</b> where first it need to clear all the enabled field i passed <b>space</b> to them. but still it is showing values in all fields. After Clearing i should Re-Add 2 fields among Those fields.
    Then other things will happen.
    Can anybody tell me what is reason in program code is not working - I had tried in all <b>'A/E/N'</b> Modes but it's not working!
    If anybody knows reason please help me out.
    One More thing i had tried by making <b>PARAMETER ID'S</b> of few fields BLANK. But by this way also it is not working.
    <b>  SET PARAMETER ID 'ALN' FIELD v_space.
      SET PARAMETER ID 'EMB' FIELD v_space.
      SET PARAMETER ID 'GNR' FIELD v_space.</b>
    Can anybody give me the solution.
    Thanks in advance.
    Thanks & Regards,
    Prasad.

    Hi,
    I had tried in Ravi's way also.
    I will explain the process once more.
    It's a DE-Assign Process - Main purpose is to make the External Licence number blank.
    For that process is as follows:
    First user will Trigger <b>VX22</b> transaction,
    In the initial screen <b>100</b> he will give <b>Sales Order Number[VBELN]</b> then remove Check Box against <b>Blocked Items(Legal Control)</b> Then Press Enter.
    It will take user to <b>Change Licen Data [500]</b> Screen.
    There from the line items he will select specific line item which is already filled in with <b>ASSIGN</b> process.
    He will select check box against that Line item then will hit on <b>Details[F2]</b> from the Tool Bar.
    It will take user to <b>502 screen</b> There he will be deleting all the data in change mode one by one in order of <b>Exp.Ctrl.Class</b>, <b>Grouping</b>, <b>License Number</b>, <b>Change ID</b> Then he will hit on enter then by that <b>Ext.License No</b> which is in display mode - value against that field will get deleted.
    Then he will again provide <b>License Number, Change ID</b> and then <b>hit Enter, Enter, Then Back Button</b> then it will take us back to previous screen <b>[500]</b> there he will hit on <b>SAVE</b> button. Then Order will be saved.
    ABove is the actual process.
    Anybody having the solution for above as BDC is initially not making screen fields blank initially.
    how we can do this by SET PARAMETER ID's.
    Thanks & Regards,
    Prasad.

  • BDC Program with recording

    Hi All,
    I have a requirement to create a bdc program for asset creation with recording. Any have this, please send the step-by-step procedure.
    I am very thankful to you in advance.
    Thanks,
    Nagarjuna.

    HI Nagarjuna,
    Step by Step approach to ceate simple BDC session program using reusable template.
    Batch Data Communication is one of the vital data upload / transaction automation option in many SAP components . I am suggesting here a way out to simplify the programming for a BDC application . It utilizes a template program and gives steps to use it to create your own BDC program on the fly.
    This step by step approach can be used to create a Simple BDC program i.e for a transaction which does not have any table control / looping at screen table. The same can also be enhanced to develop a program for transactions involving table controls .
    1. Create a new program as executable program using SE38 transaction code.
    2. Copy the following template code into your program .
    ---- Start of Template -
    REPORT
    NO STANDARD PAGE HEADING
    LINE-SIZE 200
    LINE-COUNT 300.
    *-- DATA DECLARATION--
    *---Types
    DATA : BEGIN OF t_upload,
    FIELD1(10),
    FIELD2(2),
    FIELD3(18),
    FIELD4(35),
    END OF t_upload.
    *--- Tables
    DATA : BEGIN OF i_bdcdata OCCURS 0."to hold the transaction record
    INCLUDE STRUCTURE bdcdata.
    DATA: END OF i_bdcdata.
    DATA: i_upload LIKE STANDARD TABLE OF t_upload," to hold file data.
    i_upload1 LIKE STANDARD TABLE OF t_upload." to hold file data.
    *--- Work Areas
    DATA: wa_upload2 LIKE t_upload,
    wa_upload LIKE t_upload,
    wa_upload1 LIKE t_upload.
    *--- Variables
    DATA: v_count1(4) TYPE n,
    v_error TYPE c,
    v_session(12),
    v_field(21) TYPE c,
    v_message(60) type 'C'.
    *--Constants
    DATA: c_open TYPE c VALUE '(',
    c_close TYPE c VALUE ')',
    c_x TYPE c VALUE 'X'.
    *---Initialisation
    initialization.
    refresh : i_upload , i_upload1 ,i_bdcdata.
    -------Selection Screen Design -
    *Selection screen for input of upload file address
    SELECTION-SCREEN SKIP 2.
    SELECTION-SCREEN BEGIN OF BLOCK blk1 WITH FRAME.
    PARAMETERS : p_file LIKE rlgrap-filename OBLIGATORY.
    SELECTION-SCREEN END OF BLOCK blk1.
    ---AT SELECTION SCREEN -
    AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_file.
    *--For popup to select file.
    PERFORM give_help.
    -----START OF SELECTION -
    START-OF-SELECTION.
    *--Data upload using WS_Upload.
    PERFORM get_data.
    *-- OPEN SESSION
    PERFORM open_group.
    *--Insert transactions using BDCDATA table in the session.
    PERFORM do_transaction .
    *-- Close the session.
    PERFORM close_group.
    END-OF-SELECTION.
    *& Form f_get_data
    For data upload from external file.
    FORM get_data.
    CALL FUNCTION 'WS_UPLOAD'
    EXPORTING
    filename = p_file
    filetype = 'DAT'
    TABLES
    data_tab = i_upload
    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.
    ELSE.
    DELETE I_UPLOAD INDEX 1.
    ENDIF.
    ENDFORM. " f_get_data
    *& Form F_open_group
    To open session in session management.
    FORM open_group.
    v_session = 'TCODE'.
    CALL FUNCTION 'BDC_OPEN_GROUP'
    EXPORTING
    client = sy-mandt
    group = v_session
    user = sy-uname
    keep = 'X'.
    ENDFORM. " F_open_group
    *& Form f_do_transaction
    Insert transactions in session after passing values to BDCDATA
    FORM do_transaction.
    LOOP AT i_upload INTO wa_upload .
    *---- insert your generated codes from recording at SHDB here
    *----- insertion ends
    perform bdc_transaction using 'TCODE'.
    REFRESH : I_BDCDATA.
    CLEAR : WA_UPLOAD.
    ENDIF.
    ENDLOOP.
    ENDFORM. " f_do_transaction
    *& Form bdc_dynpro
    For appending screen details to BDCDATA
    FORM bdc_dynpro USING program dynpro.
    CLEAR i_bdcdata.
    i_bdcdata-program = program.
    i_bdcdata-dynpro = dynpro.
    i_bdcdata-dynbegin = 'X'.
    APPEND i_bdcdata.
    CLEAR i_bdcdata.
    ENDFORM. "bdc_dynpro
    *& Form bdc_field
    For appending field details to bdcdata table
    FORM bdc_field USING fnam fval.
    CLEAR i_bdcdata.
    i_bdcdata-fnam = fnam.
    i_bdcdata-fval = fval.
    APPEND i_bdcdata.
    CLEAR i_bdcdata.
    ENDFORM. " bdc_field
    *& Form bdc_transaction
    For inserting Transaction in the session
    FORM bdc_transaction USING tcode.
    CALL FUNCTION 'BDC_INSERT'
    EXPORTING
    tcode = tcode
    TABLES
    dynprotab = i_bdcdata.
    ENDFORM. " bdc_transaction
    *& Form F_close_group
    For closing the session created in Session manager SM35
    FORM close_group.
    CALL FUNCTION 'BDC_CLOSE_GROUP'.
    concatenate 'Session ' v_session 'successfully created' into v_field.
    MESSAGE v_field type 'I'..
    CALL TRANSACTION 'SM35'.
    ENDFORM. "f_close_group
    *& Form f_give_help
    For user help to select file
    FORM give_help.
    CALL FUNCTION 'WS_FILENAME_GET'
    EXPORTING
    mask = ',.,..'
    mode = 'O'
    IMPORTING
    filename = p_file
    EXCEPTIONS
    inv_winsys = 1
    no_batch = 2
    selection_cancel = 3
    selection_error = 4
    OTHERS = 5.
    IF sy-subrc <> 0 AND NOT sy-msgty IS INITIAL.
    MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
    WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
    ENDIF.
    ENDFORM. " f_give_help
    ---- End of Template -
    3.Go to the transaction SHDB in another session ( you can also give TCODE - OSHDB in transaction code window and hit enter ).
    4.Create you transaction recording in SHDB . Ensure your transaction recording takes care of input values to all the
    fields to which you intend to pass values in the BDC.
    5.Once your recording is done correctly create the program from recording in the SHDB transction . You will find the button to create program in SHDB . Choose the option of creating from file when you proceed through the subsequent steps.
    6. Define data type t_upload and structure wa_upload in the template program with fields of structure 'RECORD' from the program generated using SHDB recording ( replace the field1, field2 and so on as per your requirement). For your understanding you can remove the suffixes to the
    field name but keep the field size unchanged.
    7.Copy the coding existing between 'do' and 'enddo' statement from the generated program . Insert the copied code between the loop and endloop code of form 'Do_transaction '. Replace fields of structure 'RECORD' with respective fields of structure wa_upload.Insert constant values wherever possible in transaction recording.You can also handle customised data conversions here.
    8.Replace 'TCODE' in the template program with the transaction code you intend to process in this BDC.
    9.Please carry out further syntax check and resolve the related issues.
    This program will provide for input help to select upload file from local machine. The file needs to be in Tab delimited format and is assumed to have first row as column headers .
    On successful creation of session you will be prompted with a Information popup giving the name of session ,and will take you to the SM35 transaction to process your session.
    thanks
    karthik

Maybe you are looking for