Application Development Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
cancel
Showing results for 
Search instead for 
Did you mean: 

difference between plug in and normal bapis

Former Member
0 Kudos

hai freinds when i am going through bapi's for project system module i am finding objects as projectdefination and projectdefinationPI, when i read the documentation it is giving as plug in waht is the exact difference between these two objects and bapis under them

thanx

afzal

1 ACCEPTED SOLUTION

Former Member
0 Kudos

Hi,

Plug Ins means --->internal /External Applications for SAP , which Enhance ur SAP systems.

Goto SM58 --> Execute (F8) . You will get to qrfc log screen. In this screen from the menu select Goto --> qrfc administration ( this takes you to qrfc administration screen). From the menu select information --> version. You should be able to see qrfc version. There is a note which explains detail

qrfc

upgrade procedure


Transactional RFC and queued RFC are variants of the Remote Function Call that make the data transfer between different SAP R/3 systems more reliable and more secure.

Transactional RFC guarantees the following attributes:

·The call is executed exactly once in the target system.
·Calls that belong to a Logical Unit of Work (LUW) are either completely executed, or not executed at all.

Queued RFC (qRFC with Outbound Queue)

To offset this disadvantage, a serialization of tRFC is performed using wait queues. It is called queued RFC (qRFC). With this serialization, an outbound queue for tRFC was created in SAP R/3, which is therefore referred to as qRFC with outbound queue. The main features of qRFC are as follows:

· A LUW is only transferred if it has no predecessor (in reference to the sequence defined in the applications) in the participating queues. After a qRFC transaction is executed, the system attempts to start the next qRFC transaction in the sequence from the queue.

· A queue name and a queue counter are required fore each qRFC transaction for queue administration. Each tRFC call that is to be processed chronologically is assigned a queue name determined by the application.



Reward points

Regards

3 REPLIES 3

Former Member
0 Kudos

Hi,

Plug Ins means --->internal /External Applications for SAP , which Enhance ur SAP systems.

Goto SM58 --> Execute (F8) . You will get to qrfc log screen. In this screen from the menu select Goto --> qrfc administration ( this takes you to qrfc administration screen). From the menu select information --> version. You should be able to see qrfc version. There is a note which explains detail

qrfc

upgrade procedure


Transactional RFC and queued RFC are variants of the Remote Function Call that make the data transfer between different SAP R/3 systems more reliable and more secure.

Transactional RFC guarantees the following attributes:

·The call is executed exactly once in the target system.
·Calls that belong to a Logical Unit of Work (LUW) are either completely executed, or not executed at all.

Queued RFC (qRFC with Outbound Queue)

To offset this disadvantage, a serialization of tRFC is performed using wait queues. It is called queued RFC (qRFC). With this serialization, an outbound queue for tRFC was created in SAP R/3, which is therefore referred to as qRFC with outbound queue. The main features of qRFC are as follows:

· A LUW is only transferred if it has no predecessor (in reference to the sequence defined in the applications) in the participating queues. After a qRFC transaction is executed, the system attempts to start the next qRFC transaction in the sequence from the queue.

· A queue name and a queue counter are required fore each qRFC transaction for queue administration. Each tRFC call that is to be processed chronologically is assigned a queue name determined by the application.



Reward points

Regards

Former Member
0 Kudos

BAPI's :

BAPI stands for Business API(Application Program Interface).

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

http://www.sap-img.com/fu033.htm

http://www.sap-img.com/abap/ale-bapi.htm

-


BADI(Business Add-In) is the object oriented method of user exits...

Each BAdI has a definition and more than one implementation. The definition means the methods(in class concept) that are used for performing various functions. The BAdI definition can be viewed in SE18 transaction(for standard ones) and user-defined BAdIs can be created in the same transaction as well.

When you create a BAdI definition, an class interface will be automatically created and you can define your methods in the interface. The implementation of the methods can be done in SE19 transaction

Check these links for info about badi..

http://help.sap.com/saphelp_erp2005/helpdata/en/73/7e7941601b1d09e10000000a155106/frameset.htm

