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
MartinHello 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
NaniHi,
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
pankajFunction 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 AMHi 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. -
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 -
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 HeilmanHi 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 PMHi 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 AMGo 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 -
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
-
I am under the impression that I can take a DVD, record it, edit it, and store it on my computer. I cannot find anything under 'recording' in search to help me out. Can someone lead me in the right direction?
-
i shifted from a windows to a mac.. I want to add songs to my ipod tpuch 4th gen.. but if i try to sync with itunes it says my songs will be replaced by the new songs.. Is there any way that i can have my previous data safe??
-
How to create parameter with multiple selection in a query (SQ02) ?
Hi Exports Do you know how to create parameter with multiple selection in a query (transaction SQ02)? thanks.
-
Localization doesn't work anymore
Hello I have an imac that suddendly stopped using localization. When I go to maps and try to mark the current location does not work. Google maps in safari says it is not available. I have location settings active in the system and the computer is co
-
Best approach to add MVs in OBIEE
Hi Gurus, Is there a best practice in adding Materialized Views in rpd. Rgds, Amit