IS it Possiblity of BDC in Module pool programming

Hi All,
               i have design 2 screens with module pool program.in one screen some input fields are there,once enter input  and press buttoon,it will go to 2nd screen in this data is displayed in table control .once selected some rows in table control, that rows are captured(selected rows are storing in serperate internal table), now once he selected some rows and press save button, it should do BDC for VF21 transaction.
It means in 2nd screen of PAI module some function code(save) is executed,at that point BDC code is written.
Is it possible to handle the BDC in 2 nd screen of PAI Module.
If  we write code in 2nd scren of PAI module through some function code,again when PBO of 2nd scren is loaded,it will refresh table control but not go to Do  BDC forVF21 transaction.
so How can we handle this?
Useful Answers will be rewarded
Regards

Hi,
It is absolutely possible to perform a BDC operation in a module pool program irrespective any screen you are.
In the PAI, after capturing the appropriate ok_code (sy-ucomm), you branch to the SAVE option. There you call out a subrotuine. say PERFORM bdc_save_VF21.
Inside this subroutine write your logic. What happens is the transaction VF21 gets updated with your bdc code with the help of CALL TRANSACTION. Check out in debugging.
Also you can see by making the mode in call transaction to All screen mode 'A'.
Please let me know if you can succeed in this.
Award me if this is helpful to you!
If you require further help, please send me your mail id.. i'll send some code to you.
Regards,
Ananth
Edited by: Anantharamakrishnan Venkatesan on Jan 9, 2008 5:31 PM

