BDC & User exit

Hi
could you pls help me in following problems: Atleast basics tips to start with.
1)Created a BDC program for BOM mass  maintenance functionality in
SAP R/3.The selection screen contains options for creating BOM, for
modifying the existing BOM with the input file data and for deleting the
2)Developed user exit in MV45AFZZ to issue warnings messages and put delivery block in sales order processing if the customer expected price does not match calculated price. The user exit should only issue warning messages if the transaction runs in online mode (no batch, no EDI).Custom table was created.
Thanks

Hi
1) Just do the Reocrding first and save the recording and generate  a program from teh recording and look at the program, you will understand the whole thing
2) In the User eixt,
IF SY-BATCH is initial.    " On line mode
write the error messagfe
endif.

Similar Messages

  • Help with BDC, user exits and BAPI

    Hello all:
    1) I posted a question before about BDC documentation and people sent me lot of helpful material. Thanks to all of them. I am very new to ABAP coming from VB background and wondering if someone can tell me how to practice one simple BDC program starting from scratch. What do I first need to do to get started? I have Mini WAS 6.20 test version and like to practice BDC programming.
    2) What are user exits and BADI and can anyone provide some documentation and sample code if possible.
    Thanks everyone in advance.
    --Mithun.

    Hai Mithun Dha
    Go through the following Documentation & Example Code
    Just check these links.
    Diff. between LSMW & BDC?
    BDC SESSION
    CALL TRANSACTION
    CALL DIALOG
    What is BDC or batch input
    The Batch Input is a SAP technic that allows automating the input in transactions. It lies on a BDC (Batch Data Commands) scenario.
    BDC functions:
    E BDC_OPEN_GROUP : Opens a session group
    E BDC_CLOSE_GROUP : Closes a session
    E BDC_INSERT : Insert a BDC scenario in the session
    E The ABAP statement "CALL TRANSACTION" is also called to run directly a transaction from its BDC table.
    It runs the program RSBDCSUB in order to launch automatically the session. The session management is done through the transaction code SM35.
    The object itself is maintanable through the transaction SE24.
    BDC methods:
    Method
    Description
    Parameters
    OPEN_SESSION
    Opens a session
    SUBRC (Return Code ? 0 OK)
    SESSIONNAME (Session to be created)
    CLOSE_SESSION
    Closes a session
    None
    RESET_BDCDATA
    Resets the BDC Internal Table...
    None. Normally, for internal purposec
    BDC_DYNPRO
    Handles a new screen
    PROGNAME (Name of the program)
    DYNPRONR (Screen Number)
    BDC_FIELD
    Puts a value on the screen
    FIELDNAME (Name of the field)
    FIELDVALUE (Value to be passed)
    CONSTRUCTOR
    Constructor - Initializes NO_DATA
    NODATA (No data character). The constructor is called automatically when the object is created.
    RUN_SESSION
    Launches a session with RSBDCBTC
    None
    CALL_TRANSACTION
    Calls a transaction with the current BDC Data
    MODE (Display Mode)
    UPDATE (Update Mode)
    TCODE (Transaction to be called)
    BDC_INSERT
    Inserts the BDC scenario in the session
    TCODE (Transaction to be called)
    BDC techniques used in programs:
    1) Building a BDC table and calling a transaction,
    2) Building a session and a set of BDC scenarios and keeping the session available in SM35,
    3) Building a session and lauching the transaction right after closing the session.
    BDC using Call Transaction
    BDC using Call transaction involves calling an SAP transaction in back ground from within the ABAP
    program. The process involves building an Internal BDC table containing the screen information needed to
    execute the required transaction and then passing this to the Call transaction command (See code example).
    The full procedure for creating a BDC program is as follows:
    What is the difference between batch input and call transaction in BDC?
    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
    BATINPUT/DIRECT INPUT
    A: Batch-inputs can not be used to fill the "delivery due list" screen because it is not a dynpro. This is a standard SAP report. A SAP report (check with "System -> Status") may be called using SUBMIT sentence with the appropriate options . It is preferred to call a report than create a Batch-input program.
    GO THROUGH THIS LINK
    http://www.guidancetech.com/people/holland/sap/abap/zzsni001.htm
    check with this code
    include bdcrecx1.
    tables : mara.
    data : begin of it_mara occurs 0,
    matnr like mara-matnr,
    mbrsh like mara-mbrsh,
    mtart like mara-mtart,
    maktx like makt-maktx,
    meins like mara-meins,
    end of it_mara.
    start-of-selection.
    perform upload_data.
    perform open_group.
    loop at it_mara.
    perform bdc_dynpro using 'SAPLMGMM' '0060'.
    perform bdc_field using 'BDC_CURSOR'
    'RMMG1-MATNR'.
    perform bdc_field using 'BDC_OKCODE'
    '/00'.
    perform bdc_field using 'RMMG1-MATNR'
    it_mara-matnr.
    perform bdc_field using 'RMMG1-MBRSH'
    it_mara-mbrsh.
    perform bdc_field using 'RMMG1-MTART'
    it_mara-mtart.
    perform bdc_dynpro using 'SAPLMGMM' '0070'.
    perform bdc_field using 'BDC_CURSOR'
    'MSICHTAUSW-DYTXT(02)'.
    perform bdc_field using 'BDC_OKCODE'
    '=ENTR'.
    perform bdc_field using 'MSICHTAUSW-KZSEL(01)'
    'X'.
    perform bdc_field using 'MSICHTAUSW-KZSEL(02)'
    'X'.
    perform bdc_dynpro using 'SAPLMGMM' '4004'.
    perform bdc_field using 'BDC_OKCODE'
    '=BU'.
    perform bdc_field using 'MAKT-MAKTX'
    it_mara-maktx.
    perform bdc_field using 'BDC_CURSOR'
    'MARA-MEINS'.
    perform bdc_field using 'MARA-MEINS'
    it_mara-meins.
    perform bdc_field using 'MARA-MTPOS_MARA'
    'NORM'.
    perform bdc_transaction using 'MM01'.
    endloop.
    perform close_group.
    *& Form upload_data
    text
    --> p1 text
    <-- p2 text
    FORM upload_data .
    CALL FUNCTION 'GUI_UPLOAD'
    EXPORTING
    FILENAME = 'c:\mat_bdc.txt'
    FILETYPE = 'ASC'
    TABLES
    DATA_TAB = it_mara.
    IF SY-SUBRC = 0.
    SORT IT_MARA BY MATNR.
    ENDIF.
    ENDFORM. " upload_data
    flat file structure is
    PRANIT_011 CCOUP This is Testing material kg
    PRANIT_012 CCOUP This is Testing material kg
    PRANIT_013 CCOUP This is Testing material kg
    PRANIT_014 CCOUP This is Testing material kg
    PRANIT_015 CCOUP This is Testing material kg
    when your selecting views
    this particular material will belongs to Po/Sales or some other areas .
    when you select basic 1 --it gives description
    select basic 2 -- it gives tax ,amount, base unit of measurement
    BDC TO BAPI
    The steps to be followed are :
    1. Find out the relevant BAPI (BAPI_SALESORDER_CHANGE for VA02).
    [for VA01 use BAPI_SALESORDER_CREATEFROMDAT2]
    2. Create a Z program and call the BAPi (same as a Funtion module call).
    2. Now, if you see this BAPi, it has
    -> Importing structures.
    eg: SALESDOCUMENT: this will take the Sales order header data as input.
    -> Tables parameters:
    eg: ORDER_ITEM_IN: this will take the line item data as input.
    Note :
    Only specify fields that should be changed
    Select these fields by entering an X in the checkboxes
    Enter a U in the UPDATEFLAG field
    Always specify key fields when changing the data, including in the checkboxes
    The configuration is an exception here. If this needs to be changed, you need to complete it again fully.
    Maintain quantities and dates in the schedule line data
    Possible UPDATEFLAGS:
    U = change
    D = delete
    I = add
    Example
    1. Delete the whole order
    2. Delete order items
    3. Change the order
    4. Change the configuration
    Notes
    1. Minimum entry:
    You must enter the order number in the SALESDOCUMENT structure.
    You must always enter key fields for changes.
    You must always specify the update indicator in the ORDER_HEADER_INX.
    2. Commit control:
    The BAPI does not run a database Commit, which means that the application must trigger the Commit so that the changes are read to the database. To do this, use the BAPI_TRANSACTION_COMMIT BAPI.
    For further details... refer to the Function Module documentation for the BAPi.
    For User Exits
    User Exits
    Screen exits are exits that allow you to use a reserved part of the screen (A subscreen) to display or input data.
    It is determined be SAP where the sub screen will be displayed.
    The syntax is: CALL CUSTOMER-SUBSCREEN
    The screen exit is not processed untill the corresponding subscreen has been created in an enhancement project,
    and the project has been activated.
    Note:
    Function codes are only processed in the main screens flow logic
    You are not allowed to enter a name for the subscreens command field
    You are not allowed to define GUI stauses
    You are not allowed to enter a value for Next screen
    The global data of the program is not available for the subscreen. Data for the subscreen is provided by function modules.
    These function modules belongs to the same function group as the subscreen Subscreens are edited with transaction CMOD.
    When you activate a project containg subscreens, the calling screen is regenerated and the subscreen is displayed next
    time you display the calling screen
    The developer must create the subscreen and the corresponding PBO and PAI modules
    How to identify screen exits
    Look after CALL CUSTOMER-SUBSCREEN in the screenprogram of the screen you want to modify.
    Use transaction CMOD menu Utillities -> SAP enhancements to search for screen exits
    MENU EXITS
    Menu exits allow you to add your own functionallity to menus. Menu exits are implemented by SAP, and are reserved menu
    entries in the GUI interface. The developer can add his/her own text and logic for the menu.
    Function codes for menu exits all start with "+"
    Example
    We want to create a new menu item in the Office menu. The text for the menu should be "Run ZTEST", and the menu will
    run report ZTEST.
    Goto transaction SE43 Area Menu Maintenance
    In Area Menu Paramenter type 'S000' (S triple Zero)
    Select Change and ignore all the warning screens
    Expand the office menu. In the buttom of the office tree you will find a menu named "Customer function"
    Double click on the text. In the pop-up screen change the text to "Run ZTEST". Note that the trsnaction code is +C01
    Goto transaction SE93 and create transaction +C01 that calls report ZTEST.
    Now you will se the menu displayed in the office tree. If you delete transaction +C01 again, the new menu will dissapear.
    USER EXITS
    User exits (Function module exits) are exits developed by SAP. The exit is implementerd as a call to a functionmodule.
    The code for the function module is writeen by the developer. You are not writing the code directly in the function module,
    but in the include that is implemented in the function module.
    The naming standard of function modules for functionmodule exits is: EXIT_<program name><3 digit suffix>
    The call to a functionmodule exit is implemented as: CALL CUSTOMER.-FUNCTION <3 digit suffix>
    Example:
    The program for transaction VA01 Create salesorder is SAPMV45A
    If you search for CALL CUSTOMER-FUNCTION i program SAPMV45A you will find ( Among other user exits):
    CALL CUSTOMER-FUNCTION '003'
    exporting
    xvbak = vbak
    xvbuk = vbuk
    xkomk = tkomk
    importing
    lvf_subrc = lvf_subrc
    tables
    xvbfa = xvbfa
    xvbap = xvbap
    xvbup = xvbup.
    The exit calls function module EXIT_SAPMV45A_003
    2. How to find user exits
    Display the program where you are searching for and exit and search for CALL CUSTOMER-EXIT
    If you know the Exit name, go to transaction CMOD. Choose menu Utillities->SAP Enhancements.
    Enter the exit name and press enter.
    You will now come to a screen that shows the function module exits for the exit.
    3. Using Project management of SAP Enhancements
    We want to create a project to enahance trasnaction VA01
    Go to transaction CMOD
    Create a project called ZVA01
    Choose the Enhancement assign radio button and press the Change button
    In the first column enter V45A0002 Predefine sold-to party in sales document . Note that an enhancement can only
    be used i 1 project. If the enhancement is allready in use, and error message will be displayed
    Press Save
    Press Components. You can now see that enhancement uses user exit EXIT_SAPMV45A_002. Double click on the exit.
    Now the function module is displayed. Double click on include ZXVVAU04 in the function module
    Insert the following code into the include: E_KUNNR = '2155'.
    Activate the include program. Go back to CMOD and activate the project.
    Goto transaction VA01 and craete a salesorder. Note that Sold-to-party now automatically is "2155"
    Have look at this links
    http://help.sap.com/printdocu/core/Print46c/en/data/pdf/BCCIOFFI/BCCIOFFI.pdf
    http://www.sapgenie.com/abap/ole.htm
    http://help.sap.com/saphelp_46c/helpdata/en/59/ae3f2e488f11d189490000e829fbbd/frameset.htm
    http://help.sap.com/printdocu/core/Print46c/en/data/pdf/BCCIOFFI/BCCIOFFI.pdf
    Creation of Field Exits
    Step by step procedure for creating Field Exits
    There are eight steps to creating a field exit:
    Step 1: Determine Data Element
    Step 2: Go To Field Exit Transaction
    Step 3: Create Field Exit
    Step 4: Create Function Module
    Step 5: Code Function Module
    Step 6: Activate Function Module
    Step 7: Assign Program/Screen
    Step 8: Activate Field Exit
    Step 1: Determine Data Element
    - Before you can begin adding the functionality for a field exit, you must know the corresponding data element.
    - An easy way to determine the data element associated to a particular screen field is to:
    Go the appropriate screen.
    Position the cursor in the appropriate field.
    Press eF1f for field-level help.
    Click on the eTechnical infof pushbutton (or press eF9f) on the help dialog box.
    On this Technical Information dialog box, the data element will be specified if the field is 'painted' from the ABAP/4 Dictionary.
    Step 2: Go To Field Exit Transaction
    - The transaction to create field exits is CMOD.
    - You can use the menu path Tools -> ABAP/4 Workbench -> Utilities -> Enhancements -> Project management.
    - From the initial screen of transaction CMOD, choose the Text enhancements -> Field exits menu path.
    - After choosing this menu path, you will be taken to the field exits screen. From here, you can create a field exit.
    NOTE : Even though you use transaction CMOD to maintain field exits, you do not need to create a project to activate field exits.
    Step 3: Create Field Exit
    - From the field exit screen of transaction CMOD, choose the Field exit -> Create menu path.
    - After choosing this menu path, a dialog box will prompt you for the appropriate data element .
    - Enter the data element name and click the eContinuef pushbutton.
    - Now, you will be able to create the function module associated to the data elementfs field exit.
    Step 4: Create Function Module
    - You will automatically be taken to the Function Library (SE37) after entering a data element name and clicking the eContinuef pushbutton.
    - In the eFunction modulef field, a function module name will be defaulted by the system based on the data element specified. This name will have the following convention:
    FIELD_EXIT_<data element>
    - You can add an identifier (an underscore followed by a single character ).
    - The first function module for a data elementfs field exit must be created without an identifier.
    - To create the function module, click on the eCreatef pushbutton, choose menu path Function module -> Create, or press eF5f.
    - After choosing to create the function module, you will get the warning: "Function module name is reserved for SAP". This message is just a warning so a developer does not accidentally create a function module in the field exit name range. By pressing eEnterf, you will be able to go ahead and create the function module.
    - Before coding the function module, you will have to specify the function modules attributes -- function group, application, and short text.
    Step 5: Code Function Module
    - From the function modulefs attributes screen, click on the eSource codef pushbutton or choose the Goto -> Function module menu path to the code of the function module.
    - Here you will add your desired functionality for the field exit.
    - Remember that field exitfs function module will have two parameters -- one importing parameter called "INPUT" and one exporting parameter called "OUTPUT". These parameters will be set up automatically by the system.
    - You must remember to assign a value to the OUTPUT field. Even if the value does not change, it must be moved from the INPUT field to the OUTPUT field.
    Step 6: Activate Function Module
    - After coding the function module, you must remember to activate it.
    - Use the Function module -> Activate menu path to activate the function module.
    - At this point, you can return to the field exit transaction.
    - You should be able to 'green arrow' back to this transaction.
    - When you return to the field exit transaction, you will see an entry for the newly created field exit.
    - At this point, the field exit is global. That is, it applies to all screens that use a particular data element. On any screen that uses the data element, the corresponding field exit function module will be triggered, once it is active.
    - Also, the field exit will not be triggered yet because it is inactive.
    Step 7: Assign Program/Screen
    - This step is only needed if you want to make a field exit local.
    - To make a field exit local, select the field exit and click on the eAssign prog./screenf pushbutton.
    - In the dialog box , indicate the appropriate program name and screen number.
    This information indicates that the field exit is local to the specified screen in the specified program.
    - In the dialog box, you determine which function module gets executed for the field exit by specifying the identifier in the eFld. Exitf field.
    - If this field is left blank, the function module triggered will be 'FIELD_EXIT_<data element>'.
    - If a single-character identifier is entered into the field, the function module triggered will be 'FIELD_EXIT_<data element>_<identifier>'.
    Step 8: Activate Field Exit
    - The field exit must be active for it to be triggered by the system.
    - Activate the field exit by choosing the Field exit -> Activate menu path.
    - After assigning the field exit to a change request, its status will change to eActivef and it will be triggered automatically on the appropriate screen(s).
    NOTE : In order to activate the field exit the profile parameter abap/fieldexit = YES must be set on all application servers
    Thanks & regards
    Sreenivasulu P

  • User Exit and BDC for ME22N

    Hello All,
    A code has been written in the User exit for Tcode ME22N, Which sets the indicator on PO line item. This has been done by modifying the standard itab POT by using field symbols, because the fields to be modified are shown in display mode in the tcode ME22N and cannot be done in BDC. See the below code in user exit ZXM06U43.
    DATA char(50) VALUE '(SAPLMEPO)POT[]'.
    CLEAR wa_ind.
        FIELD-SYMBOLS <f1> TYPE ANY.
    Move memory of internal table POT to field symbol f1.
        ASSIGN (char) TO <f1>.
    Move content of f1 to internal table i_ind
        i_ind[] = <f1> .
        LOOP AT i_ind INTO wa_ind.
          IF wa_ind-pstyp = '9'.            " Service PO - item category
    IF PO Line item has History per Purchasing Document as 'D'
    Set indicators on, for the line item.
            CLEAR v_cnt.
            SELECT COUNT( * ) INTO v_cnt FROM ent5100
                                         WHERE ebeln = wa_ind-ebeln
                                           AND ebelp = wa_ind-ebelp
                                           AND bewtp = 'D'.
            IF sy-subrc = 0.
              wa_ind-wepos = 'X'.            " Set Goods Receipt Indicator
              wa_ind-webre = 'X'.            " Set GR-based IV Indicator
              wa_ind-lebre = 'X'.            " Set Srv-based IV Indicator
            ELSE.
    *End of addition SAP-20070910104025 - SL36 - D01K963369
              wa_ind-wepos = ' '.            " Clear Goods Receipt Indicator
              wa_ind-webre = ' '.            " Clear GR-based IV Indicator
              wa_ind-lebre = ' '.            " Clear Srv-based IV Indicator
              wa_ind-xersy = ' '.            " Clear ERS Indicator
            ENDIF.                                           
            MODIFY i_ind FROM wa_ind INDEX sy-tabix.
          ENDIF.
        ENDLOOP.
        <f1> = i_ind[].
      ENDIF.          
    ENDIF.
    This code is in production and has been working fine.
    The requirnment is now to make this indicator work for all the Purchase order before this code has been written in the Exit. For this my functional suggests that to write a separate program using BDC for PO change and jus add a period/dot  in the short text and save it. The code has been written, the user exit and the above code is getting triggrred values are updated in internal table correctly.
    However the flags was not set or cleared when seen in the tcode ME22N . This works fine if the tcode me22n is run directly and not working in BDC.
    I have tried with ME22 without enjoy transaction in BDC changing the POT Program to SAPMM06E. It does not work.
    Please help me as why it is not uodating in the table when using BDC.
    Thanks in Advance.
    Senthil Kumar

    Hi All,
    Any luck on this??
    Thanks

  • Processing of a BDC  in background which internally triggers user exits

    Hi experts,
    I have a req. where in a BDC program would internally trigger a user exit to update values.The program is running well in the foreground and in display with errors.But in background it throws a "System error when creating a control".Can you please let me know the exact reason for this.
    Thanks and Regards,
    Anitha

    i think there is one option 'After Job' in SM36
    this might be helpful to you
    regards
    if you are creating your jobs via SM36, you should be able to to create the second job using
    'After Job' option with the 'Start Status Dependent' checkbox switched on. This way the
    second job will not start unless the first job finishes successfully.
    Message was edited by: Surpreet Singh Bal

  • Is it possible to trigger user exit in BDC?

    Hi experts,
    I am having issue as follows.
    when i am successfully creating rework code & UD code through tcode QA11 manually.
    If i am doing manually some user exits will be called and there rework code will be generated successfully.
    But i have used QA11 in my program using call transaction QA11 in back ground mode.
    It is creaing UD code successfully.But rework code also has to be generated in back ground through user exit.
    But that is not happening.
    But internally my user exits are not calling when i run my program in back ground or fore ground.
    Is there any problem of triggering user exists when running BDC in back ground or foreground?
    Now i am unable to create rework code through QA11 why because user exists were not calling internally.
    Thanks & Regards,
    LOKESH GOUD

    why dont you keep a break point and debug??

  • How to write BDC in Function exit (user exit )

    Hi champs,
    I am trying to write one bdc code in a function exit but it is giving me the error:
    " Incorrect nesting: Before the statement "FORM", the structure
    introduced by "FUNCTION" must be concluded with "ENDFUNCTION". -     
    The code which i have written is
    **&  Include           ZXMRCU01
    data: begin of it_imptt occurs 0,
            POINT like imptt-point,
            MRMIN like imptt-MRMIN,
            MRMAX like imptt-MRMAX,
          end of it_imptt.
    Internal table to store BDC screens   *
    and field values                      *
    DATA: BEGIN OF it_BDCDATA OCCURS 0.
            INCLUDE STRUCTURE BDCDATA.
    DATA: END OF it_BDCDATA.
    select point
           MRMIN
           MRMAX from imptt into it_imptt
           for all entries in imrg_ins
           where point = imrg_ins-point.
    endselect.
    read table imrg_ins with key point = it_imptt-point.
    if imrg_ins-readg < it_imptt-mrmin
         or imrg_ins-readg > it_imptt-mrmax.
      perform bdc_dynpro      using 'SAPLIQS0' '0100'.
      perform bdc_field       using 'BDC_CURSOR'
                                    'RIWO00-QMART'.
      perform bdc_field       using 'BDC_OKCODE'
                                    '/00'.
      perform bdc_field       using 'RIWO00-QMART'
                                            'M1'.
      perform bdc_dynpro      using 'SAPLIQS0' '7200'.
      perform bdc_field       using 'BDC_OKCODE'
                                    '=BUCH'.
      perform bdc_field       using 'VIQMEL-QMTXT'
                                            'test desc1'.
      call transaction 'IW21'
                            using it_BDCDATA
                              Mode 'A'
                                update 'S'.
      REFRESH it_BDCDATA.
    endif.
    **&      Form  bdc_dynpro
          text ---- Taking 2 parameters Screen Name & Screen Number.
    FORM BDC_DYNPRO USING SCREEN_NAME SCREEN_NUMBER.
      CLEAR it_BDCDATA.
      it_BDCDATA-PROGRAM = SCREEN_NAME.
      it_BDCDATA-DYNPRO = SCREEN_NUMBER.
      it_BDCDATA-DYNBEGIN = 'X'.
      APPEND it_BDCDATA.
    ENDFORM.                    "bdc_dynpro
    **&      Form  bdc_field
          text---- Taking 2 parameters Field Name & Field Number.
    FORM BDC_FIELD USING FNAME FVAL.
      CLEAR it_BDCDATA.
      it_BDCDATA-FNAM = FNAME.
      it_BDCDATA-FVAL = FVAL.
      APPEND it_BDCDATA.
    ENDFORM.                    "bdc_field     
    Is there any different way of writing bdc in user exit?

    <b>FUNCTION.</b>
    **& Include ZXMRCU01
    data: begin of it_imptt occurs 0,
    POINT like imptt-point,
    MRMIN like imptt-MRMIN,
    MRMAX like imptt-MRMAX,
    end of it_imptt.
    Internal table to store BDC screens *
    and field values *
    DATA: BEGIN OF it_BDCDATA OCCURS 0.
    INCLUDE STRUCTURE BDCDATA.
    DATA: END OF it_BDCDATA.
    select point
    MRMIN
    MRMAX from imptt into it_imptt
    for all entries in imrg_ins
    where point = imrg_ins-point.
    endselect.
    read table imrg_ins with key point = it_imptt-point.
    if imrg_ins-readg < it_imptt-mrmin
    or imrg_ins-readg > it_imptt-mrmax.
    perform bdc_dynpro using 'SAPLIQS0' '0100'.
    perform bdc_field using 'BDC_CURSOR'
    'RIWO00-QMART'.
    perform bdc_field using 'BDC_OKCODE'
    '/00'.
    perform bdc_field using 'RIWO00-QMART'
    'M1'.
    perform bdc_dynpro using 'SAPLIQS0' '7200'.
    perform bdc_field using 'BDC_OKCODE'
    '=BUCH'.
    perform bdc_field using 'VIQMEL-QMTXT'
    'test desc1'.
    call transaction 'IW21'
    using it_BDCDATA
    Mode 'A'
    update 'S'.
    REFRESH it_BDCDATA.
    endif.
    <b>ENDFUNCTION.</b>
    **& Form bdc_dynpro
    text ---- Taking 2 parameters Screen Name & Screen Number.
    FORM BDC_DYNPRO USING SCREEN_NAME SCREEN_NUMBER.
    CLEAR it_BDCDATA.
    it_BDCDATA-PROGRAM = SCREEN_NAME.
    it_BDCDATA-DYNPRO = SCREEN_NUMBER.
    it_BDCDATA-DYNBEGIN = 'X'.
    APPEND it_BDCDATA.
    ENDFORM. "bdc_dynpro
    **& Form bdc_field
    text---- Taking 2 parameters Field Name & Field Number.
    FORM BDC_FIELD USING FNAME FVAL.
    CLEAR it_BDCDATA.
    it_BDCDATA-FNAM = FNAME.
    it_BDCDATA-FVAL = FVAL.
    APPEND it_BDCDATA.
    ENDFORM. "bdc_field
    Regards
    Peram

  • ISSUE:BDC In user exit

    Hi all,
    I  have used BDC inside user exit.I am getting an error while activating the user exit .
    The error is before the statement 'FORM' the structure included by 'FUNCTION' must be ended by 'ENDFUNCTION'.(Not getting what 'FUNCTION' is mentioned in error message)
      CALL TRANSACTION 'MM02' USING bdcdata MODE v_mode UPDATE 'S'
                                                MESSAGES INTO it_bdcmsg1.
        ENDLOOP.
    FORM bdc_dynpro USING program dynpro.
      CLEAR bdcdata.
      bdcdata-program  = program.
      bdcdata-dynpro   = dynpro.
      bdcdata-dynbegin = 'X'.
      APPEND bdcdata.
    ENDFORM.                    "BDC_DYNPRO
           Insert field                                                  *
    FORM bdc_field USING fnam fval.
    IF fval <> nodata.
      CLEAR bdcdata.
      bdcdata-fnam = fnam.
      bdcdata-fval = fval.
      APPEND bdcdata.
    ENDIF.
    ENDFORM.                    "BDC_FIELD

    Hi,
    This is beacuse you are trying to nest  the processing block, more strictly procedures. This is not possible in ABAP.
    "Your customer exit simply lies between  these statements introducing procedure (funtion module)
    FUNCTION....
    INCLUDE some_customer_exit_here. 
    ENDFUNCTION
    You can't put any new procedure nor processing block inside this FUNCTION....ENDFUNCTION block.
    Instead you have two possibilities:
    - check function group of that function module, usually starts with X... for customer exists, add and include inside it, following SAP standard naming conventions for subroutines. It must be like inlcude ...F01 . Go inside there and create your subroutine (forms) here. Now in your cutomer exit simply use that form by calling it.
    - create another program of type S (subroutine pool) and place your forms here. Now call it from customer include using PERFORM YOUR_NEW_PROGRAM_NAME(subroutine_name).
    Regards
    Marcin

  • Call BDC in User Exit?

    Hi,
    Is it possible to call BDC in User Exits? Requirement is to update cusotmer master using by CALL TRANSACTION that called from a user exit.
    How to know the user exit name, If I already know the function module name and include name?
    Ex: Include - ZXVSVU02.
    Function Module - EXIT_SAPLVV02_001.
    <removed by moderator>
    Edited by: Thomas Zloch on Jun 8, 2010 12:44 PM

    Hi,
    Have you tried calling BDC through module pool program? if its going to wotk there, sure u will get it done from user exist......
    I have worked it through module pool.......all the best for ur try.....
    Kalyan

  • Skip user exit call at BDC run.

    Hi All,
    1)  I have a BDC program that updates email addresses for existing sales orders & contracts in T-code VA02 & VA42.
    2)  In include MV45AFZZ i have added a piece of code that raises a pop-up message for those items whose profit centre is not   maintained.
    It's a genuine case that my BDC won't execute successfully for those sales orders where profit centre is not maintained for its items. The reason the pop-up message is displayed and BDC won't skip that.
    Note : I could have used warning/information message but due to some constraints i used the pop up message. I wanted a message to be displayed with all the line items missing their respective profit centres. The message was displayed but the screen was greyed out i.e. in display mode. So i used pop up message and handled the screen accordingly.
    The main issue now is:
    My BDC won't work as the pop-up message cannot be skipped by the BDC . Can you suggest something
    1) So that the code in the user exit won't be trigerred at the BDC call or BDC run?
                                                              OR
    2) Pop-up should only be displayed when user works with T-code VA02 or VA42 and not at BDC run
    ~Arya.

    Hi,
    Please check for the system parameter sy-binpt.
    for eg:
    IF SY-BINPT NE  'X'
    CODe.....
    ENDIF.
    Thanks & Regards
    Suresh Krishnan
    Edited by: Suresh Krishnan on Jan 30, 2012 12:06 PM
    Edited by: Suresh Krishnan on Jan 30, 2012 12:06 PM
    Edited by: Suresh Krishnan on Jan 30, 2012 12:06 PM
    Edited by: Suresh Krishnan on Jan 30, 2012 12:07 PM
    Edited by: Suresh Krishnan on Jan 30, 2012 12:07 PM

  • BAPI,BADI ,BDC,ALE ,IDOC,USER EXIT,VALIDATION AND SMART FORMS.

    Dear Experts,
    I am pretty new in BAPI,BADI ,BDC,ALE ,IDOC,USER EXIT,VALIDATION AND SMART FORMS.
    Pls let me know for these topics shall i put the question in this community or should i put in any other form. Pl suggest me .
    Regards
    Shivas

    Plz SEARCH in SCN before posting ,you will get lot of posts .
    Don't use all caps in the subject line

  • Calling a BDC program in side a user-exit

    Hi all,
    I need to call a BDC program in side a user-exit of sales order change
    . i want to make user by calling this BDC program that it wont effect any of my other code's on that and that the customer wont be noticed with any inconvenience.
    i know to use
    CALL TRANSACTION 'zprogram'.
    but i want to make sure that till will not do any harm for any of other parts.
    Regards Nafran.

    Hi
    Make sure you dont change any values of standard SAP variables,structures and internal table values inside the user exit.This is the only way where the other functionality gets affected(unless it is the requirement).
    Reward if helpful.
    Thanks & regards,
    Ramya

  • User exit not work in bdc background mode

    i have bdc program for creating sales order. I also use some user-exits.  When i run the program in foreground, user-exit works fine, but in background, the program can't stop in user-exit. Do you have any idea about what kind of problem can cause to this?

    Call transactions with bdc tables in Sales Orders execute the user exit code!  I've never seen user exit code excluded, unless by program code.  What do you mean by "stop" in background.  Of course, you can't make it stop there in background.
    Post relevant code and we'll see what we can tell you.  What does the code do?

  • BDC session -session qid value-inside user exit

    hai,
    when we process a BDC session from SM35,can we know the unique queue id for that particular session..i need that value to update a ztable in a user exit..this user exit is hit during the processing of that session..is their some system like variables storing the session id?
    Edited by: kumar gaurav on Jan 26, 2012 1:13 AM

    Hi Gaurav,
    Check in table APQI .
    with key combination we will get the queue id from this table, and here you will get the info like whether the session is craeted or in process or with error......

  • Reg:User-Exit In Sales Order to Invoice

    Hi All,
    I have An requirement that to create automatic sales order and invoice  in one go, i have used BAPI_SALESORDER_CREATEFROMDAT2 to create sales order and bdc invoice to create invoice its worked fine.
    My problem is now i got an requirement as after creating sales order it should not create invoice as such because they will manually check whether the sales order is correct then only i should proceed to invoice also they need the option to create,change,delete sales order and same too invoice how can i acheive this scenario through user exits?
    Since am new to user exit can any one tell me how to use user exits and what user exits need like this scenario?

    Hi Suresh,
    For sales order following user exits can be used. These are available in include MV45AFZZ.
    USEREXIT_DELETE_DOCUMENT : At the time of deletion of sales order
    USEREXIT_SAVE_DOCUMENT : At the time of updations or creation of sales order.
    Following are the user exits available in smod.
    SDVFX007  User exit: Billing plan during transfer to Accounting
    SDVFX008  User exit: Processing of transfer structures SD-FI
    SDVFX009  Billing doc. processing KIDONO (payment reference numbe
    SDVFX010  User exit item table for the customer lines
    SDVFX011  Userexit for the komkcv- and kompcv-structures
    V05I0001  User exits for billing index
    V05N0001  User Exits for Printing Billing Docs. using POR Procedu
    V60A0001  Customer functions in the billing document
    V60P0001  Data provision for additional fields for display in lis
    V61A0001  Customer enhancement: Pricing
    Please check this exits which will help you for your requirement.
    Thanks,
    Naveen Kumar.

  • User exit or badi for item text in mir7 transaction

    Hi Gurus,
    Please provide me suitable user exit or enhancement or badi for this requirement.
    client enter TEXT fied data in MIGO transaction for material document and purchase order in where tab.
    in MIR7 i entered reference number as material document number and purchase order number after triggering enter button it gives the list of items but IT IS NOT GIVE THE ITEM TEXT DATA which we entered in MIGO transaction.
    Please provide me suitable user exit or enhancement or BADI for this.
    Thanks A lot in Advance.
    With Regards,
    Radhakrishna.

    Hi RadhaKrishna,
    You can find the BADI by yourself just follow the below any methods you will get the appropriate BADI name..
    Method 1:
    Go to Tranaction: SE24.
    open class CL_EXITHANDLER
    Open the method " GetInstance"
    Put Break point in the statement
    call method cl_exithandler=>get_class_name_by_interface
    Now execute the Transaction which you need teh BDC it will automatically stops at the the method. In debugging mode double click on the variable: " exit_name" It will return the BADI Name.
    Method 2:
    find the Package name and go to the tranaction SE84.
    Enter the package name
    inside the left navaigaiton panel there is one option " Enhancements" click on this enhancement and then enter the package name and execute it. you will get hte number of enhancement.
    for your reference I am sending you the list of BADI present in MIRO transaction.
    ARC_MM_MATBEL_CHECK --------Check AddOn-Specific Criteria for MM_MATBEL
    ARC_MM_MATBEL_WRITE ---------- Archive AddOn-Specific Data for MM_MATBEL
    MB_CHECK_LINE_BADI  -------------- BAdI: Check Line Before Copying to the Blocking Tables
    MB_CIN_LMBMBU04     --------------- posting of gr
    MB_CIN_MM07MFB7     ---------------- BAdI for India Version exit in include MM07MFB7
    MB_CIN_MM07MFB7_QTY  ------------Proposal of quantity from Excise invoice in GR
    MB_DOCUMENT_BADI     --------------BAdIs when Creating a Material Document
    MB_DOCUMENT_UPDATE   -----------BADI when updating material document: MSEG and MKPF
    MB_MIGO_BADI        --------------------- BAdI in MIGO for External Detail Subscreens
    MB_MIGO_ITEM_BADI    ----------------BAdI in MIGO for Changing Item Data
    MB_RESERVATION_BADI  --------------MB21/MB22: Check and Complete Dialog Data
    Thanks,
    Chidanand

Maybe you are looking for

  • AUTHORIZATION

    I have a problem with the authorization of my computer: I'm signed in in the itunes store, buy a song, but when i want to play it I have to again enter my password. everytime i open and close itunes i have to enter my pasword for every song! don't kn

  • Why won't Photoshop download?

    This is the message I keep getting after the download fails:

  • SELECT seems to ignore a space

    Hi: I'm hoping someone can shed some light on this strange case. A table is being loaded from a 3-party source. One column is a 5-digit identifier. For whatever reason a space is coming in as a 6th character. Let's ignore the fact that we can fix the

  • Pause action .vi while a specific sequence is running

    I have a test fixture with two sockets. In teststand we have a prerun.vi in the setup tab that preps some reference equipment. What I need to do is pause the execeution of that vi only when a specific sequence in the main sequence is running.  Is the

  • Re-organize the Master Data

    Gurus, The SAP helpfile say we can re-organize the Master Data as following: You can reorganize the dataset for texts and attributes belonging to a basic characteristic. The reorganization process finds and removes redundant data records in the attri