Function pool relation to Function group

Hi friends,
Could you please clarify for me how the 2 are related? I can understand function group but not sure what is function pool and how it relates to function group and function module.
I have searched the online help but its not clear to me. Please give me simpler explanations.
Thanks
Sri

Hi Sri - When you interact with a function group you are using an interface which uses the ABAP code contained in a function pool. A function group will always be in only one function pool and a function pool will always have only one function group. The function pool is the parent program of the function group. Each function module is an ABAP include in the parent program. Likewise when you interact with the function module you are using an interface that uses the ABAP include.
When you debug into a function module you will always see the main program as the function pool and the source code is the ABAP include of the function module because that is the code that is being executed. Usually SAPL prefixes the function group to create the name of the function pool.
Hope this helps.
Andy

Similar Messages

  • Where to set up a TYPE-POOL Declaration in a Function Group ?

    Hi,
    I ve got a Function Group.
    I set up a Function Module in the Function Group.
    I must use  TABLES I_T_SELECT TYPE SBIWA_T_SELECT.
    I get the error:
    Type pool SBIWA has not been declared
    Message no. FL031
    Diagnosis
    You used a type from type pool & in the interface of a function module.
    Procedure
    For the program to be syntactically correct, you must
    declare the type pool in the global data declaration of the
    function group using the 'TYPE-POOLS: &.' statement.
    Where / How do I set up a Type Pool in the global data declaration of the
    function group ?
    Where / what is the global data Declaration of the Function Group ?
    Thank You
    Best Wishes
    Martin

    Hello Martin,
    First off:
    TABLES I_T_SELECT TYPE SBIWA_T_SELECT.
    Correct me if I'm mistaken here, but tables is expecting a name of a DDIC structure. It is then creating a work area using that structure.
    If you have to declare an internal table, the correct code would be:
    DATA i_t_select TYPE TABLE OF sbiwa_t_select.
    Or:
    TABLES sbiwa_t_select.
    Regarding your questions:
    A global data declaration of a function group is just what it says, a point where you can declare your data usable for the whole function group.
    This is usually an Include.
    That said, you can fix your issue by creating an Include in your function group.
    Within that include you have to write:
    TYPE-POOLS: pool1, pool2, pool3.
    or, in case you only have one type pool:
    TYPE-POOLsbiwa
    After creating the include, you have to point your function module to that file.
    INCLUDE include_name.
    Kind regards,
    Michael

  • Function Pool & Function Group

    Hi Abapers,
    I need some information regarding the function group & function pool are client dependant or independant ?
    And where we can check it ?
    Thanks
    Nani

    Hi,
    Function Pool and Function Group are one and the same thing.
    Just when we view the Program for the Function Group it shows as Function Pool. When we view the Function group associated with Function Module, it displays Function group.
    This can be viewed using SE37--> Goto --> Function Groups --> Display/Create/Change
    The Program can be viwed using SE38.
    Juts concatenate SAPL before the Function Group name and view it in SE38.
    Regards
    Himanshu

  • Function group in tablenaintenance generator.

    hi experts,
           can anybody please tell me why we create a function group
          while creating a table maintenance generator?
    what is the utility of creating a function group.
    regards
    pankaj

    Function Groups
    Function groups are containers for function modules. You cannot execute a function group. When you call a function module, the system loads the whole of its function group into the internal session of the calling program (if it has not already been loaded). For further information, refer to Organization of External Procedure Calls.
    The following diagram shows the structure of a function group: The name of a function group, fgrpcan be up to 26 characters long. This is used by the system to create the components of the group (main program and corresponding include programs). When you create a function group or function module in the Function Builder , the main program and include programs are generated automatically.
    The main program SAPLfgrp contains nothing but the INCLUDE statements for the following include programs:
    キ LfgrpTOP. This contains the FUNCTION-POOL statement (equivalent for a function group of the REPORT or PROGRAMstatement) and global data declarations for the entire function group.
    キ LfgrpUXX. This contains further INCLUDEstatements for the include programs LfgrpU01, LfgrpU02,... These includes contain the actual function modules.
    キ The include programs LfgrpF01, LfgrpF02,... can contain the coding of subroutines that can be called with internal subroutine calls from all function modules of the group.
    The creation of these INCLUDE programs is supported from the ABAP Workbench by forward navigation (for example creation of a subroutine include by double clicking on the name of a subroutine in a PERFORM statement within a function module).
    You cannot declare a COMMON PART in a function group. Function groups have their own table work areas (TABLES). Function groups encapsulate data. In this respect, they are a precursor of ABAP Objects (see From Function Groups to Objects ).
    All of the function modules in a function group can access the global data of the group. For this reason, you should place all function modules that use the same data in a single function group. For example, if you have a set of function modules that all use the same internal table, you could place them in a function group containing the table definition in its global data.
    Function groups, like executable programs and module pools, can contain screens (selection screens and lists) as components. User input is processed either in dialog modules or in the corresponding event blocks in the main program of the function group. There are special include programs in which you can write this code. In this way, you can use function groups to encapsulate single screens or screen sequences.
    In SAP, it is a function group - instead of function - that is loaded into active memory.
    Function ( or function module ) is the one that you call from the program to do things.
    A function group contains functionally related function modules, global variables and procedures .
    To display / edit function module you use SE37,
    To display / edit function group you use SE80 .
    Reward if found helpful,
    regards
    palak

  • Function Moudule not showing under the Function Group in SE80

    Hi guys
    I  transported a couple of newly developed Function Modules to the R3Q ( Quality System) under an exsitng Function Group. the FM are all transported perfectly and the report is also working but in SE80 where u can see a function group and all its related objects i dont see the name of my newly developed FM. Why is that?
    I tried transporting my  Function Group etc.. but still i am not able to see my new FM's.
    When i go to my FM's attributes tab, it shows its under the right function Group. but only in SE80 its not showing up.
    Any ideas y ?
    Thanks
    Moderator message - Please do not use txtspeak in the forum
    Edited by: Rob Burbank on Jul 18, 2011 9:52 AM

    Hi Adnan;
    Are you sure you haven't dont release second or more requests for FG?
    If you have more requests, your FG may hasn't be last FM list.
    Yo can check  below include in SAPLZ<FG> function pool.
      INCLUDE LZ<FG>UXX.                       " Function Modules
    Are you seeing last FM list?
    Best regards.

  • Function Groups

    Hi....
       Any body send me what are the uses of the include programs generates function groups while creating...?
       And what is the Difference between those two?
       And in which cases we have to go for change them?
       Thank you,
       Naveen Inuganti.

    Hi
    Include Programs
    Include programs are global R/3 Repository objects. They are solely for modularizing source code, and have no parameter interface.
    They have the following functions:
    Library: Include programs allow you to use the same source code in different programs. For example, this can be useful if you have lengthy data declarations that you want to use in different programs.
    Order. Include programs allow you to manage complex programs in an orderly way. Function groups and module pools use include programs to store parts of the program that belong together. The ABAP Workbench supports you extensively when you create such complex programs by creating the include programs automatically and by assigning them unique names. A special include is the TOP include of a program. If you name it according to the naming convention, it is always included in program navigation and in the syntax check.
    Creating Your Own Include Programs
    If you create an include program yourself, you must assign it the type I in its program attributes. You can also create or change an include program by double-clicking on the name of the program after the INCLUDE statement in your ABAP program. If the program exists, the ABAP Workbench navigates to it. If it does not exist, the system creates it for you.
    An include program cannot run independently, but must be built into other programs. Include programs can contain other includes.
    The only restrictions for writing the source code of include programs are:
    Include programs cannot call themselves.
    Include programs must contain complete statements.
    You must ensure that the statements of your include program fit logically into the source code of the programs from which it is called. Choosing Check while editing an include program in the ABAP Editor is normally not sufficient for this.
    se37 funcation group used for funcation module store on sap library.
    Function Groups
    function group creates two includes.
    include lfgidtop.
    include lfgiduxx. wher fgid is function group
    The first include program-lfgidtop-is known as the top include. Within it you can place global data definitions. These are data definitions that are global to all function modules within the group.
    The second include program-lfgiduxx-is known as the UXX. You are not allowed to modify the UXX. The system will automatically place an include statement in the UXX for each function module you create in this function group. For the first function module, the statement include lfgidu01 will be inserted into the UXX. When you create a second function module in this group, the system will add a second statement: include lfgidu02.
    Function groups are containers for function modules. You cannot execute a function group. When you call a function module, the system loads the whole of its function group into the internal session of the calling program (if it has not already been loaded). For further information, refer to Organization of External Procedure Calls.
    The following diagram shows the structure of a function group: The name of a function group, fgrpcan be up to 26 characters long. This is used by the system to create the components of the group (main program and corresponding include programs). When you create a function group or function module in the Function Builder , the main program and include programs are generated automatically.
    The main program SAPLfgrp contains nothing but the INCLUDE statements for the following include programs:
    In SAP, it is a function group - instead of function - that is loaded into active memory.
    Function ( or function module ) is the one that you call from the program to do things.
    A function group contains functionally related function modules, global variables and procedures .
    To display / edit function module you use SE37,
    To display / edit function group you use SE80 .
    Reward If Helpfull,
    Naresh.

  • Maintenance View Function group transport,

    Dear all,
    I've made some change on the screen related to my Z maintenance view in dev. It did not requested for a transport order. Therefore I am wondering if there would be any way to transport the whole Maintenance view without having to re create it.
    Regards.

    Hi Nikhil,
    I've tried using as u said the Transport Organizer from se80 but how can I add all object related to my maintenance view to the transport order from here. I tried with Include object then freely selected object but I 'm not sure which object to chose to make the list complete (function groups / tables...)
    Regards

  • Transporting a Function Group

    Hi All,
    I created a new function group and few function modules within it. Function group is attached to one transport request. But for some reasons I want  to transport it with some different transport request. So I deleted it from original request.
    But now when I am trying to activate the Function Group, It is not attaching the associated function modules and includes within the function group to new transport request. It is only attaching Function group Text and Main program to transport.
    Please let me know the way by which I can attach complete function group its related function modules and includes to one transport.
    Thanks,
    Harkamal
    Fixed subject line
    Message was edited by:
            Rich Heilman

    Hi Rich,
    It is not attaching the Function group, it is attaching only "Function Group Text".
    Thanks,
    Harkamal

  • Upload / download gui-status/dynpro when function group

    Hi All,
    I'm coding a program where I can download and upload reports and module pools but I tried to do the same with function groups and I found It is different to upload dynpro and gui staus when the objet to generate is a function group.
    Could anyone help me a little in order to complete and finish this issue?
    Below is shown the routines I coding in order to achive that:
    For gui-status uploading I use:
    CALL FUNCTION 'RS_CUA_INTERNAL_WRITE'
        EXPORTING
          program   = prog
          language  = sy-langu
          tr_key    = tr_key
          adm       = adm4
        TABLES
          sta       = sta4
          fun       = fun4
          men       = men4
          mtx       = mtx4
          act       = act4
          but       = but4
          pfk       = pfk4
          set       = set4
          doc       = doc4
          tit       = tit4
          biv       = biv46c
        EXCEPTIONS
          not_found = 1
          OTHERS    = 2.
    For screen uploading I use:
    GENERATE DYNPRO gs_d020s gt_d021s gt_d022s gt_d023s  ID dynp_id
                          MESSAGE mess  LINE line   WORD    word.
        IF sy-subrc = 0.
          EXPORT DYNPRO gs_d020s gt_d021s gt_d022s gt_d023s  ID dynp_id.
        ENDIF.
    But both options don't work when uploading function groups
    Regards...
    Edited by: Rob Burbank on Jun 1, 2011 11:58 AM
    Edited by: Kenneth Castañeda on Jun 2, 2011 7:31 PM
    Edited by: Kenneth Castañeda on Jun 2, 2011 7:34 PM

    Hi Kenneth,
    sorry, it is really not obvious that [there is a link behind zsaplink|http://code.google.com/p/saplink/].
    From the link:
    "SAPlink is an open source project that aims to make it easier to share ABAP developments between programmers. It provides the ability to easily distribute and package custom objects."
    This software allows you to up- and download all kinds of SAP objects. It is distributed under the GNU General Public License.
    I think this is exactly what you are looking for - or I did not understand your question.
    Regards,
    Clemens

  • What do you mean by changing a Function Group in upgradation projects

    Hi ABAPers,
    I am new to upgradation project will any one help me in understanding the concepts like.
    1) what do you mean by changing a Function Group in upgradation projects
    2) what is the relation b/w the Maintenance view and function group
    3) what happens when we regenerate the table maintenance in se11
    4) how can i restore the changes that have done to FG after regenerating
    5) Suggest me is there any Tcode or procedure to see the code in Remote system (like how we compare the versions of remote system)
    Could you please help me ..
    Any relevant docs you can send it to  [email protected]
    Thanks in advance..

    Hello Smriti,
              Exploding a BOM means to display all the components and sub-components for a BOM in a particular transaction (eg) VA01,CO01,ME22N etc..
    You can use the SAP FM's depend on the Functionality:
    CS_BOM_EXPLOSION               General BOM explosion
    CS_BOM_EXPLOSION_EQUI          BOM explosion - initial screen: equipment
    CS_BOM_EXPLOSION_MAT           BOM explosion (old version); as of 3.0, use CS_BOM_EXPL_MAT_V2
    CS_BOM_EXPL_EQU_V2             BOM explosion for equipment
    CS_BOM_EXPL_KND_V1             BOM explosion for material
    CS_BOM_EXPL_MAT_V2             BOM explosion for material
    CS_BOM_EXPL_PSP_V1
    CS_BOM_EXPL_TPL_V1             BOM explosion for functional location
    CSS7                           Explode BOM (Document)
    CS_BOM_EXPL_DOC_V1             BOM explosion: document sub-assemblies
    CS_BOM_EXPL_GNRL2_V1           General BOM explosion: document sub-assemblies
    CSSO
    CS_SO_MODE_BOM_EXPLOSION
    As per Garet in response to your question better talk to the Functional team to get the better underatanding for your requirement.
    Check the below link for more details on BOM:
    http://sap-img.com/sap-sd/what-is-bom-referring-to-sap-sd.htm
    Thanks,
    Greetson

  • How to create a transaction code for a function group with screen 100 as st

    Hello ,
    I have requirement where I need to create a function group and create screen 100, 200, 300 and include the function in the screens.
    Customer asked me to create a transaction with the screen 100 as the starting screen.
    Can you please let me know how to create a transaction code for a function group with screen 100 as starting screen.
    [ It is not a module pool program ].
    Thanks
    Prashanth.
    Moderator message - Please ask a specific question and do not ask the forum to do your work for you - post locked
    Edited by: Rob Burbank on Jun 2, 2009 11:49 AM

    Go to transaction SE93, enter a transaction code that you want and click on "create". Enter a text and select the "Transaction with Parameters" button. In the Default Values section, enter START_REPORT in the transaction field. Check the "skip initial screen" box. In the Name of Screen field section enter the following lines:
    Name of screen field:                               Value
    D_SREPOVARI-REPORTTYPE                RW
    D_SREPOVARI-REPORT                        ZPCA
    Save and transport accordingly.

  • Problem facing Transport of function group...

    Hi,
    I am trying to import function group from Development to Quality but I am facing problems.
    The Main program (Function pool) associated with Function group gets transported but not the function group.
    To transport Function group , I am going to se80 -> Edit object -> Function group name. Then it asks me for transport request.
    Now this new transport reuqest consists of function group texts and report name.
    After this transport request is released and moved to Q40, I find that only main program of function gorup is actually transported and not the function group.
    Please help me.
    Regards,
    Tushar.

    Hi Rajesh
    Please do the following steps to include your Function group into transport request,
    1) Go to SE09 and place the cursor on your request
    2) Go to 1st Menu option, Then to the option "Include Object" --> Freely selected objects
    3) There you select the option "Freely selected objects"
    4) For type "FUGR", give your function group name and then execute.
    5) Now Select the option "Save in Request".
    Cheers
    ~ Ranganath

  • Function Group

    Hi Guys,
    I have created a FunctionModule,assigned to a Function Group(lets take it up as FG123),and transported to quality without any error and activated.But the thing is,while excuting FunctionModule,am gettin an error msg tat Function group(FG123)contains error.What could be the problem?
    Please help me out in this regard.
    Warm Regards,
    Mohandoss P.

    Hi,
    Have you activated the function group?
    Why don't you create the function group with 'ZXXX
    Ok if it is activated what type of error it is giving?
    missing the include or what?
    Go to the function group & Function pool,
    And check all the include modules.
    You will come to know.
    Regards,
    madan.

  • Doubt in Selection-Screen for Program type "Function Group"

    Hi Gurus,
    I created a Function group in that i created one screen and writtem the Screen flow logic. In that screen I called a Function module "COMPLEX_SELECTIONS_DIALOG" For Creating a selection-Screen.
    The code snippet is like below.
    CASE ok_code .
        WHEN c_clk1.
          CALL FUNCTION 'COMPLEX_SELECTIONS_DIALOG'
         EXPORTING
           title                   = text-002
           text                    = 'Material Number'
           signed                  = 'X'
            lower_case              = ' '
            no_interval_check       = ' '
             just_display            = ' '          " Un commented by Srihari
             just_incl               = 'X'          " Un commented by Srihari
            excluded_options        =
            description             =
            help_field              =
            search_help             =
           tab_and_field           = st_tab
          TABLES
            range                   = r_matnr
         EXCEPTIONS
           no_range_tab            = 1
           cancelled               = 2
           internal_error          = 3
           invalid_fieldname       = 4
           OTHERS                  = 5.
    it works fine. But the problem is if i click the multiple selection button for the select-option in selection screen and enter the values and copy those value. In the multiple selection button green button is not coming like noram report selection-screen. Please remember I used the program type as "Function Group" not "Module Pool".
    Please send your suggestions.
    Thanks,
    Srihari.

    Ok, I am not 100% sure, if I understand you correctly, you said, you created one screen to 'simulate' a standard selection screen behavior without using select-options statement?
    If that's not correct, could you please post a few more details on what exactly you are doing.
    I had to 'simulate' a select-option behavior which I did as follows:
    - I created a range variable to store the values (s_ctby)
    - on the screen I defined the LOW (s_ctby-low), HIGH (s_ctby-high) and the multiple selection field pushbutton
    - In the PBO I set the icons for the multiple selection pushbutton
      READ TABLE s_ctby INDEX 2 TRANSPORTING NO FIELDS.
      IF sy-subrc NE 0.
        gv_createby = gc_icon_enter_data.
      ELSE.
        gv_createby = gc_icon_disp_data.
      ENDIF.
    - In the PBO make sure that any values entered on the screen are transferred to the range
    * transfer any changed values into the correct range for user transaction
    * (screen 0110) because that screen just 'simulates' a selection screen
    * so we have to make sure that any data the user enters in the selection
    * fields is passed into the appropriate ranges
      IF sy-tcode EQ gc_trans_user.
    *   created by
        IF NOT s_ctby-high IS INITIAL.
          s_ctby-sign   = c_i.
          s_ctby-option = c_bt.
          IF s_ctby[] IS INITIAL.
            INSERT s_ctby INDEX 1.
          ELSE.
            MODIFY s_ctby INDEX 1.
          ENDIF.
        ELSEIF NOT s_ctby-low  IS INITIAL AND
                   s_ctby-high IS INITIAL.
          s_ctby-sign   = c_i.
          s_ctby-option = c_eq.
          IF s_ctby[] IS INITIAL.
            INSERT s_ctby INDEX 1.
          ELSE.
            MODIFY s_ctby INDEX 1.
          ENDIF.
        ELSEIF s_ctby-low  IS INITIAL AND
               s_ctby-high IS INITIAL.
          DELETE s_ctby INDEX 1.
        ENDIF.
    - If the user hits the multiple selection pushbutton
        WHEN gc_fc_create_by.
    *     if the user hits the multiple selection button on the screen
    *     we call the standard SAP functionality to show the multiple
    *     selection popup SAP uses on a standard selection screen
          CALL FUNCTION 'COMPLEX_SELECTIONS_DIALOG'
            EXPORTING
              title             = text-t02
            TABLES
              range             = s_ctby
            EXCEPTIONS
              no_range_tab      = 1
              cancelled         = 2
              internal_error    = 3
              invalid_fieldname = 4
              OTHERS            = 5.
          IF sy-subrc NE 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.
    *     now update the header line so the screen fields display the correct values
          CLEAR s_ctby.
          READ TABLE s_ctby INDEX 1.
    Hope that helps,
    Michael

  • Error : Syntax check form not found in function group program

    Hi All,
    I have a function group ZMRMK. In its source code the function-pool SAPLZMRMK contains error
    "Form XYZ does not exits"
    There is an  include in SAPLZMRMK named  lzmrmkf01 : in this include there is an include lmrmkf02 . Here XYZ is called->
    perform XYZ.
    The form XYZ is written in LMRMKF16 and this include is  in function pool SAPLMRMK.
    Kindly suggest how to remove this error.

    Hi
    Yes you do
    But It seems many standard includes are missing in the Z-function group: perhaps this function group was created in another system or in another release?
    It's strange many includes are missing, this is a typical upgrade problem:
    A standard function group was copied, but only some components were copied, so the function group use Z-include and standard ones, now in the new system "old standard includes" calls new routine defined in new include, used in standard function group, but not in Z-function group.
    If it's so, you need to put the missing include manually
    Max

Maybe you are looking for