Difference between BAPI and IDocs

hello all
what is difference between BAPI and IDocs

Hi,
BAPI
One of the big plusses for BAPIs is that the interface and function are not supposed to change.  This is a big plus when you do upgrades or hot packs because the transaction can change (format, required inputs etc) which means you then need to update the call transaction.
Some of the BAPIs are better documented and easier to use than others. You usually need to perform the BAPI that actually does the COMMIT after you call your BAPI.
The Program coding for calling a BAPI is usually cleaner than setting up the screen flow etc for the Call Transaction.
You don't need to worry about special data circumstances interrupting the normal data flow of the screens and causing errors because of that.
BAPIs probably have better performance since they don't do the screen flow processing.
In general if the BAPI exists for the transaction you want to perform and you can figure out how to use it the BAPI is probably the best way to go.
BAPIs are a subset of the RFC-enabled function modules, especially designed as Application Programming Interface (API) to the SAP business object, or in other words: are function modules officially released by SAP to be called from external programs.
IDOC
IDocs are text encoded documents with a rigid structure that are used to exchange data between R/3 and a foreign system. Instead of calling a program in the destination system directly, the data is first packed into an IDoc and then sent to the receiving system, where it is analyzed and properly processed.   Therefore an IDoc data exchange is always an
asynchronous process. The significant difference between simple RFC-calls and IDoc data exchange is the fact, that every action performed on IDocs are protocolled by R/3 and IDocs can be reprocessed if an error occurred in one of the message steps.
While IDocs have to be understood as a data exchange protocol, EDI and ALE are typical use cases for IDocs. R/3 uses IDocs for both EDI and ALE to deliver data to the receiving system. ALE is basically the scheduling mechanism that defines when and between which partners and what kind of data will be exchanged on a regular or event triggered basis. Such a set-up is called an ALE-scenario.
The philosophical difference between EDI and ALE can be pinned as follows: If we send data to an external partner, we generally speak of EDI, while ALE is a mechanism to reliable replicate data between trusting systems to store a redundant copy of the IDoc data.   The difference is made clear, when we think of a purchase order that is sent as an IDoc. If we send the purchase order to a supplier then the supplier will store the purchase order as a sales order. However, if we send the purchase order via ALE to another R/3 system, then the receiving system will store the purchase order also as a purchase order.
Regards,
Bhaskar

