Skip to Content
author's profile photo Former Member
Former Member



WHAT IS THE MAJOR DIFFERENCE BETWEEN BAPI function module and normal function module.

can we select data from a structure as we do for transparent table?

if yes, how to do that? Because as per my understanding data is not

stored in Structures..

hlp me PLLZZ ASAP.



Add a comment
10|10000 characters needed characters exceeded

Assigned Tags

Related questions

4 Answers

  • author's profile photo Former Member
    Former Member
    Posted on Aug 31, 2006 at 02:05 PM

    hi Sanju,

    Here is an answer to your first question ..


    Each Bapi Object has Interface, Key Fields, Attributes,Methods and Events.

    Bapi Function Modules can be attached to these Bapi objects .Function module has a single bound functionality while a BAPI object can contain many functionalities

    2. we cannot select data from structures as structures donot hold any data.



    Message was edited by: Santosh Kumar P

    Add a comment
    10|10000 characters needed characters exceeded

  • Posted on Aug 31, 2006 at 02:06 PM

    They are technically the same as an RFC enabled function module. BAPIs are designed to be called from outside the system so they have a well defined interface and are documented in the transaction BAPI. Also, the BAPIs interface will never change, if there is a changed needed, a new BAPI will be created.

    Also BAPIs are designed to encapsulated some business object.


    Rich Heilman

    Add a comment
    10|10000 characters needed characters exceeded

  • Posted on Aug 31, 2006 at 06:46 PM

    Hello Sanjay

    All BAPIs are RFC-enabled function modules. BAPIs provide us with external (RFC) access to the major business objects within SAP (e.g. Debitor, Creditor, Account, SAP user, etc.).

    Now what is the difference between a BAPI and a "normal" RFC function module?

    I like to talk about BAPIs as "Dialog without dialog". What does this mean? Actually, BAPIs are very scrupulous about validation all incoming data including customizing keys (e.g. the interface of BAPI_USER_CREATE1 has a field TITLE_KEY in one of its parameters).

    Example: If you call BAPI_USER_CREATE1 with an invalid title_key ('0001' for "Mrs." would be valid) the BAPI will not create the user even if all other (much more important) data are valid.

    A normal RFC function module may behave similar or not. If the normal RFC function module creates the user with an invalid title_key and you want to edit the user in dialog (transaction SU01) you will get a nasty error message.

    Thus, the message is that the BAPI take care (like the foreign key checks on dynpros in dialog) that no invalid data enter the DB tables.

    If I can choose between a BAPI and another function module which provide me with the function I need I will always choose the BAPI.



    Add a comment
    10|10000 characters needed characters exceeded

  • author's profile photo Former Member
    Former Member
    Posted on Aug 31, 2006 at 07:20 PM

    Hai Sanjay

    Go through the following Document

    Bapi to create customer master





    what is BAPI?

    BAPI stands for Business API(Application Program Interface).

    I have answered this question before..

    A BAPI is remotely enabled function module ie it can be invoked from remote programs like standalone JAVA programs, web interface etc..

    You can make your function module remotely enabled in attributes of Function module but

    A BAPI are standard SAP function modules provided by SAP for remote access. Also they are part of Businees Objest Repository(BOR).

    BAPI are RFC enabled function modules. the difference between RFc and BAPI are business objects. You create business objects and those are then registered in your BOR (Business Object Repository) which can be accessed outside the SAP system by using some other applications (Non-SAP) such as VB or JAVA. in this case u only specify the business object and its method from external system in BAPI there is no direct system call. while RFC are direct system call Some BAPIs provide basic functions and can be used for most SAP business object types. These BAPIs should be implemented the same for all business object types. Standardized BAPIs are easier to use and prevent users having to deal with a number of different BAPIs. Whenever possible, a standardized BAPI must be used in preference to an individual BAPI.

    The following standardized BAPIs are provided:

    Reading instances of SAP business objects

    GetList ( ) With the BAPI GetList you can select a range of object key values, for example, company codes and material numbers.

    The BAPI GetList() is a class method.

    GetDetail() With the BAPI GetDetail() the details of an instance of a business object type are retrieved and returned to the calling program. The instance is identified via its key. The BAPI GetDetail() is an instance method. BAPIs that can create, change or delete instances of a business object type

    The following BAPIs of the same object type have to be programmed so that they can be called several times within one transaction. For example, if, after sales order 1 has been created, a second sales order 2 is created in the same transaction, the second BAPI call must not affect the consistency of the sales order 2. After completing the transaction with a COMMIT WORK, both the orders are saved consistently in the database.

    Create( ) and CreateFromData! ( )

    The BAPIs Create() and CreateFromData() create an instance of an SAP business object type, for example, a purchase order. These BAPIs are class methods.

    Change( )

    The BAPI Change() changes an existing instance of an SAP business object type, for example, a purchase order. The BAPI Change () is an instance method.

    Delete( ) and Undelete( ) The BAPI Delete() deletes an instance of an SAP business object type from the database or sets a deletion flag.

    The BAPI Undelete() removes a deletion flag. These BAPIs are instance methods.

    Cancel ( ) Unlike the BAPI Delete(), the BAPI Cancel() cancels an instance of a business object type. The instance to be cancelled remains in the database and an additional instance is created and this is the one that is actually canceled. The Cancel() BAPI is an instance method.

    Add<subobject> ( ) and Remove<subobject> ( ) The BAPI Add<subobject> adds a subobject to an existing object inst! ance and the BAPI and Remove<subobject> removes a subobject from an object instance. These BAPIs are instance methods.

    Check these Links out,289625,sid21_cid558752_tax293481,00.html

    Please check out this thread..


    Also refer to the following links..

    Checkout !!,289142,sid21_gci948835,00.html

    Java Connector(JCO) can call not only BAPI's but also the function modules which are remotely enabled..

    BAPI's as i said earlier are remotely enabled function modules..

    Hence, JCO can call also BAPI's(n not only BAPI's as u mentioned).



    Add a comment
    10|10000 characters needed characters exceeded

Before answering

You should only submit an answer when you are proposing a solution to the poster's problem. If you want the poster to clarify the question or provide more information, please leave a comment instead, requesting additional details. When answering, please include specifics, such as step-by-step instructions, context for the solution, and links to useful resources. Also, please make sure that you answer complies with our Rules of Engagement.
You must be Logged in to submit an answer.

Up to 10 attachments (including images) can be used with a maximum of 1.0 MB each and 10.5 MB total.