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

  • 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,
    Chandru

    Hi,
    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
    Sameer

    Hello 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-You

    Hello 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..**

    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.. ??

  • HT201365 the activation screen(set up screen) for ios 5 and 6 kinda looks better than ios 7 and 8

    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 possible

    Hi,
    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

  • Exporting to PDF Issue

    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