Similar Messages

  • DIFFERENCE BETWEEN BAPI AND ALE

    HI
    COULD ANYBODY TEL ME
    DIFFERENCE BETWEEN BAPI AND ALE

    Hi Kalyan
    ALE is a SAP specific method how to distribute data from and to SAP. It uses the asynchronous calls based on IDOC structures.
    However in the distribution modell of ALE can also be used BAPIs. They will then automatically converted into IDOC structures. After creating the IDOCs they will be passed over to the receiver using the tRFC protocol.
    Wheras the BAPIs are using the sRFC protocol.
    fir more information please check this:
    http://www.sap-img.com/abap/ale-bapi.htm
    regards
    Srinivas

  • Difference between BAPI and RFC?

    Difference between BAPI and RFC?
    also where to use BAPI and where to use RFC?

    Hi,
    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.
    Regards,
    Prakash

  • Difference Between BAPI And RFC in ABAP

    Hi,
    i want to know difference between BAPI and RFC in SAP,
    can we call SAP GUI screen from NON SAP System Using BAPI.
    Reg,
    Hariharan

    Hi Ravishankar,
    The difference is not importat while you understand the concept.
    I think, RFC is the protocol for calling functions from external systems in R/3.
    I understand like BAPI a series of complet functions that SAP offers you for use and model a business use.
    But if I need program a function that can be called for external system i would call it RFC_NAME, because is a unique function that makes a single task.
    In other words, the difference i think is about work idea more than another thing.
    RFC
    A remote function call is a call to a function module running in a system different from the caller's. The remote function can also be called from within the same system (as a remote call).
    RFC consists of two interfaces : A calling interface for ABAP Programs and a calling interface for Non-SAP programs.
    The RFC Interface takes care of :-
    - Converting all parameter data to the representation needed in the remote system
    Calling the communication routines needed to talk to the remote system.
    Handling communications errors, and notifying the caller, if desired ( using EXCEPTIONS paramater of the CALL FUNCTION).
    BAPI
    BAPIs are standardized programming interfaces (methods) enabling external applications to access business processes and data in the R/3 System.
    BAPIs provide stable and standardized methods to achieve seamless integration between the R/3 System and external applications, legacy systems and add-ons.
    BAPIs are defined in the BOR(Business object repository) as methods of SAP business object types that carry out specific business functions.
    BAPIs are implemented as RFC-enabled function modules and are created in the Function Builder of the ABAP Workbench.
    The most critical difference btwn BAPI and FM is that BAPI can be wrapped in Business objects whereas RFC cant.
    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
    http://searchsap.techtarget.com/ateQuestionNResponse/0,289625,sid21_cid558752_tax293481,00.html
    http://www.sap-img.com/abap/interview-question-on-bapi-rfc-abap-objects-tables.htm
    http://www.sap-img.com/fu033.htm
    http://www.sap-img.com/abap/ale-bapi.htm
    Refer following SDN threads:
    Diff. Between BAPI and RFC
    Re: BAPI and RFC
    Hope this resolves your query.
    Reward all the helpful answers.
    Regards

  • Difference Between BAPI and RFM

    Dear Friends,
    I have seen a few thread explaining the difference between BAPI and RFM(Remote-enabled function Modules) from functional point of view. I know that there are cases when both are available in BOR. Both can be implement using Object Oriented Technology.
    Can any tell me how they differ from techincal point of view ? OR Are they same techinically ?
    Thanks in advance,
    Rajesh

    hi,
    Remote Function Call:
    RFC is an SAP interface protocol.
    Based on CPI-C, it considerably simplifies the programming of communication processes between systems.
    RFCs enable you to call and execute predefined functions in a remote system - or even in the same system.
    RFCs manage the communication process, parameter transfer and error handling.
    http://help.sap.com/saphelp_47x200/helpdata/en/22/042860488911d189490000e829fbbd/frameset.htm.
    BAPI
    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).
    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.
    Regards
    Reshma

  • Difference between BAPI and BADI

    Hi,
    Can anyone explain the difference between BAPI and BADI?

    Hi Naveen,
    BAPI - It is nothing, but a FM which is used to load the data into SAP system. The data may be from the Legacy system.
    BADI - They are the enhancement which can be applied to the standard SAP program as per the business requirement. BADI are the newer version of user exits which uses ABAP OOPs concept.
    Revert back if you have further query.
    Reward points if useful.
    Regards,
    Atish

  • Difference  between  scripts and  idocs

    In real time  why we are  using scripts and idocs?what is the difference between scripts and idocs?pls tell me  where we r using  scripts and  idocs?

    Hi,
    IDocs are simple ASCII data streams. When they are stored to a disk file, the IDocs are simple flat files with lines of text, where the lines are structured into data fields. The typical structured file has records, each record starting with a leading string that identifies the record type. Their specification is stored in the data dictionary.
    Electronic Interchange Document
    IDocs is the acronym for Interchange Document. This  indicates a set of (electronic) information which builds a logical entity. An IDoc is e.g. all the data of a single customer in your customer master data file, or the IDoc is all the data of a single invoice.
    Data Is transmitted in ASCII format, i.e. human readable form
    IDoc data is usually exchanged between systems and partners that are completely independent. Therefore, the data should be transmitted in a format that can easily be corrected by the computer operators. It is therefore mandatory to post the data in a human readable form.
    Nowadays, this means that data is coded in ASCII format, including numbers which are sent as a string of figures 0 to 9. Such data can easily be read with any text editor on any computer, be it a PC, Macintosh, UNIX System, S/390 or any internet browser.
    IDocs exchange messages
    The information which is exchanged by IDocs is called a message and the IDoc is the physical representation of such a message. The name “messages” for the information sent via IDocs is used in the same ways as other EDI standards. .
    Scrpits...
    If the user wants to print documents such as invoices, purchase order, all such documents are printed with the use of forms. SAP allows the user to define these forms by using layout sets. SAP script is the tool used to create the layout set.
    In order to print the document, the SAP system runs a program that collects the data for the document and feeds it into the layout set. This is called as Print Program.
    SAP Provides a standard layout set for every printable document and usually there is no need to create layout sets as such. User just modifies the existing layout sets as per requirement of client.
    Regards,
    Sam

  • What is badi?difference between bapi and badi?

    what is badi?difference between bapi and badi?

    Hi..
    BADI is just an object-oriented version of user-exit. Instead of entering program code into some function module (as in customer-exit), you define some class which has to implement predefined methods and those methods are fired at predefined points just like an old user-exit. Some BADI can have multiple independent implementations which is much better for software deployment as several developers can implement the same BADI independently.
    To understand BAPIs, you must know that there are 2 things. One is the SAP Object Repository of the Business Object Repository (BOR) and the Function Builder.
    Now the business objects with their business processes and business data, reside in the BOR, with the corresponding BAPI. the implementation of this BAPI resides in the function builder. Any external world (non SAP) programs or legacy systems can access the business processes or data of any business object in the BOR, thru the process of invoking the BAPI implementation of the BAPI for this business object.
    Thus we can access a business object.
    So we can say that a BAPI is a process that allows third party s/w or non SAP programs to access SAP Business object data and processes.
    <REMOVED BY MODERATOR>
    Regards
    - Rishika
    Edited by: Alvaro Tejada Galindo on Jun 12, 2008 5:33 PM

  • What is the difference between rfc and idoc

    hi,
       My name is rambabu.can anyone of u please tell me the main differences between idoc and rfc??
    Thanks in Advance

    hi Ramesh,
    Remote Function Calls (RFC) and data exchange through IDoc
    message documents. RFC makes direct and synchronous calls of a program in
    the remote system. If the caller is an external program it will call an
    RFC-enabled function in R/3 and if the calling program is the R/3 system
    it will call an RFC-function in another R/3-system or it will call a
    non-R/3 program through a gateway-proxy (usually rfcexec.exe). BAPIs are
    a subset of the RFC-enabled function modules, especially designed as
    Application Programming Interface (API) to the SAP business object, or in
    other words: are function modules officially released by SAP to be called
    from external programs.
    IDocs are text encoded documents with a rigid structure that are used to
    exchange data between R/3 and a foreign system. Instead of calling a
    program in the destination system directly, the data is first packed into
    an IDoc and then sent to the receiving system, where it is analyzed and
    properly processed. Therefore an IDoc data exchange is always an
    asynchronous process. The significant difference between simple RFC-calls
    and IDoc data exchange is the fact, that every action performed on IDocs
    are protocolled by R/3 and IDocs can be reprocessed if an error occurred
    in one of the message steps.
    While IDocs have to be understood as a data exchange protocol, EDI and ALE
    are typical use cases for IDocs. R/3 uses IDocs for both EDI and ALE to
    deliver data to the receiving system. ALE is basically the scheduling
    mechanism that defines when and between which partners and what kind of
    data will be exchanged on a regular or event triggered basis. Such a
    set-up is called an ALE-scenario.
    Regards
    Sreeram.G.Reddy

  • Difference between bapi and function module

    Can you guys tell me what are the differences in calling bapis and function modules?
    I see we are calling both as the same way we call function modules. May be for bapis, we need to be careful in declaring and passing those exact structures. Can you please make it clear reg. the differences between them?
    I appreciate it.
    Thanks!

    HI,
    See these links on help.sap.com
    <b>For BAPI:</b>
    The data entered in the Internet is transferred to the R/3 System via BAPIs (Business Application Programming Interfaces).
    Data in the R/3 System is accessed via BAPIs as well.
    A Good Site for BAPI's
    http://searchsap.techtarget.com/originalContent/0,289142,sid21_gci948835,00.html
    http://help.sap.com/saphelp_erp2005/helpdata/en/7c/3ce38765ba11d395fe00a0c94260a5/frameset.htm
    <b>For Function Module:</b>
    The important use of functional module is it is used by Enhancements.
    SAP Enhancements are used to expand the standard functionality within SAP.
    Enhancements use function modules and are called from the standard SAP code.
    http://help.sap.com/saphelp_erp2005/helpdata/en/41/7af4daa79e11d1950f0000e82de14a/frameset.htm
    List of functional modules ( Good Site)
    http://www.geocities.com/victorav15/sapr3/abapfun.html
    Hope it helps!!!!
    Thanks
    Sudheer

  • Difference between BAPI and remote enabled function module

    Hi!
    what is the difference between remote enabled function module and
    BAPI.
    How do we use remote enabled function module .
    thanks
    Amit

    Please search the forum before asking basic questions.

  • Main Difference Between EDI and IDOC Based On RFC

    In IDOC ,RFC is Used to define the characteristics of communication links to a remote system on which a functions needs to be executed.
    What About EDI ?

    Hi Saurabh,
    Check this..Hope it helps you.
    EDI is nothing but Electronic data interchange. SAP will support EDI through Intermediate documents (IDOCS).
    EDI (Electronic Document interchange) - EDI is the electronic exchange of business documents between the computer systems of business partners, using a standard format over a communication network. 
    EDI is also called paperless exchange. 
    Advantages: 
    Reduced Data entry errors
    Reduced processing time
    Availabilty of data in electonic form
    Reduced paperwork
    Reduced Cost
    Reduced inventories and better planning
    Standard means of communications
    Better business process
    EDI has two process
    1. Outbound process
    2. Inbound process
    OP:
    1.Application document is created.
    2.IDOC is generated
    3.IDoc is transferred from SAP to Operating system layer
    4.Idoc is converted into EDI standards
    5.Edi document is transmitted to the business partner
    6.The Edi Subsystem report status to SAP
    IP:
    1.EDI transmission received
    2.EDI document is converted into an IDOC
    3.IDOC is transferred to the SAP layer
    4.The application document is created
    5.The application document can be viewed.
    IDOC:
    IDOC is a container that can be used to exchange data between any two process.
    Each iDoc is assigned a unique number for tracking and future reference.
    iDoc Consist of several segments,and segments contain several fields.
    iDoc contains the following three type of records...
    1.One Control Record.
    2.One or many Data Record
    3.One or many Status record.
    PORT:
    Port is used in the outbound process to determine the name of the EDI subsystem program,the directory path where the idoc file will be created at the operating system level,the idoc file names and the rfc desinations.
    RFC Destination:
    Used to define the characteristics of communication links to a remote system on which a functions needs to be executed.
    Partner Profile:
    Partner profile specified the various componets used in an outbound process ( Partner number,IDoc type,message type,Port,Process code),the mode in which it communicates with the subsystem(batch or immediate) and the person to be notified in case of errors.
    Message Control
    Used in pricing,account determination,material determination,and output determination.The message control component enables you to encapsulate business rules with out having to write abap programs.
    Process:
    Setup RFC destinations SM59
    Port Destinations WE21
    Partner Profile WE20
    Message control NACE
    Purchase Order ME21
    Check IDOCs WE02,WE05
    Explain to me about Idoc?
    IDoc (for intermediate document) is a standard data structure for electronic data interchange (EDI) between application programs written for the popular SAP business system or between an SAP application and an external program. IDocs serve as the vehicle for data transfer in SAP's Application Link Enabling (ALE) system. 
    IDocs are used for asynchronous transactions:  Each IDoc generated exists as a self-contained text file that can then be transmitted to the requesting workstation without connecting to the central database. 
    Another SAP mechanism, the Business Application Programming Interface (BAPI) is used for synchronous transactions. 
    A large enterprise's networked computing environment is likely to connect many geographically distributed computers to the main database. These computers are likely to use different hardware and/or operating system platforms. An IDoc encapsulates data so that it can be exchanged between different systems without conversion from one format to another. 
    IDoc types define different categories of data, such as purchase orders or invoices, which may then be broken down into more specific categories called message types. Greater specificity means that an IDoc type is capable of storing only the data required for a particular transaction, which increases efficiency and decreases resource demands. 
    An IDoc can be generated at any point in a transaction process. For example, during a shipping transaction process, an IDoc may be generated that includes the data fields required to print a shipping manifest. After a user performs an SAP transaction, one or more IDocs are generated in the sending database and passed to the ALE communication layer. The communication
    layer performs a Remote Function Call (RFC), using the port definition and RFC destination specified by the customer model. 
    The IDoc is transmitted to the receiver, which may be an R/3, R/2, or some external system.
    Re,Manas

  • What is the diffrence between BAPI and RFC and business object

    Hi Experts,
    Can anybody tel me what is the diffrence between RFC and BAPI , and also what is ther relation with business object?
    Thanx in advance.
    Nilesh Hiwale

    Hi,
    BAPI's are associated with Business Objects and also they are RFC enabled.
    But RFC's are the FM's which can be called from external systems, those FM's can be used in many places based on the applications..
    Check these Links
    whats the difference between BAPI and RFC??
    Diff. Between BAPI and RFC
    Regards
    Kiran

  • Difference between tRFC and RFC

    Hi Experts,
    Can any one help me in details to differentiate tRFC from RFC in their application perspective.
    And also let me know the role of ALE and BAPI in both the connection log.ie,Where we have to use ALE and BAPI.
    Regards
    Kumar

    Hi,
    RFC = Remote Function Call and TRFC = Transactional Remote Function Call
    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 
    http://help.sap.com/saphelp_nw04/helpdata/en/8b/ceea3b31aac554e10000000a114084/content.htm
    RFC Help link
    http://help.sap.com/saphelp_nw04/helpdata/en/b0/eae2a889e711d2956500a0c94260a5/frameset.htm
    Refer BAPI & ALE
    what is difference between BAPI and ALE
    Re: ALE & BAPI communication
    Re: bapi-ale interface
    /Srinivas

  • Difference betrween BAPI and RFC

    Hi All
              Can anyone tell me the difference between BAPI and RFC.
    I am unable to find it out ,except one,ie  BAPI is based on object oriented concept .
    please justify your answers with real scenerios.

    Remote Function Call:
    RFC is an SAP interface protocol. Based on CPI-C, it considerably simplifies the programming of communication processes between systems.
    RFCs enable you to call and execute predefined functions in a remote system - or even in the same system.
    RFCs manage the communication process, parameter transfer and error handling.
    http://help.sap.com/saphelp_47x200/helpdata/en/22/042860488911d189490000e829fbbd/frameset.htm.
    BAPI
    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).
    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.
    Difference Between BAPI and RFC
    What is the main difference between BAPI and RFC and difference between BAPI and BDC?
    BAPI is used only when it is available for the particular transaction like Delivery Sales order. but BDC can be used for any
    transaction which have screen and fields.
    BAPI is directly updated the database instead BDC run through the screen flow.
    So BAPI can't handle all the flow logic checking and enhancement put by programmer to faciliate the user requirement.
    Difference between BAPI and BDC:
    BAPI is a higher end usage for tranfering the data from SAP to non-SAP and vice-versa. for ex: if we are using VB application,where in that we want to connect to SAP and retireve the data,and then change and update the data in SAP for that purpose we can use that.
    Apart from that, we can also use it for Uploading/Downloading the data from SAP to Non-SAP like BDC, provided we have an existing BAPI for that.
    BAPI function modules will also do all the checks required for data integrity like Transactions for BDC.
    There is one more advantage using BAPI instead of BDC. When we go for upgradation, there might be pozzibility to change the screen elements for transactions depending on the requirement. In that case,our BDC pgm may or may not work (depending on the screen changes they have made). Unless and until we prepare new BDC we cant use the old BDC pgm. But in BAPI, SAP promises that they are going to keep the old BAPI and for new functionality they will provide an upgraded BAPI. Until we write a new BAPI pgm, we can use the exisitng BAPI pgm.
    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 you 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. It is not possible to connect SAP to Non-SAP systems to retrieve data using RFC alone. RFC can acces the SAP from outside only through BAPI and same is for vice versa access.
    RFC is the protocol used by SAP for remote communication, that is, for communications between remote (independent) systems. RFC is used for communications between two independent SAP systems, or for communications between an SAP system and a non-SAP system, such as an external application. It can also be used for communications between modules on the same system. Using the RFC interfaces you can extend the functionality of R/3 applications from an external program.
    BAPI-step by step
    http://www.sapgenie.com/abap/bapi/example.htm
    list of all bapis
    http://www.planetsap.com/LIST_ALL_BAPIs.htm
    for BAPI's
    http://www.sappoint.com/abap/bapiintro.pdf
    http://www.sappoint.com/abap/bapiprg.pdf
    http://www.sappoint.com/abap/bapiactx.pdf
    http://www.sappoint.com/abap/bapilst.pdf
    http://www.sappoint.com/abap/bapiexer.pdf
    http://service.sap.com/ale
    http://service.sap.com/bapi
    http://help.sap.com/printdocu/core/Print46c/en/data/pdf/BCMIDAPII/CABFAAPIINTRO.pdf
    http://help.sap.com/printdocu/core/Print46c/en/data/pdf/CABFABAPIREF/CABFABAPIPG.pdf
    http://help.sap.com/printdocu/core/Print46c/en/data/pdf/BCFESDE8/BCFESDE8.pdf
    http://www.planetsap.com/Bapi_main_page.htm
    http://www.topxml.com/sap/sap_idoc_xml.asp
    http://www.sapdevelopment.co.uk/
    http://www.sapdevelopment.co.uk/java/jco/bapi_jco.pdf
    also refer these threads
    What is the difference between RFC and BAPI?.
    whats difference between rfc and bapi?
    difference between rfc & bapi
    difference between RFC and BAPi
    Difference between BAPI and RFC?
    also chk this
    http://www.sap-img.com/abap/interview-question-on-bapi-rfc-abap-objects-tables.htm
    regards,
    srinivas
    <b>*reward for useful answers*</b>

