Are Classes better than Function groups and Modules
Hi,
Are classes better than Function groups? For example if you want to execute something is back ground or use parallel processing you can't do it using classes. Even inside classes most of the places we use Function modules.
Then how classes are beneficial?
Regards,
Deepak Bhalla
Yes they are compared in the sense that the class and function group are the containers, and the methods and function modules are the interfaces in which you interact with the encapsulated data.
Again if you are developing an application in which you are not forced to push the processing to differenet work processes, then using classes/methods is preferrable. The reason I say this, is because anything coming from SAP will most likely be implemented as a class as opposed to a function group. This is not to say that SAP will not create new function modules, because of course there still is a use for them.
Regards,
Rich Heilman
Similar Messages
-
Function Group and Module Transport
Hi All,
I have created a new Function group and is part of transport request. Created new function modules and assigned to the same function group. When i see object list in SE09 for the transport request i see only function group, all the FM are part of same transportable package of Function group. Do i need to assign them manually in object list through SE09 as pseudo changes to FM is not capturing in the request.
Thanks in advance.
Regards
Kunal.There is no need to manually assign fm to fg. If you transport the fg , objects under the fg get transported automatically.
Next time if you changing only function module then your se09 entry will be
LIMU FUNC
a® -
Function Groups and Function Modules
Hi,
Can anyone give me the detail steps for creating Function Group and then from that function group creation of function module with example?
Regards,
ChandruHi,
Function Group creation -
A function group is a program that contains function modules. With each R/3 system, SAP supplies more than 5,000 pre-existing function groups.
In total, they contain more than 30,000 function modules. If the functionality you require is not already covered by these SAP-supplied function modules, you can also create your own function groups and function modules.
We can put all the relevant function modules under one function group and all the global variables can be declared in this FG.
FG Creation:
1) Function group can be created in SE80. There choose the 'Function Group' from the list of objects.
2) Then give a name for ur function group (starts with Y or Z) and press ENTER.
3) The click 'YES' in the create object dialog box and give a short desc. for this FG and save.
Function Module:
A function module is the last of the four main ABAP/4 modularization units. It is very similar to an external subroutine in these ways:
Both exist within an external program.
Both enable parameters to be passed and returned.
Parameters can be passed by value, by value and result, or by reference.
The major differences between function modules and external subroutines are the following:
Function modules have a special screen used for defining parameters-parameters are not defined via ABAP/4 statements.
tables work areas are not shared between the function module and the calling program.
Different syntax is used to call a function module than to call a subroutine.
Leaving a function module is accomplished via the raise statement instead of check, exit, or stop.
A function module name has a practical minimum length of three characters and a maximum length of 30 characters. Customer function modules must begin with Y_ or Z_. The name of each function module is unique within the entire R/3 system.
Defining Data within a Function Module
Data definitions within function modules are similar to those of subroutines.
Within a function module, use the data statement to define local variables that are reinitialized each time the function module is called. Use the statics statement to define local variables that are allocated the first time the function module is called. The value of a static variable is remembered between calls.
Define parameters within the function module interface to create local definitions of variables that are passed into the function module and returned from it (see the next section).
You cannot use the local statement within a function module. Instead, globalized interface parameters serve the same purpose. See the following section on defining global data to learn about local and global interface parameters.
Defining the Function Module Interface
To pass parameters to a function module, you must define a function module interface. The function module interface is the description of the parameters that are passed to and received from the function module. It is also simply known as the interface. In the remainder of this chapter, I will refer to the function module interface simply as the interface.
To define parameters, you must go to one of two parameter definition screens:
1) Import/Export Parameter Interface
2) Table Parameters/Exceptions Interface
Then in the FM interface screen, give the following
1) Import parameters
2) Export parameters
3) Changing parameters
Then give
1) Define internal table parameters
2) Document exceptions
You enter the name of the parameter in the first column and the attributes of the parameter in the remaining columns. Enter one parameter per row.
Import parameters are variables or field strings that contain values passed into the function module from the calling program. These values originate outside of the function module and they are imported into it.
Export parameters are variables or field strings that contain values returned from the function module. These values originate within the function module and they are exported out of it.
Changing parameters are variables or field strings that contain values that are passed into the function module, changed by the code within the function module, and then returned. These values originate outside the function module. They are passed into it, changed, and passed back.
Table parameters are internal tables that are passed to the function module, changed within it, and returned. The internal tables must be defined in the calling program.
An exception is a name for an error that occurs within a function module. Exceptions are described in detail in the following section.
Syntax for the call function Statement
The following is the syntax for the call function statement.
call function 'F'
[exporting p1 = v1 ... ]
[importing p2 = v2 ... ]
[changing p3 = v3 ... ]
[tables p4 = it ... ]
[exceptions x1 = n [others = n]].
where:
F is the function module name.
p1 through p4 are parameter names defined in the function module interface.
v1 through v3 are variable or field string names defined within the calling program.
it is an internal table defined within the calling program.
n is any integer literal; n cannot be a variable.
x1 is an exception name raised within the function module.
The following points apply:
All additions are optional.
call function is a single statement. Do not place periods or commas after parameters or exception names.
The function module name must be coded in uppercase. If it is coded in lowercase, the function will not be found and a short dump will result.
Use the call function statement to transfer control to a function module and specify parameters. Figure 19.9 illustrates how parameters are passed to and received from the function module.
sample FM
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
I_INTERFACE_CHECK = ' '
I_BYPASSING_BUFFER = ' '
I_BUFFER_ACTIVE = ' '
I_CALLBACK_PROGRAM = ' '
I_CALLBACK_PF_STATUS_SET = ' '
I_CALLBACK_USER_COMMAND = ' '
I_CALLBACK_TOP_OF_PAGE = ' '
I_CALLBACK_HTML_TOP_OF_PAGE = ' '
I_CALLBACK_HTML_END_OF_LIST = ' '
I_STRUCTURE_NAME =
I_BACKGROUND_ID = ' '
I_GRID_TITLE =
I_GRID_SETTINGS =
IS_LAYOUT =
IT_FIELDCAT =
IT_EXCLUDING =
IT_SPECIAL_GROUPS =
IT_SORT =
IT_FILTER =
IS_SEL_HIDE =
I_DEFAULT = 'X'
I_SAVE = ' '
IS_VARIANT =
IT_EVENTS =
IT_EVENT_EXIT =
IS_PRINT =
IS_REPREP_ID =
I_SCREEN_START_COLUMN = 0
I_SCREEN_START_LINE = 0
I_SCREEN_END_COLUMN = 0
I_SCREEN_END_LINE = 0
I_HTML_HEIGHT_TOP = 0
I_HTML_HEIGHT_END = 0
IT_ALV_GRAPHICS =
IT_HYPERLINK =
IT_ADD_FIELDCAT =
IT_EXCEPT_QINFO =
IR_SALV_FULLSCREEN_ADAPTER =
IMPORTING
E_EXIT_CAUSED_BY_CALLER =
ES_EXIT_CAUSED_BY_USER =
TABLES
t_outtab =
EXCEPTIONS
PROGRAM_ERROR = 1
OTHERS = 2
IF sy-subrc <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
Example
1 report ztx1905.
2 parameters: op1 type i default 2, "operand 1
3 op2 type i default 3. "operand 2
4 data rslt type p decimals 2. "result
5
6 call function 'Z_TX_DIV'
7 exporting
8 p1 = op1
9 p2 = op2
10 importing
11 p3 = rslt.
12
13 write: / op1, '/', op2, '=', rslt.
Regards,
Shanthi.P
Reward points if useful ****
Edited by: shanthi ps on Jan 26, 2008 12:03 PM -
What is the difference between function groups and Object Orientation
Hello all
I have read about this on the help.sap.com site, I still do not understand it completely, can some one explain me with a simple example please ? (Not the increment counter example please !).
Thanks a ton.
Rgds
SameerHello Sameer
When you call a module of a function group for the first time in your program then the entire function group is loaded. However, this can happen only once within your report and all global variables within the function group will have the same values all the time (except they are manipulated via fm's).
In contrast, you can create as many instances of the same class as you want and all of them can have different global attributes. And all these instances are independent of each other.
On the other hand, if fm_A changes global attributes of the function group and fm_B reads these attributes then fm_B read the changed values.
Or in other words:
Function Group = can be instantiated only ONCE
Class = can be instantiated unlimited
Regards
Uwe -
Dev Classes in a Function Group?
Can you have objects with different development classes in one Function Group? If so, any risks involved?
Thank-YouHello Ferry, SE03 or program RSWBO052 I believe will do the trick because I need to change Dev Classes to individual tables and objects as some in the Function Group have the correct Dev Class, others do not.
However, I do not see where I can change the dev Class of a table in SE80. The Go To Object Directrory Entry.Change, it seems, only allows me to change the Last Changed By field, and won't let me put in the new Dev Class name. the Dev Class name appears in the popup but I am not allowed to select it.
Thanks for your help. -
Has anyone experienced wrist pain with new mac computer...? if so what are suggestions other than warm up and cool down exercises..**
Very good advice but no one is asking for medical advice.... Was wondering if anyone had any ergonomic suggestions that may have worked for them.. ??
-
the activation screen(set up screen) for ios 5 and 6 kinda looks better than ios 7 and 8
So what? Do you want a prize for posting such an illuminating comment?
-
Function Group and Subroutines
Hi all,
I have two Function Groups.
I have a subroutine defined in one Function Group and want to use same subroutine in another Function Group.
Is there any way to do it, <u><b>without redefining same Subroutine in another Function Group?</b></u>Hi,
either define subroutines in include
and inlude in function group
include ztest.
perform abc .
perfrom add.
Function group ZFG
include ztest.
Function group ZFG1
include ztest.
<b> or</b>
perform test(prog1).
Regards
amole -
About function groups and includes?
I ahve created 1 function groupa nd module
then id int keep any thing in function module like tables,impot..exportsourcecode
i dint fill ..when im checking for errors its showing nothing but when activating its saying "report stmt is missing"
y this happening?
about includes..
I wanted to include one in other include
when im im wriitng select stmt in second include the error is
"stmt is not accessble"
pls clarify my doubts as soon as possibleHi,
When ever you execute or check it will give "report stmt is missing" so you need to use this includes in report program only.
For include in which select is there also need to keep in report program.
You cannot execute include/module pool pragram
regards,
Sreevani -
Payment in other than functional currency and bank currency
Hi
I am working in a implementation project, i am facing one issue related to multiple currency transaction.
client is maintaining one bank account(USD) in other than functional currency(INR), that account they are using for making a payment in USD or other than USD(third) currency, so in case of payment held in third currency, conversion will happen between USD to third currency, hence there is no functional currency is coming in conversion and at bank account level multiple currency check box can not be enabled due to bank account currency is other than functional currency.
Could you please help me out on this issue.Hi Kiran
Thanks for your reply
I am required Little more help on this, please find the bellow example
Example
Ledger/functional Currency is INR
bank currency is USD
Currency conversion rate has been defined for the currency
invoice is created in GBP, payment need to be make in GBP currency from USD account, because USD$ use for the GBD conversion, now my concern is bank is in USD currency that is other than functional currency, hence multi currency check box can not be enabled, since functional currency is INR so all transaction should be convert to INR for accounting and as multiple currency not allowed at bank therefore enable to make payment from same bank.
Thanks
Tarun -
Can we move SAP standard Function Group and Table defintion to BW
Dear Forum,
We are in a pilot process of migrating SAP R/3 Custom development objects to our BW client and we have a few questions that we would like to know if possible.
We are currently in the To Be Blueprint Phase of migrating SAP 45B to ERP2005 as a Ramp-Up customer and we need to determine as soon as possible the feasibility of moving one particular Custom application
from our SAP R/3 environment to BW. This application primarily performs computational processing and does reporting of the results at the
conclusion
We have selected one Custom R/3 ABAP program to do a pilot to determine the feasibility of migrating it to the BW platform. This Custom program utilizes objects from standard SAP Function Groups which are non existent in BW. In this particular case Function groups KMS0
(Cost Center Selection) and KAB2 (CO Reporting: General).
Questions:
Are we allowed to move these 2 standard SAP Function Groups to BW ? Would it alter the BW environment integrity as intended and designed by SAP?
If we move the Function Group KMS0 and KAB2 will
SAP support our BW environment if we decide to move them?
Would it be considered a SAP Best Practice to move standard SAP R/3
objects to BW?
Thank you in advance for your help,
Paulo Silveira
[email protected]Hi Paulo and welcome on board !
Please don't post twice the same question...(look in the other one...)
..and don't forget to rewards the answers...it's THE way to say thanks here !
Anyway, I'd suggest to close this thread to avoid to receive answers in both threads...
Cheers,
Roberto -
Function group and transaction hav same name.
Is it possible to re-name a function group name which is accidently nameed same as a transaction code.
Thanks in advance,
Rupesh.You can't rename a function group, but you can copy it. Go to SE80, put in your function group, right click on the function group name and click COPY. You can now choose a new name for the function group. After confirming you'll get another popup, where you can select the function modules you want to copy. Don't forget to rename them as well.
Hope that helps,
Michael -
Is 2x 512 MB sticks better than 1x 256MB and 1x 1GB stick?
Its what the title says, the reason I say this is because I am trying to be very cost effective but get the best performance possible for the price. So is 1 GBs of RAM with even amounts better than 1.2 GBS with non-equal amounts of RAM?
Also, another RAM question - When I do replace the RAM, does it matter which stick I take out of the MacBook?Depends. If your intent is to get to 2GB then yes, going to 1.25GB is better. Otherwise, performance-wise I think going to 1GB in 2 x 512MB a matched pair would be nicer.
The difference in Xbench tests seem to be around 5%. -
Are refurbs better than new?
Hey, some please correct me if I'm wrong, but this is my understanding of refurbished macbooks
Basically, someone returned the original macbook because either it was broken or they didnt want it, so apply fixed it up and repackaged it to be sold as refurbished. Doesn't this mean refurbs are almost guaranteed to work whereas a new one might be defective? Since someone already tested it out and apple fixed it.
Also, do refurbs come with brand new battery?"Copy and Paste" from Apple Store/Support sites
Apple Certified Refurbished
We test and certify all Apple refurbished products and include a 1-year warranty.
Source:
http://store.apple.com/us/browse/home/specialdeals/mac
Apple Certified Refurbished Products
Frequently Asked Questions:
(1) What are Apple Certified Refurbished Products?
Apple Certified Refurbished Products are pre-owned Apple products that undergo Apple's stringent refurbishment process prior to being offered for sale. While only some units are returned due to technical issues, all units undergo Apple's stringent quality refurbishment process.
Each Apple Certified Refurbished Product:
is fully tested (including full burn-in testing).
is refurbished with replacement parts for any defective modules identified in testing.
is put through a thorough cleaning process and inspection.
is repackaged (including appropriate manuals, cables, new boxes, etc.).
includes the operating software originally shipped with the unit and the custom software offered with that system. See each products "Learn More" for more details.
is given a new refurbished part number and serial number.
is placed into a Final QA inspection prior to being added to sellable refurbished stock.
Refurbishment procedures follow the same basic technical guidelines as Apple's Finished Goods testing procedures.
(2) What should I expect when I purchase an Apple Certified Refurbished Product?
Substantial savings
A fully functional unit with complete documentation
The assurance that the unit meets Apple's premiere quality standards, and that its defective components have been replaced by genuine Apple components
(3) Can I purchase the AppleCare Protection Plan for my Apple Certified Refurbished Product?
All Apple Certified Refurbished Products are covered by Apple's One-Year Limited Warranty. For extended coverage, you have the option of purchasing the AppleCare Protection Plan with your Apple Certified Refurbished Product. The AppleCare Protection Plan extends the complimentary coverage on your Apple Certified Refurbished Product to up to three years of world-class support for Mac, and up to two years of world-class support for iPod, iPad, iPhone, and Apple TV.
(4) A refurbished item that I wanted is no longer available. How can I ensure that I get an item when it's in stock?
Refurbished supply is usually very limited and we often run out of refurbished inventory. We recommend that you act quickly if you see an item that you like. A product will be reserved for you once you've completed checking out and we've received full authorized payment. Please note that some payment methods take longer than others and that availability of a refurbished product is not guaranteed until we receive your full payment.
https://store.apple.com/Catalog/US/Images/apple_certified.html -
In terms of scalabilty, will static method in normal java class better than
You only have one copy of the static method in memory, but you have a few copy of the stateless session bean, plus the overhead of those session bean.So isn't static method of normal java class more scalable than stateless session bean.
Then you have to take care of transaction management, connection pooling, etc other ejb services all by your self.
In fact stateless session beans acts more like a static class. They do not get destroyed when remove() method is called on client stub. Similarly they are not always gets created whenever someone calls create() method on home interface!! (Again it's specific to appserver implementation)
Thx.
Maybe you are looking for
-
I have a Report that was created using Crystal Reports XI Developer. The report prints invoices (text) and also images (blob values). The report uses the oracle OCI database driver. When I run this report from Crystal Reports XI Developer and export
-
Ship to Same as Bill to Check Box
What I am looking to do is have a check box that says "Ship to is the same as Bill to" and if it is clicked, then the address populates in the fields below, otherwise the user can free text entry the address. I am not sure how or even if this can be
-
Two-finger pinch zoom not working with safari
Suddenly, the two-finger pinch to zoom is not working with Safari. MBP 13", SL 10.6.8 andf Safari 5.1. The View Menu Zoom control works fine, and the Pinch gesture works once thereafter, but then not. I have reloaded the Safari .plist. Gesture works
-
How to use Premiere Pro CS4 and AE together to stabilize a shaky video.
Hello, I know where to find and apply the stabilization tool in AE CS4, problem is I don't really understand compositions. I have a very very basic understanding of AE in general, more so the workflow and what some of the buttons here and there do. M
-
Nomad Jukebox Zen ... PlaysforSu
Is the Nomad Jukebox Zen compatible with music subscription services (such as Yahoo, etc.)? Is it a PlaysforSure device? Please forgive me for asking such an obvious question ... I have searched everywhere and can't find an answer ... which probably