http://support.sas.com/rnd/papers/sugi30/SAP.ppt

Regards.

Abhay.

<b>Rewards point</b>

Former Member
0 Kudos

BAdIs Concept

Use

BAdIs or Business Add-Ins are used to create predefined enhancement options in the SAP ERP components, which are then appropriately implemented by the individual industry solutions, country variants, or even by partners and customers.

Classic BAdIs have been present in ABAP-based SAP systems since Release 4.6. In contrast to the enhancement technology used up to then (for example, function module exits,) BAdIs are based on ABAP objects.

The reimplementation of BAdIs for Release 7.0 had two main goals:

· By integrating the BAdIs in the ABAP programming language through the new language elements GET BADIand CALL BADI, their performance was considerably enhanced.

· The new BAdIs provide more flexibility in the conversion of predefined enhancement options through new, orthogonal properties such as contexts and filters.

The new ABAP language elements and their additions ensure that these additional options can be used comfortably in ABAP programs. Within the Enhancement Framework, a new BAdI is always meant by the term BAdI. If there is explicit reference to the previous BAdI concept, such BAdIs are referred to as classic BAdIs.

Definition of BAdIs

Use

When you define a BAdI, you must specify a name, a BAdI interface as the interface for the enhancement option, and the required filters. The name of a BAdI is in the same namespace as data types from the ABAP Dictionary, global classes, or interfaces. It is recommended that you use suitable prefixes, such as “BADI_”.

A filter consists of a filter name and a data type (integer, string, and so on).

In addition, you also define BAdI properties that are relevant at runtime of a program with the appropriate statements GET BADI and CALL BADI. For more information, see Instance Generation Mode and Multiple Use.

Other properties that can be assigned to a BAdI include:

&#9679; An optional fallback BAdI implementation class. This option is used if no BAdI implementation with suitable filter conditions and no standard implementation is found.

&#9679; Whether the BAdI is internal or not.

An internal BAdI must only be implemented by SAP and is not visible outside of SAP.

&#9679; Whether the BAdI is a function code or screen enhancement.

A BAdI that is defined as a function code enhancement must not have any filters, must not be defined for multiple use, or assigned to any switch. It may contain methods that are independent of the actual function code enhancement.

A BAdI that is defined as a screen enhancement must be defined in the instance generation mode for the reused instantiation and must not be defined for multiple use. It may contain BAdI methods that can be used to fill or evaluate the screen fields of the respective subscreens.

Calling BAdIs

Use

After their definition and independent of an implementation, BAdIs can be called using a combination of the ABAP statements GET BADI and CALL BADI:

· GET BADI FILTERS f1=x1 ... fn=xn – selects the BAdI implementations whose filter condition is met by the filter values specified in the statement. The BAdI implementation classes assigned to the selected implementations are instantiated and passed to a simultaneously created BAdI object which serves as a handle for the implementation.

· CALL BADI badi->meth – addresses the BAdI object which passes the call of BAdI methods to the object plug-ins known to the BAdI handle.

For detailed information about these statements, see the ABAP Keyword Documentation.

In the context of the Enhancement Framework, the above statements together form the enhancement spot element calls of an explicit enhancement option. Conceptually, they are part of the definition of an enhancement option.

Procedure

For a multiple-use BAdI, several implementations can be called one after the other using CALL BADI. The sequence in which several object plug-ins are called consecutively is the same in repeated calls, but it can be determined in advance in the BADI_SORTER enhancement spot using the predefined BAdI BADI_SORTER:

...

1. Create the new implementation BADI_SORTER.

2. Enter the name of the BAdI whose object plug-ins you want to call in a sorted sequence as the filter condition for the BADI_NAME filter.

3. Create a screen enhancement to query any kind of sort criterion.

The Enhancement Builder then displays this subscreen with each implementation of the BAdI to be sorted.

4. Implement the methods of the BAdI interface IF_BADI_SORTER according to your sort criteria in the BAdI implementation class.

Without this procedure, the sequence is undefined.

Reward me if its useful.

Regards

Abhay.

Rewards point.