Maybe you are looking for

  • Get all the rows of the table

    Hi,      In my example I want to get all the rows of the table. The table has 20 rows. The visibleRowCount is set to 7 and firstVisibleRow is set to 3.      I have created the table as      var oTable = new sap.ui.table.Table({            id: "oTable

  • Web report searchhelps not working

    hello all, When I run a web report which has selection criteria, I am unable to use the searchhelp "button".  This is the error I get when I click on it: System error in program CL_RSR_WWW_RENDERER and form GET_VARDEF_FOR_F4:03 Any ideas as to what i

  • Some substring doubts

    Hi all!! I am almost finishing my app, but i have a line like below: [2003/12/09 16:43:48.165] [info] br.com.organox.web.aggregator.servlet.struts.action.AddContentAction: User 'INEXIST' with session 'ax1zjd8yEeHh' added content '769' with uri 'http:

  • Custom field to select a duration in date determination

    Hi all Can anyone please help me in the following: We have a requirement to select a date field which should be in such a way that the difference between current date and due date should be more than 60 days. This condition should be fulfilled to sen

  • Certain keys not working on Equium A200-196 after Windows 7 update

    Hi all, I've just upgrade my partner's laptop (a Toshiba Equium A200-196) to Windows 7 after initially installing Windows XP on it (it came with Vista). After the XP update, I noticed certain keys weren't working. I can't remember the process I used