Similar Messages

  • Is it possible to print the current screen in Module pool program(Dynpro)?

    Is it possible to print the current screen in Module pool program(Dynpro)?
    I create a Module pool program , and customer hope can print the screen when they click print button, Is it possible?

    Does the customer want a screen shot or what? Please elaborate on your requirement.
    Maybe you should create a smartform first, which is called when one clicks on print button. But in fact, we need a bit more info than this.

  • Is it possible to save a variant in Module Pool program

    Hi,
    We have got a requirement to save a Variant for the user selections in Module Pool Program. Is it possible to save a variant in a Module Pool Program?
    Please let me know how to do that if it is possible.
    Thanks in Advance.

    hi Dagny,
      You can't have variants for module pool. It is possible only for selection screen.
    You have following alternatives :-
    1. Create a report with same selection screen as you have now in module pool.
    And then make a call screen to your intial module pool.
    In this way you can all the advantage of variants as well as module pool.
    OR
    2. Create a transaction variant using transaction SHDO.
    Hope it is helpful.
    and do search the form , it is already answered before.
    regards
    venkat

  • Use of "Pool Table(s)" in Module Pool Program

    Hi,
    I often see/hear that Pool tables play an important role in Module Pool Programs.
    anybody please explain me how Pool tables are used in Module Pools?? => Did you look for any documentation?
    if possible with code snippets. =>NO.
    Thanks,
    Kranthi.
    Edited by: kishan P on Nov 14, 2010 7:23 PM

    Hi,
    I often see/hear that Pool tables play an important role in Module Pool Programs.
    anybody please explain me how Pool tables are used in Module Pools?? => Did you look for any documentation?
    if possible with code snippets. =>NO.
    Thanks,
    Kranthi.
    Edited by: kishan P on Nov 14, 2010 7:23 PM

  • How to validate the field values in module pool program?

    Hi Guys
         I am working with module pool programming.
         Here I want to validate the fields like below.
         with out filling all the fields if I click SAVE option it has to show a message that all fields has to be filled.  This can be done by checking all the fields individually.
         I think it can be done through <b>LOOP AT SCREEN ......ENDLOOP</b>. sequence.
         If it is possible, can anyone help me?

    You need to write the Module in between the CHAIN and ENDCHAIN statment in SE51
    If you send a warning or error message from a module <mod> that you called using a FIELD statement as follows:
    CHAIN.
    FIELD: <f1>, <f 2>,...
    MODULE <mod1>.
    FIELD: <g1>, <g 2>,...
    MODULE <mod2>.
    ENDCHAIN.
    all of the fields on the screen that belong to the processing chain (all of the fields listed in the field statements) are made ready for input again. Other fields are not ready for input. Whenever the MODULE statement appears within a processing chain, even if there is only one FIELD attached to it, all of the fields in the chain (not only the affected field) are made ready for input again, allowing the user to enter new values. If the fields in the processing chain are only checked once, the PAI processing continues directly after the FIELD statement, and the preceding modules are not called again.
    Look at the DEMO program DEMO_DYNPRO_FIELD_CHAIN.
    ashish

  • Runtime errors in module pool programming

    HI all,
    I have done a module pool program for invoice tracking level wise.
    I am encountering a runtime error, LIST_TOO_MANY_LPROS, while execution ie., for two and more than two updations of the database.
    The error analysis says that "At present, the maximum permitted number of nested screen levels is restricted to 50".
    Short Text :- "No further list processing possible".
    Can anyone please come out with a solution for this problem.
    regards
    samarendra.
    Edited by: samarendra penugonda on Nov 5, 2008 5:03 AM

    Hi
    U should replace the comand CALL SCREEN with LEAVE TO SCREEN.
    The command CALL SCREEN create an internal mode to link the calling screen to called screen automatically: in this way when it needs to back to calling screen it doesn't need to specify the screen number but only to use:
    - LEAVE TO SCREEN 0.
    or
    - SET SCREEN 0. LEAVE SCREEN.
    Now if you use  LEAVE TO SCREEN, u need to indicate the screen when it needs to back to calling screen:
    - Go from 100 to 200
    LEAVE TO SCREEN 200. (Instead of CALL SCREEN 200)
    - Back to 100.
    LEAVE TO SCREEN 100. (Instead of LEAVE TO SCREEN 0)
    Max

  • Error in module pool program

    Hi All,
    I have created 1 module pool program with screen no. 0100. But the statement CALL SCREEN 0100 is not getting executing its showing error i.e ' statement cannot be accessable' even i have created and activated the sceen 0100.
    Thanks...
    kiran

    Hi kiran,
    Open you program in se38 menu bar -> GOTO   -> ATTRIBUTES and check wheather it is  executable program or module pool program.
    if it is exeutable program then u can call the screen 0100 as ur intial screen. if not ur given type as module pool then u have to create a transaction in SE93 and give the screen name in that and prgoram name then it will display the screen which u hv created .
    if you want to show the screen 0100 as ur initial sceen in module pool program without using transaction it is not possible so use either executable program and use the stament call screen 0100.
    <b>reward if useful </b>
    Regards,
    sunil kairam.

  • How to Use F4 help in Module Pool Programming??????

    Hi Friends,
    This is Jagadeesh, I have an issue Module Pool Programming. Any of you can go through on this and can give an required answer.
    Issue is as follows,
    I have an Input/Output field for that i need to give f4 help, based on that field the related data should sit in to my table control. The thing is there is no relation between the input/output field and the table control fields.
    Is this possible? If so how can i do this.

    Hi Jagadeesh,
    For F4 Values on Screen:
    PROCESS ON VALUE_REQUEST
    using module call starting with FIELD i.e FIELD field MODULE module
    There are number of function modules that can be used for the purpose, but these
    can fullfill the task easily or combination of them.
    DYNP_VALUE_READ
    F4IF_FIELD_VALUE_REQUEST
    F4IF_INT_TABLE_VALUE_REQUEST
    POPUP_WITH_TABLE_DISPLAY
    DYNP_VALUE_READ
    This function module is used to read values in the screen fields. Use of this
    FM causes forced transfer of data from screen fields to ABAP fields.
    There are 3 exporting parameters
    DYNAME = program name = SY-CPROG
    DYNUMB = Screen number = SY-DYNNR
    TRANSLATE_TO_UPPER = 'X'
    and one importing TABLE parameter
    DYNPFIELDS = Table of TYPE DYNPREAD
    The DYNPFIELDS parameter is used to pass internal table of type DYNPREAD
    to this FM and the values read from the screen will be stored in this table.This
    table consists of two fields:
    FIELDNAME : Used to pass the name of screen field for which the value is to
    be read.
    FIELDVALUE : Used to read the value of the field in the screen.
    e.g.
    DATA: SCREEN_VALUES TYPE TABLE OF DYNPREAD ,
    SCREEN_VALUE LIKE LINE OF SCREEN_VALUES.
    SCREEN_VALUE-FIELDNAME = 'KUNNR' . * Field to be read
    APPEND SCREEN_VALUE TO SCREEN_VALUES. * Fill the table
    CALL FUNCTION 'DYNP_VALUES_READ'
    EXPORTING
    DYNAME = SY-CPROG
    DYNUMB = SY-DYNNR
    TRANSLATE_TO_UPPER = 'X'
    TABLES
    DYNPFIELDS = SCREEN_VALUES.
    READ TABLE SCREEN_VALUES INDEX 1 INTO SCREEN_VALUE.Now the screen value for field KUNNR is in the SCREEN_VALUE-FIELDVALUE and can be used for further processing like using it to fill the internal table to be used as parameter in F4IF_INT_TABLE_VALUE_REQUEST ETC.
    F4IF_FIELD_VALUE_REQUEST
    This FM is used to display value help or input from ABAP dictionary.We have to pass the name of the structure or table(TABNAME) along with the field name(FIELDNAME) . The selection can be returned to the specified screen field if three
    parameters DYNPNR,DYNPPROG,DYNPROFIELD are also specified or to a table if RETRN_TAB is specified.
    CALL FUNCTION 'F4IF_FIELD_VALUE_REQUEST'
    EXPORTING
    TABNAME = table/structure
    FIELDNAME = 'field name'
    DYNPPROG = SY-CPROG
    DYNPNR = SY-DYNR
    DYNPROFIELD = 'screen field'
    IMPORTING
    RETURN_TAB = table of type DYNPREAD
    F4IF_INT_TABLE_VALUE_REQUEST
    This FM is used to dsiplay values stored in an internal table as input
    help.This FM is used to program our own custom help if no such input help
    exists in ABAP dictionary for a particular field. The parameter VALUE_TAB is used to pass the internal table containing input values.The parameter RETFIELD
    is used to specify the internal table field whose value will be returned to the screen field or RETURN_TAB.
    If DYNPNR,DYNPPROG and DYNPROFIELD are specified than the user selection is passed to the screen field specified in the DYNPROFIELD. If RETURN_TAB is specified the selectionis returned in a table.
    CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
    EXPORTING
    RETFIELD = field from int table whose value will be returned
    DYNPPROG = SY-CPROG
    DYNPNR = SY-DYNNR
    DYNPROFIELD = 'screen field'
    VALUE_ORG = 'S'
    TABLES
    VALUE_TAB = internal table whose values will be shown.
    RETURN_TAB = internal table of type DDSHRETVAL
    EXCEPTIONS
    parameter_error = 1
    no_values_found = 2
    others = 3.
    POPUP_WITH_TABLE_DISPLAY
    This FM is used to display the contents of an internal table in a popup window.The user can select a row and the index of that is returned in the CHOISE
    parameter.The VALUETAB is used to pass the internal table.
    A suitable title can be set using TITLETEXT parameter. The starting and end position of the popup can be specified by the parameters STARTPOS_COL / ROW and ENDPOS_ROW / COL .
    CALL FUNCTION 'POPUP_WITH_TABLE_DISPLAY'
    EXPORTING
    ENDPOS_COL =
    ENDPOS_ROW =
    STARTPOS_COL =
    STARTPOS_ROW =
    TITLETEXT = 'title text'
    IMPORTING
    CHOISE =
    TABLES
    VALUETAB =
    EXCEPTIONS
    BREAK_OFF = 1
    OTHERS = 2.
    e.g.
    DATA: w_choice TYPE SY-TABIX.
    DATA: BEGIN OF i_values OCCURS 0 WITH HEADER LINE,
    values TYPE I,
    END OF i_values.
    PARAMETRS : id TYPE I.
    AT SELECTION-SCREEN ON VALUE-REQUEST FOR id
    i_values-values = '0001'.
    APPEND i_values.
    i_values-values = '0002'.
    APPEND i_values.
    i_values-values = '0003'.
    APPEND i_values.
    i_values-values = '0004'.
    APPEND i_values.
    CALL FUNCTION 'POPUP_WITH_TABLE_DISPLAY'
    EXPORTING
    ENDPOS_COL = 40
    ENDPOS_ROW = 12
    STARTPOS_COL = 20
    STARTPOS_ROW = 5
    TITLETEXT = 'Select an ID'
    IMPORTING
    CHOISE = w_choice
    TABLES
    VALUETAB = i_values
    EXCEPTIONS
    BREAK_OFF = 1
    OTHERS = 2.
    CHECK w_choice > 0.
    READ TABLE i_values INDEX w_choice....now we can process the selection as it is contained
    ...in the structure i_values.
    Other FM that may be used to provide input help is HELP_START .
    regards,
    Dj
    reward for all useful answers.

  • Select-options in module pool programming

    hi,
       I need to have four fields as part of my layout that are select-options fields with multiple values entry options. Since layout doesnt have 'select-options" functionality, i defined it from the module pool program, ie: I wrote a  selection screen in the PBO module. The problem is if i make any changes to the code, the layout changes back to the previuos format.
    Is there any way in which i can combine selection-screen logic with my layout.
    Thanks,
    Sruthy

    HI
    GOOD
    Selection Screen Version
    Only for Executable Programs
    If you do not specify a selection screen version, the system automatically creates a selection screen based on the selection criteria of the logical database and the parameters and select-options statements in the program.
    If you want to use a different selection screen of the logical database, enter a number in this field. The number must be smaller than 1000 and correspond to an additional selection screen of the logical database. The possible values help displays a list of available selection screens. You can also look in the selection include of the logical database (program DBxxxSEL, where xxx is the name of the logical database).
    Tomislav
    1. In the top include define the selection screen with
    selection-screen begin of screen 9250 as subscreen.
    SELECT-OPTIONS analyt FOR ztv_cc02-zd_mumla .
    selection-screen end of screen 9250.
    2. Using the screen painter create a subscreen area in
    the main screen where you want to have this.
    3. Then, in the screen flow logic code as follows:
    PROCESS BEFORE OUTPUT.
    MODULE STATUS_1000. etc
    call subscreen SUB1 including 'PROGRAM NAME' '9250'.
    PROCESS AFTER INPUT.
    module exit at exit-command. etc.
    call subscreen SUB1.
    THANKS
    MRUTYUN

  • Module Pool Programming - Calling SAP Standard Text Screen

    Hi Gurus
    I am working on Module Pool Programming...In the one of the screen there is a column named "Description"  where I need to keep a Button to call a SAP standard text editing screen and what ever information I enter in the field should be downloadable
    is this option possible?If so...Plz send me the Sample code
    Thanks
    Ganesh

    Hi Gani,
    I can help you till getting the text editor in your module pool program.
    TOP
    PROGRAM  ZREDDY_TEXT.
    constants: line_length type i value 132.
       data:
    reference to wrapper class of control
       g_editor type ref to cl_gui_textedit,
    reference to custom container: necessary to bind TextEdit Control
       g_editor_container type ref to cl_gui_custom_container,
       g_repid like sy-repid,                        " getting program name
       g_ok_code like sy-ucomm,                " return code from screen
       g_mytable(132) type c occurs 0,        " getting the text of table
       g_mycontainer(30) type c,                " string for the containers
       v_result(256) type c,                        " getting the text of table control
       gw_thead like thead,                        " for header information
       it_line type table of tline with header line. " internal table of type tline
    PBO
    MODULE STATUS_0900 OUTPUT.
      SET PF-STATUS 'ZTEXT'.
    SET TITLEBAR 'xxx'.
    if g_editor is initial.
    create control container
       create object g_editor_container
       exporting
       container_name = 'CUSTOM_CONTROL' " Make sure when you create custom container in layout give name as Custom container
       exceptions
       cntl_error = 1
       cntl_system_error = 2
       create_error = 3
       lifetime_error = 4
       lifetime_dynpro_dynpro_link = 5.
       g_mycontainer = 'CUSTOM_CONTROL'.
    create calls constructor, which initializes, creates and links
    TextEdit Control
      create object g_editor
       exporting
       parent = g_editor_container
       wordwrap_mode =
    cl_gui_textedit=>wordwrap_off
       cl_gui_textedit=>wordwrap_at_fixed_position
    cl_gui_textedit=>WORDWRAP_AT_WINDOWBORDER
       wordwrap_position                      = line_length
       wordwrap_to_linebreak_mode     = cl_gui_textedit=>true.
       refresh g_mytable.  " to initialize table upon OK_CODE 'BACK' at PAI
       endif.
    ENDMODULE.                 " STATUS_0900  OUTPUT
    Cheers!!
    Balu
    Edited by: Balu CH on Oct 22, 2008 8:55 PM

  • Online Background job for Module pool program

    Hi,
        I need to process the dialog program in background. Normally for any executable report programs by default we will have that functionality. But i need the same functionality for my module pool program. User needs 2 execute buttons - one is for direct excute (foreground execute) and the other one is for back ground processing.
       I tried with the 3 function modules job_open, job_submit & job_close. But i am keep on getting some issues and i am not sure how those will work because i wrote all the validations in direct exucte user command, now if user clicks on Background how that logic will be called and how it will be processed.
    Can any one give your valuable suggestions.
    regards
    Jaya

    Hi
    Create a Transaction code for this Program.
    Then implement the BDC Code to Process the SCreens with the Required input Values.
    Schedule this BDC Session in Backgound using RSBDCSUB.
    Reward if usefull

  • Table Control in Module Pool Programming

    In my Module Pool program I have created a Table Control on my screen. In my Table one column is the Checkbox. When I make changes in any of the Checkbox and scroll the Table or scroll with mouse,the data is lost.I am updating the database table and for that I have created a 'SAVE' button.But to make the changes I have to Scroll the Table on the screen and the changed data is lost.
    Please guide me or if possible then tell me the Flow Logic of Module Pool with Table Control??
    Thanks for the Help....

    PROCESS BEFORE OUTPUT.
    MODULE INITIALIZE.
    *&spwizard: pbo flow logic for tablecontrol 'TBLALLOC_CYC'
      module TBLALLOC_CYC_change_tc_attr.
    *&spwizard: module TBLALLOC_CYC_change_col_attr.
      loop at   GT_NEW_ALLOC
           into GT_NEW_ALLOC_WA
           with control TBLALLOC_CYC
           cursor TBLALLOC_CYC-current_line.
        module TBLALLOC_CYC_get_lines.
    *&spwizard:   module TBLALLOC_CYC_change_field_attr
      endloop.
    MODULE STATUS_9003.
    PROCESS AFTER INPUT.
    MODULE USER_COMMAND_9003.
    *MODULE USER_COMMAND_9003.
    *&spwizard: pai flow logic for tablecontrol 'TBLALLOC_CYC'
      loop at GT_NEW_ALLOC.
        chain.
          field GT_NEW_ALLOC_WA-/BIC/ZALLOCCYC.
          field GT_NEW_ALLOC_WA-/BIC/UFACT_FLG.
          field GT_NEW_ALLOC_WA-CHANGEDBY.
          field GT_NEW_ALLOC_WA-CH_ON.
          field GT_NEW_ALLOC_WA-/BIC/ECHAT.
          module TBLALLOC_CYC_modify on chain-request.
        endchain.
      endloop.
    module TBLALLOC_CYC_user_command.
    *&spwizard: module TBLALLOC_CYC_change_tc_attr.
    *&spwizard: module TBLALLOC_CYC_change_col_attr.
    module TBLALLOC_CYC_user_command.
    MODULE USER_COMMAND_9003.
    MODULE INITIALIZE OUTPUT.
    At the time of initialization of the screen data is to be displayed
    by calling Function Module ZUFACTS_FETCH_ALLOC_CYC.
    CALL FUNCTION 'ZUFACTS_FETCH_ALLOC_CYC'
      TABLES
        T_ALLOC       = GT_NEW_ALLOC
    Pass the value displayed in Internal Table GT_OLD_ALLOC.
    GT_OLD_ALLOC[] = GT_NEW_ALLOC[].
    MOVE GT_OLD_ALLOC TO GT_OLD_ALLOC.
    *****Initialize the ok_code.
    CLEAR OK_CODE .
    ENDMODULE.                 " INITIALIZE  OUTPUT
    MODULE USER_COMMAND_9003 INPUT.
    CASE : OK_CODE.
      WHEN 'SAVE'.
        CALL FUNCTION 'ZUFACTS_UPDATE_ALLOC_CYC'
          TABLES
            T_OLD_ALLOC                 = GT_OLD_ALLOC
            T_NEW_ALLOC                 = GT_NEW_ALLOC
          EXCEPTIONS
            NO_FIELD_UPDATED            = 1
            UNSUCCESSFUL_UPDATION       = 2
            OTHERS                      = 3
        IF SY-SUBRC = 1.
          MESSAGE I005 .
        MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
               WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
        ENDIF.
        IF SY-SUBRC = 2.
          MESSAGE E006.
        ENDIF.
      WHEN 'CANCEL' OR 'BACK' OR '%EX' OR 'RW'.
        LEAVE TO SCREEN 0.
      ENDCASE.
      CLEAR OK_CODE.
    ENDMODULE.                 " USER_COMMAND_9003  INPUT

  • How to store the variant in Module Pool Programming

    Hi,
       I have the module pool program which is having 4 screen. depends on the first and second screen, third screen is called. i want to store the data of third screen to the variant. All the screen except first screen is a subscreen.
    Regards,
    Dhiraj.

    Hi Dhiraj,
    You can create a variant only for a Report. Module Pool Programs require a dialog with the user & hence creating a varint is not possible. You  can possibly create some Parameter IDs & default values in there.
    Regards,
    Suresh Datti

  • Entering values in MARA table using module pool programming

    Hi All,
    I need a help from you all. I want to enter the values in the MARA table using module pool programming.
    Can you please give me the detailed approach and if possible then code also as i am new to ABAP.
    Thanks in Advance

    Create the screen fields with ref to field in MARA table, once data is entered on screen by user then fill appropriate structure of FM BAPI_MATERIAL_SAVEDATA. If call to Fm BAPI_MATERIAL_SAVEDATA is successful then call FM BAPI_TRANSACTION_COMMIT to make changes permanent in database .

  • Call module  pool program from report

    Hi,
    Iam calling module pool program from a report, while passing values to module pool program, one of the field doesn't have parameter id, how to pass value to it. and also please let me know how to call module pool program.
    Appreciate your help.
    Thanks in advance
    jog

    Hi Jog,
    Module pool program can be run in background. Most of the BDC's are written on module pool programs and they run in the background.
    Also regarrding copying the standard program, if you require to make the changes for every user then instead of copying the program make modification in standard program as copied program are much harder to maintain during support pack implementation or upgrade that modification to standard program.
    Reward points if useful.
    Regards,
    Atish

Maybe you are looking for