<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: difference between RFC and BAPI in Application Development and Automation Discussions</title>
    <link>https://community.sap.com/t5/application-development-and-automation-discussions/difference-between-rfc-and-bapi/m-p/2428144#M542638</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;HI.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt; The RFC Interface &lt;/P&gt;&lt;P&gt;A remote function call (RFC) is the call of a function module that runs in a different system to the calling program. Although it is also possible to call a function module in the same system as an RFC, normally RFCs are used when the caller and the called function module run in the same system. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;In the SAP system, these functions are provided by the RFC interface system. The RFC interface system enables function calls between two SAP systems, or between an SAP system and an external system.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The RFC- interface system is made up of the following interfaces:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;·        Calling interface for ABAP programs&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;·        Each ABAP program can call a remote function module using the command CALL FUNCTION...DESTINATION. The parameter DESTINATION informs the SAP system that the called function module runs in a different system to the calling system. RFC communication with the remote system takes place as a part of the CALL FUNCTION command.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;·        RFC function modules in an SAP system must be proper function modules and must be registered in the SAP system as remote.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;·        If the calling program and the called program are both ABAP programs, the RFC interface provides both communication partners. The calling program can be any ABAP program, and the called program must be a function module that is registered as remote. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;·        For more detailed information on calling function modules that are registered as remote, see Calling RFC Function Modules in ABAP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;·        For more information on writing function modules that you want to call remotely, see Writing RFC Function Modules in ABAP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;·        Interfaces for calling non-ABAP programs&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;If either the calling program or the called partner is not an SAP program, this program must be programmed in such a way that it can play the role of the other partner in RFC communication. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;To support you when implementing RFC partner programs in non-SAP systems, read: Components of the SAP Communication Technology&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;RFC-supported and GUI-supported interfaces can be used by external programs to call function modules in SAP systems, and execute them in these systems. Likewise, ABAP programs can also use these interfaces to use functions supplied by external programs.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;RFC in SAP Systems refer this link:http://help.sap.com/saphelp_nw04/helpdata/en/22/0424fe488911d189490000e829fbbd/frameset.htm&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;BAPI Conventions   Methods &lt;/P&gt;&lt;P&gt;Parameters &lt;/P&gt;&lt;P&gt;Standardized BAPIs &lt;/P&gt;&lt;P&gt;Standardized Parameters &lt;/P&gt;&lt;P&gt;Important things to remember..  &lt;/P&gt;&lt;P&gt;BAPI/ALE Integration &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Methods&lt;/P&gt;&lt;P&gt;If the BAPI to be implemented is a standardized BAPI, use the generic names, for example, GetList, GetDetail. &lt;/P&gt;&lt;P&gt;The method name must be in English (maximum 30 characters). &lt;/P&gt;&lt;P&gt;The individual components of a BAPI name are separated by the use of upper and lower case.Example: GetList &lt;/P&gt;&lt;P&gt;Underscores ("_") are not allowed in BAPI names. &lt;/P&gt;&lt;P&gt;Each BAPI has a return parameter that is either an export parameter or an export table. &lt;/P&gt;&lt;P&gt;So that customers can enhance BAPIs, each BAPI must have an ExtensionIn and an ExtensionOut parameter. &lt;/P&gt;&lt;P&gt;Parameters&lt;/P&gt;&lt;P&gt;If standardized parameters are used, you have to use the names specified for standardized parameters. &lt;/P&gt;&lt;P&gt;BAPI parameter names should be as meaningful as possible. Poorly chosen names include abbreviations and technical names (e.g. "flag", table names, etc.). &lt;/P&gt;&lt;P&gt;The parameter and field names must be in English with a maximum of 30 characters. &lt;/P&gt;&lt;P&gt;The components of a parameter name in the BOR are separated by upper and lower case letters to make them easier to read. Example: CompanyCodeDetail &lt;/P&gt;&lt;P&gt;Values that belong to each other semantically should be grouped together in one structured parameter, instead of using several scalar parameters. &lt;/P&gt;&lt;P&gt;For ISO-relevant fields (country, language, unit of measure, currency), additional fields for ISO codes are provided. &lt;/P&gt;&lt;P&gt;Unit of measure fields must accompany all quantity fields and currency identifiers must accompany currency amount fields. &lt;/P&gt;&lt;P&gt;Standardized BAPIs&lt;/P&gt;&lt;P&gt;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. &lt;/P&gt;&lt;P&gt;The following standardized BAPIs are provided: &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Reading instances of SAP business objects&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt; GetList ( ) With the BAPI GetList you can select a range of object key values, for example, company codes and material numbers. &lt;/P&gt;&lt;P&gt;The BAPI GetList() is a class method. &lt;/P&gt;&lt;P&gt;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. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;BAPIs that can create, change or delete instances of a business object type&lt;/P&gt;&lt;P&gt;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. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt; Create( ) and  &lt;/P&gt;&lt;P&gt;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. &lt;/P&gt;&lt;P&gt;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.  &lt;/P&gt;&lt;P&gt;Delete( ) and Undelete( ) The BAPI Delete() deletes an instance of an SAP business object type from the database or sets a deletion flag. &lt;/P&gt;&lt;P&gt;The BAPI Undelete() removes a deletion flag. These BAPIs are instance methods. &lt;/P&gt;&lt;P&gt;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.  &lt;/P&gt;&lt;P&gt;Add removes a subobject from an object instance. These BAPIs are instance methods.  &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;BAPIs for Mass Data Processing&lt;/P&gt;&lt;P&gt;The BAPIs listed above for creating and changing data can also be used for mass processing. For more information see BAPIs for Mass Data Transfer &lt;A href="https://community.sap.com/Extern"&gt;&lt;/A&gt; &lt;/P&gt;&lt;P&gt;BAPIs for Replicating Business Object Instances&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt; Replicate( ) and SaveReplica( ) The BAPIs Replicate() and SaveReplica() are implemented as methods of replicable business object types. They enable specific instances of an object type to be copied to one or more different systems. These BAPIs are used mainly to transfer data between distributed systems within the context of Application Link Enabling (ALE). These BAPIs are class methods. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Other Less Used Standardized BAPIs&lt;/P&gt;&lt;P&gt;Programming GetStatus() BAPIs &lt;A href="https://community.sap.com/Extern"&gt;&lt;/A&gt; &lt;/P&gt;&lt;P&gt;Programming ExistenceCheck() BAPIs &lt;A href="https://community.sap.com/Extern"&gt;&lt;/A&gt; &lt;/P&gt;&lt;P&gt;Standardized Parameters&lt;/P&gt;&lt;P&gt;There are some parameters that can be created for various BAPIs because they contain the same or the equivalent data in all BAPIs. They should be implemented the same in all BAPIs. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt; Address parameters Specific reference structures are defined for address parameters in BAPIs. You should copy these structures to use in your BAPI, especially if the underlying object type uses the central address management (CAM).  &lt;/P&gt;&lt;P&gt;Change Parameters In BAPIs that cause database changes (for example, Change() and Create() BAPIs) you must be able to distinguish between parameter fields that contain modified values and parameter fields that have not been modified. This distinction is made through the use of standardized parameters.  &lt;/P&gt;&lt;P&gt;Extension parameters The parameters ExtensionIn and ExtensionOut provides customers with a mechanism that enables BAPIs to be enhanced without modifications.  &lt;/P&gt;&lt;P&gt;Return Parameters Each BAPI must have an export return parameter for returning messages to the calling application. To provide application programmers with a consistent error handling process for BAPI calls, all return parameters must be implemented in the same, standardized way. &lt;/P&gt;&lt;P&gt;Selection Parameters Standardized selection parameters are used in BAPIs that can be used to search for specific instances of a business object type (e.g. in GetList() ). These parameters enable the BAPI caller to specify the relevant selection criteria.  &lt;/P&gt;&lt;P&gt;Test Run Parameters The parameter TestRun is used in write BAPIs (Create() and Change() ), to check the entries for the object instance in the database before actually creating the object instance. The creation of the object instance is only simulated and data is not updated.  &lt;/P&gt;&lt;P&gt;Text Transfer Parameters To transfer BAPI documentation texts (e.g. the documentation of a business object type), you have to create standardized text transfer parameters. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Important things to remember..&lt;/P&gt;&lt;P&gt;It is important to follow the guidelines below when develop9ng BAPIs: &lt;/P&gt;&lt;P&gt;BAPIs must not contain CALL TRANSACTIO or SUBMIT REPORT &lt;/P&gt;&lt;P&gt;BAPIs must not invoke a COMMIT WORK. instead use the BAPI TransactionCommit to execute the commit after the BAPI has executed. &lt;/P&gt;&lt;P&gt;BAPI structures must not use includes. &lt;/P&gt;&lt;P&gt;There should be no functional dependecies between two BAPIs &lt;/P&gt;&lt;P&gt;BAPIs must perform there own authorization check &lt;/P&gt;&lt;P&gt;BAPIs should not use dialogs &lt;/P&gt;&lt;P&gt;BAPIs must not cause the program to abort or terminate. re4levant messages must be communicated through the return parameter. &lt;/P&gt;&lt;P&gt;BAPI/ALE Integration&lt;/P&gt;&lt;P&gt;When you use the BAPIs for asynchronous messagning, the application in the sendig systen calls the generated ALE IDoc interface isntead of the BAPI. &lt;/P&gt;&lt;P&gt;Asynchronous BAPIs use the ALE interface this way: &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Creates an IDOC from the BAPI data &lt;/P&gt;&lt;P&gt;Sends the IDOC to the target system &lt;/P&gt;&lt;P&gt;Receives the IDOC in trhe target system, crreates the BAPI data from the IDoc and calls the BAPI &lt;/P&gt;&lt;P&gt;An ALE interface for a BAPi is created in transaction BDBG. &lt;/P&gt;&lt;P&gt;BAPI:http://www.erpgenie.com/abap/bapi/example.htm&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Reward all helpfull answers.&lt;/P&gt;&lt;P&gt;Regards.&lt;/P&gt;&lt;P&gt;Jay&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Thu, 05 Jul 2007 10:35:43 GMT</pubDate>
    <dc:creator>Former Member</dc:creator>
    <dc:date>2007-07-05T10:35:43Z</dc:date>
    <item>
      <title>difference between RFC and BAPI</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/difference-between-rfc-and-bapi/m-p/2428139#M542633</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi guys,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      What is link between RFC and BAPI.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 05 Jul 2007 10:27:44 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/difference-between-rfc-and-bapi/m-p/2428139#M542633</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-07-05T10:27:44Z</dc:date>
    </item>
    <item>
      <title>Re: difference between RFC and BAPI</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/difference-between-rfc-and-bapi/m-p/2428140#M542634</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;hi&lt;/P&gt;&lt;P&gt;good&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;go through this&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;RFC is a fun module similar to other fun modulkes with special Parameter as DESTINATIOn and in the attributes you have to make it as RFC ebnables&lt;/P&gt;&lt;P&gt;where as BAPI is the API of the BUSINESS OBJECT which you see in SWo1 Tcode&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;RFC (Remote Function Call) is similar to the general SAP fun module: except that in the attributes you click the radio button: RFC enabled;&lt;/P&gt;&lt;P&gt;and you will be passing an Import parameter DESTINATION to it.&lt;/P&gt;&lt;P&gt;Other code and usage will be similar to any fun module;&lt;/P&gt;&lt;P&gt;Have a look at any fun module in SE37 to understand better about the different components of Fun modules;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Refer this link:&lt;/P&gt;&lt;P&gt;&lt;A href="http://help.sap.com/saphelp_nw04/helpdata/en/22/042518488911d189490000e829fbbd/frameset.htm" target="test_blank"&gt;http://help.sap.com/saphelp_nw04/helpdata/en/22/042518488911d189490000e829fbbd/frameset.htm&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;check out the following link it might help you&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;A href="http://help.sap.com/printdocu/core/Print46c/de/data/pdf/BCFESDE2/BCFESDE2.pdf" target="test_blank"&gt;http://help.sap.com/printdocu/core/Print46c/de/data/pdf/BCFESDE2/BCFESDE2.pdf&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;BAPI stands for Business API(Application Program Interface).&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;A BAPI is remotely enabled function module ie it can be invoked from remote programs like standalone JAVA programs, web interface etc..&lt;/P&gt;&lt;P&gt;You can make your function module remotely enabled in attributes of Function module but&lt;/P&gt;&lt;P&gt;A BAPI are standard SAP function modules provided by SAP for remote access. Also they are part of Businees Objest Repository(BOR).&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;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. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The following standardized BAPIs are provided: &lt;/P&gt;&lt;P&gt;Reading instances of SAP business objects &lt;/P&gt;&lt;P&gt;GetList ( ) With the BAPI GetList you can select a range of object key values, for example, company codes and material numbers. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The BAPI GetList() is a class method. &lt;/P&gt;&lt;P&gt;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 &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;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. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Create( ) and CreateFromData! ( ) &lt;/P&gt;&lt;P&gt;The BAPIs Create() and CreateFromData() create an instance of an SAP business object type, for example, a purchase order. These BAPIs are class methods. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Change( ) &lt;/P&gt;&lt;P&gt;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. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Delete( ) and Undelete( ) The BAPI Delete() deletes an instance of an SAP business object type from the database or sets a deletion flag. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The BAPI Undelete() removes a deletion flag. These BAPIs are instance methods. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;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. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Add&amp;lt;subobject&amp;gt; ( ) and Remove&amp;lt;subobject&amp;gt; ( ) The BAPI Add&amp;lt;subobject&amp;gt; adds a subobject to an existing object inst! ance and the BAPI and Remove&amp;lt;subobject&amp;gt; removes a subobject from an object instance. These BAPIs are instance methods. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;BAPI-step by step&lt;/P&gt;&lt;P&gt;&lt;A href="http://www.sapgenie.com/abap/bapi/example.htm" target="test_blank"&gt;http://www.sapgenie.com/abap/bapi/example.htm&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;list of all bapis&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;A href="http://www.planetsap.com/LIST_ALL_BAPIs.htm" target="test_blank"&gt;http://www.planetsap.com/LIST_ALL_BAPIs.htm&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;for BAPI's&lt;/P&gt;&lt;P&gt;&lt;A href="http://www.sappoint.com/abap/bapiintro.pdf" target="test_blank"&gt;http://www.sappoint.com/abap/bapiintro.pdf&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;A href="http://www.sappoint.com/abap/bapiprg.pdf" target="test_blank"&gt;http://www.sappoint.com/abap/bapiprg.pdf&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;A href="http://www.sappoint.com/abap/bapiactx.pdf" target="test_blank"&gt;http://www.sappoint.com/abap/bapiactx.pdf&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;A href="http://www.sappoint.com/abap/bapilst.pdf" target="test_blank"&gt;http://www.sappoint.com/abap/bapilst.pdf&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;A href="http://www.sappoint.com/abap/bapiexer.pdf" target="test_blank"&gt;http://www.sappoint.com/abap/bapiexer.pdf&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;A href="http://service.sap.com/ale" target="test_blank"&gt;http://service.sap.com/ale&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;A href="http://service.sap.com/bapi" target="test_blank"&gt;http://service.sap.com/bapi&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;A href="http://help.sap.com/printdocu/core/Print46c/en/data/pdf/BCMIDAPII/CABFAAPIINTRO.pdf" target="test_blank"&gt;http://help.sap.com/printdocu/core/Print46c/en/data/pdf/BCMIDAPII/CABFAAPIINTRO.pdf&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;A href="http://help.sap.com/printdocu/core/Print46c/en/data/pdf/CABFABAPIREF/CABFABAPIPG.pdf" target="test_blank"&gt;http://help.sap.com/printdocu/core/Print46c/en/data/pdf/CABFABAPIREF/CABFABAPIPG.pdf&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;A href="http://help.sap.com/printdocu/core/Print46c/en/data/pdf/BCFESDE8/BCFESDE8.pdf" target="test_blank"&gt;http://help.sap.com/printdocu/core/Print46c/en/data/pdf/BCFESDE8/BCFESDE8.pdf&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;A href="http://www.planetsap.com/Bapi_main_page.htm" target="test_blank"&gt;http://www.planetsap.com/Bapi_main_page.htm&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;A href="http://www.topxml.com/sap/sap_idoc_xml.asp" target="test_blank"&gt;http://www.topxml.com/sap/sap_idoc_xml.asp&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;A href="http://www.sapdevelopment.co.uk/" target="test_blank"&gt;http://www.sapdevelopment.co.uk/&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;A href="http://www.sapdevelopment.co.uk/java/jco/bapi_jco.pdf" target="test_blank"&gt;http://www.sapdevelopment.co.uk/java/jco/bapi_jco.pdf&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Also refer to the following links..&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;A href="https://community.sap.com/www.sappoint.com/abap/bapiintro.pdf" target="test_blank"&gt;www.sappoint.com/abap/bapiintro.pdf&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;A href="https://community.sap.com/www.sap-img.com/bapi.htm" target="test_blank"&gt;www.sap-img.com/bapi.htm&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;A href="https://community.sap.com/www.sap-img.com/abap/bapi-conventions.htm" target="test_blank"&gt;www.sap-img.com/abap/bapi-conventions.htm&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;A href="https://community.sap.com/www.planetsap.com/Bapi_main_page.htm" target="test_blank"&gt;www.planetsap.com/Bapi_main_page.htm&lt;/A&gt; &lt;/P&gt;&lt;P&gt;&lt;A href="https://community.sap.com/www.sapgenie.com/abap/bapi/index.htm" target="test_blank"&gt;www.sapgenie.com/abap/bapi/index.htm&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Checkout !!&lt;/P&gt;&lt;P&gt;&lt;A href="http://searchsap.techtarget.com/originalContent/0,289142,sid21_gci948835,00.html" target="test_blank"&gt;http://searchsap.techtarget.com/originalContent/0,289142,sid21_gci948835,00.html&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;A href="http://techrepublic.com.com/5100-6329-1051160.html#" target="test_blank"&gt;http://techrepublic.com.com/5100-6329-1051160.html#&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;A href="http://www.sap-img.com/bapi.htm" target="test_blank"&gt;http://www.sap-img.com/bapi.htm&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;A href="http://www.sap-img.com/abap/bapi-conventions.htm" target="test_blank"&gt;http://www.sap-img.com/abap/bapi-conventions.htm&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;A href="http://www.sappoint.com/abap/bapiintro.pdf" target="test_blank"&gt;http://www.sappoint.com/abap/bapiintro.pdf&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;u can check the below the material also&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Example Code&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;U need to give the step_nr, item_nr, cond_count and cond_type so the correct conditon will be updated. If no condition exists for the given parameters, a new condition will be created.&lt;/P&gt;&lt;P&gt;U can find these parameters for a particular condition type in table KONV.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp; Form saveTransactionJOCR&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;--&amp;gt; p1 text&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;&amp;lt;-- p2 text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM saveTransactionJOCR .&lt;/P&gt;&lt;P&gt;data: salesdocument like BAPIVBELN-VBELN,&lt;/P&gt;&lt;P&gt;order_header_inx like bapisdh1x,&lt;/P&gt;&lt;P&gt;order_header_in like bapisdh1,&lt;/P&gt;&lt;P&gt;return type standard table of bapiret2 with header line,&lt;/P&gt;&lt;P&gt;conditions_in type standard table of bapicond with header line,&lt;/P&gt;&lt;P&gt;conditions_inx type standard table of bapicondx with header line,&lt;/P&gt;&lt;P&gt;logic_switch like BAPISDLS,&lt;/P&gt;&lt;P&gt;step_nr like conditions_in-cond_st_no,&lt;/P&gt;&lt;P&gt;item_nr like conditions_in-itm_number,&lt;/P&gt;&lt;P&gt;cond_count like conditions_in-cond_count,&lt;/P&gt;&lt;P&gt;cond_type like conditions_in-cond_type.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;salesdocument = wa_order_information-VBELN.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;LOGIC_SWITCH-COND_HANDL = 'X'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;order_header_inx-updateflag = 'U'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;conditions&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;clear conditions_in[].&lt;/P&gt;&lt;P&gt;clear conditions_inx[].&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;clear: step_nr,&lt;/P&gt;&lt;P&gt;item_nr,&lt;/P&gt;&lt;P&gt;cond_count,&lt;/P&gt;&lt;P&gt;cond_type.&lt;/P&gt;&lt;P&gt;step_nr = '710'.&lt;/P&gt;&lt;P&gt;item_nr = '000000'.&lt;/P&gt;&lt;P&gt;cond_count = '01'.&lt;/P&gt;&lt;P&gt;cond_type = 'ZCP2'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CONDITIONS_IN-ITM_NUMBER = item_nr.&lt;/P&gt;&lt;P&gt;conditions_in-cond_st_no = step_nr.&lt;/P&gt;&lt;P&gt;CONDITIONS_IN-COND_COUNT = cond_count.&lt;/P&gt;&lt;P&gt;CONDITIONS_IN-COND_TYPE = cond_type.&lt;/P&gt;&lt;P&gt;CONDITIONS_IN-COND_VALUE = 666.&lt;/P&gt;&lt;P&gt;CONDITIONS_IN-CURRENCY = 'EUR'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;append conditions_in.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CONDITIONS_INX-ITM_NUMBER = item_nr.&lt;/P&gt;&lt;P&gt;conditions_inx-cond_st_no = step_nr.&lt;/P&gt;&lt;P&gt;CONDITIONS_INX-COND_COUNT = cond_count.&lt;/P&gt;&lt;P&gt;CONDITIONS_INX-COND_TYPE = cond_type.&lt;/P&gt;&lt;P&gt;CONDITIONS_INX-UPDATEFLAG = 'U'.&lt;/P&gt;&lt;P&gt;CONDITIONS_INX-COND_VALUE = 'X'.&lt;/P&gt;&lt;P&gt;CONDITIONS_INX-CURRENCY = 'X'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;append conditions_inx.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CALL FUNCTION 'BAPI_SALESORDER_CHANGE'&lt;/P&gt;&lt;P&gt;EXPORTING&lt;/P&gt;&lt;P&gt;SALESDOCUMENT = salesdocument&lt;/P&gt;&lt;P&gt;ORDER_HEADER_IN = order_header_in&lt;/P&gt;&lt;P&gt;ORDER_HEADER_INX = order_header_inx&lt;/P&gt;&lt;P&gt;LOGIC_SWITCH = logic_switch&lt;/P&gt;&lt;P&gt;TABLES&lt;/P&gt;&lt;P&gt;RETURN = return&lt;/P&gt;&lt;P&gt;CONDITIONS_IN = conditions_in&lt;/P&gt;&lt;P&gt;CONDITIONS_INX = conditions_inx&lt;/P&gt;&lt;P&gt;.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;if return-type ne 'E'.&lt;/P&gt;&lt;P&gt;commit work and wait.&lt;/P&gt;&lt;P&gt;endif.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM. " saveTransactionJOCR&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Bdc to Bapi&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The steps to be followed are :&lt;/P&gt;&lt;P&gt;1. Find out the relevant BAPI (BAPI_SALESORDER_CHANGE for VA02).&lt;/P&gt;&lt;P&gt;[for VA01 use BAPI_SALESORDER_CREATEFROMDAT2]&lt;/P&gt;&lt;P&gt;2. Create a Z program and call the BAPi (same as a Funtion module call).&lt;/P&gt;&lt;P&gt;2. Now, if you see this BAPi, it has &lt;/P&gt;&lt;P&gt;-&amp;gt; Importing structures. &lt;/P&gt;&lt;P&gt;eg: SALESDOCUMENT: this will take the Sales order header data as input.&lt;/P&gt;&lt;P&gt;-&amp;gt; Tables parameters: &lt;/P&gt;&lt;P&gt;eg: ORDER_ITEM_IN: this will take the line item data as input. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Note :&lt;/P&gt;&lt;P&gt;Only specify fields that should be changed&lt;/P&gt;&lt;P&gt;Select these fields by entering an X in the checkboxes&lt;/P&gt;&lt;P&gt;Enter a U in the UPDATEFLAG field&lt;/P&gt;&lt;P&gt;Always specify key fields when changing the data, including in the checkboxes&lt;/P&gt;&lt;P&gt;The configuration is an exception here. If this needs to be changed, you need to complete it again fully.&lt;/P&gt;&lt;P&gt;Maintain quantities and dates in the schedule line data&lt;/P&gt;&lt;P&gt;Possible UPDATEFLAGS:&lt;/P&gt;&lt;P&gt;U = change&lt;/P&gt;&lt;P&gt;D = delete&lt;/P&gt;&lt;P&gt;I = add&lt;/P&gt;&lt;P&gt;Example&lt;/P&gt;&lt;P&gt;1. Delete the whole order&lt;/P&gt;&lt;P&gt;2. Delete order items&lt;/P&gt;&lt;P&gt;3. Change the order&lt;/P&gt;&lt;P&gt;4. Change the configuration&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Notes&lt;/P&gt;&lt;P&gt;1. Minimum entry:&lt;/P&gt;&lt;P&gt;You must enter the order number in the SALESDOCUMENT structure.&lt;/P&gt;&lt;P&gt;You must always enter key fields for changes.&lt;/P&gt;&lt;P&gt;You must always specify the update indicator in the ORDER_HEADER_INX.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;2. Commit control:&lt;/P&gt;&lt;P&gt;The BAPI does not run a database Commit, which means that the application must trigger the Commit so that the changes are read to the database. To do this, use the BAPI_TRANSACTION_COMMIT BAPI.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;For further details... refer to the Function Module documentation for the BAPi.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Bapi to VB(Visual Basic)&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Long back I had used the following flow structure to acheive the same.&lt;/P&gt;&lt;P&gt;Report -&amp;gt; SM59 RFC destination -&amp;gt; COM4ABAP -&amp;gt; VB.exe&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;my report uses the rfc destination to create a COM session with com4abap. com4abap calls the vb.exe and manages the flow of data between sap and vb exe.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;You need to have com4abap.exe&lt;/P&gt;&lt;P&gt;If com4abap is installed you will find it in sapgui installatin directory , C:\Program Files\SAPpc\sapgui\RFCSDK\com4abap.&lt;/P&gt;&lt;P&gt;else refer OSS note 419822 for installation of com4abap&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;after making the settings in com4abap to point to the vb program and setting up rfc destination in sm59 to point to com4abap session , you can use the following function modules to call the vb code. &lt;/P&gt;&lt;P&gt;for setting up com4abap and rfc destination please refer to the documentation for com4abap.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Invoke NEW DCOM session&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;call function 'BEGIN_COM_SESSION'&lt;/P&gt;&lt;P&gt;exporting&lt;/P&gt;&lt;P&gt;service_dest = service_dest "(this will be a RFC destination created in SM59)&lt;/P&gt;&lt;P&gt;importing&lt;/P&gt;&lt;P&gt;worker_dest = worker_dest&lt;/P&gt;&lt;P&gt;exceptions&lt;/P&gt;&lt;P&gt;connect_to_dcom_service_failed = 1&lt;/P&gt;&lt;P&gt;connect_to_dcom_worker_failed = 2&lt;/P&gt;&lt;P&gt;others = 3.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;call function 'create_com_instance' destination worker_dest&lt;/P&gt;&lt;P&gt;exporting&lt;/P&gt;&lt;P&gt;clsid = g_c_clsid&lt;/P&gt;&lt;P&gt;typelib = g_c_typelib&lt;/P&gt;&lt;P&gt;importing&lt;/P&gt;&lt;P&gt;instid = g_f_oid&lt;/P&gt;&lt;P&gt;exceptions&lt;/P&gt;&lt;P&gt;communication_failure = 1 message g_f_msg&lt;/P&gt;&lt;P&gt;system_failure = 2 message g_f_msg&lt;/P&gt;&lt;P&gt;invalid_instance_id = 3&lt;/P&gt;&lt;P&gt;others = 4.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;call function 'com_invoke' destination worker_dest&lt;/P&gt;&lt;P&gt;exporting&lt;/P&gt;&lt;P&gt;%instid = g_f_oid&lt;/P&gt;&lt;P&gt;%method = 'UpdatePDF'&lt;/P&gt;&lt;P&gt;sntemp = g_v_const_filent&lt;/P&gt;&lt;P&gt;snsysid = sy-sysid&lt;/P&gt;&lt;P&gt;snflag = 'N'&lt;/P&gt;&lt;P&gt;tables&lt;/P&gt;&lt;P&gt;rssaptable = g_t_pdfdetail1&lt;/P&gt;&lt;P&gt;%return = g_t_pdfdetail1 "t_test&lt;/P&gt;&lt;P&gt;exceptions&lt;/P&gt;&lt;P&gt;communication_failure = 1 message g_f_msg&lt;/P&gt;&lt;P&gt;system_failure = 2 message g_f_msg&lt;/P&gt;&lt;P&gt;invalid_instance_id = 3&lt;/P&gt;&lt;P&gt;others = 4.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;then close the com session , using&lt;/P&gt;&lt;P&gt;FM delete_com_instance&lt;/P&gt;&lt;P&gt;FM END_COM_SESSION &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;thanks&lt;/P&gt;&lt;P&gt;mrutyun^&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 05 Jul 2007 10:29:31 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/difference-between-rfc-and-bapi/m-p/2428140#M542634</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-07-05T10:29:31Z</dc:date>
    </item>
    <item>
      <title>Re: difference between RFC and BAPI</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/difference-between-rfc-and-bapi/m-p/2428141#M542635</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;hi,&lt;/P&gt;&lt;P&gt;Remote Function Call:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;RFC is an SAP interface protocol. Based on CPI-C, it considerably simplifies the programming of communication processes between systems.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;RFCs enable you to call and execute predefined functions in a remote system - or even in the same system. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;RFCs manage the communication process, parameter transfer and error handling.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;BAPI&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;BAPI stands for Business API(Application Program Interface).&lt;/P&gt;&lt;P&gt;A BAPI is remotely enabled function module &lt;/P&gt;&lt;P&gt;ie it can be invoked from remote programs like standalone JAVA programs, web interface etc..&lt;/P&gt;&lt;P&gt;You can make your function module remotely enabled in attributes of Function module but&lt;/P&gt;&lt;P&gt;A BAPI are standard SAP function modules provided by SAP for remote access.&lt;/P&gt;&lt;P&gt;Also they are part of Businees Objest Repository(BOR).&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;BAPI are RFC enabled function modules. the difference between RFc and BAPI are business objects. &lt;/P&gt;&lt;P&gt;You create business objects and those are then registered in your BOR (Business Object Repository) &lt;/P&gt;&lt;P&gt;which can be accessed outside the SAP system by using some other applications (Non-SAP) such as VB or JAVA.&lt;/P&gt;&lt;P&gt;In this case u only specify the business object and its method from external system &lt;/P&gt;&lt;P&gt;in BAPI there is no direct system call. while RFC are direct system call. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Some BAPIs provide basic functions and can be used for most SAP business object types. &lt;/P&gt;&lt;P&gt;These BAPIs should be implemented the same for all business object types. &lt;/P&gt;&lt;P&gt;Standardized BAPIs are easier to use and prevent users having to deal with a number of different BAPIs. &lt;/P&gt;&lt;P&gt;Whenever possible, a standardized BAPI must be used in preference to an individual BAPI. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;BAPIs:&lt;/P&gt;&lt;P&gt;- are designed as the methods of business objects in the business object repository (accessable using transaction BAPI or SWO1)&lt;/P&gt;&lt;P&gt;- have non-technical parameter names (the technical field names in SAP are mapped)&lt;/P&gt;&lt;P&gt;- have a fixed interface and functionality across all SAP releases (this is probably the key point as it means you can develop integrations with them which do not need to be changed when you upgrade)&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Generally, if you are trying to find a function for a particular requirement you should look for a BAPI first, then for a RFC function which has a released status (check the function attributes in SE37), and then just a normal RFC last.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The benefit of an RFC function with released status means that it also has a fixed interface which will not change with new SAP releases.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 05 Jul 2007 10:31:23 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/difference-between-rfc-and-bapi/m-p/2428141#M542635</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-07-05T10:31:23Z</dc:date>
    </item>
    <item>
      <title>Re: difference between RFC and BAPI</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/difference-between-rfc-and-bapi/m-p/2428142#M542636</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;RFC Vs BAPI &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;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.  &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;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.  &lt;/P&gt;&lt;P&gt;  &lt;/P&gt;&lt;P&gt;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. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Pls reward points.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards,&lt;/P&gt;&lt;P&gt;Ameet&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 05 Jul 2007 10:32:09 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/difference-between-rfc-and-bapi/m-p/2428142#M542636</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-07-05T10:32:09Z</dc:date>
    </item>
    <item>
      <title>Re: difference between RFC and BAPI</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/difference-between-rfc-and-bapi/m-p/2428143#M542637</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;RFC and BAPIs are remote enabled function modules. They are practicly the same. A BAPI is one step further as it usually is a self contained business function, such as "Create Purchase Order", or "Change Sales Document". BAPIs interface is very well defined and documented. BAPIs can be found in the BAPI browser via transaction BAPI. RFCs are just remote enabled function modules.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;BAPI stands for Business Application Programming Interface. It is a library of functions that are released to the public as an interface into an existing SAP system from an external system. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;RFC is the protocol used to call functions in an R/3 system by a caller external to R/3 or to call programs external to R/3 from an R/3 system. Functions can only be called via RFC, if they are tagged as RFC functions in the SAP development workbench.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;lt;b&amp;gt;Reward points&amp;lt;/b&amp;gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 05 Jul 2007 10:34:48 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/difference-between-rfc-and-bapi/m-p/2428143#M542637</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-07-05T10:34:48Z</dc:date>
    </item>
    <item>
      <title>Re: difference between RFC and BAPI</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/difference-between-rfc-and-bapi/m-p/2428144#M542638</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;HI.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt; The RFC Interface &lt;/P&gt;&lt;P&gt;A remote function call (RFC) is the call of a function module that runs in a different system to the calling program. Although it is also possible to call a function module in the same system as an RFC, normally RFCs are used when the caller and the called function module run in the same system. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;In the SAP system, these functions are provided by the RFC interface system. The RFC interface system enables function calls between two SAP systems, or between an SAP system and an external system.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The RFC- interface system is made up of the following interfaces:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;·        Calling interface for ABAP programs&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;·        Each ABAP program can call a remote function module using the command CALL FUNCTION...DESTINATION. The parameter DESTINATION informs the SAP system that the called function module runs in a different system to the calling system. RFC communication with the remote system takes place as a part of the CALL FUNCTION command.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;·        RFC function modules in an SAP system must be proper function modules and must be registered in the SAP system as remote.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;·        If the calling program and the called program are both ABAP programs, the RFC interface provides both communication partners. The calling program can be any ABAP program, and the called program must be a function module that is registered as remote. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;·        For more detailed information on calling function modules that are registered as remote, see Calling RFC Function Modules in ABAP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;·        For more information on writing function modules that you want to call remotely, see Writing RFC Function Modules in ABAP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;·        Interfaces for calling non-ABAP programs&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;If either the calling program or the called partner is not an SAP program, this program must be programmed in such a way that it can play the role of the other partner in RFC communication. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;To support you when implementing RFC partner programs in non-SAP systems, read: Components of the SAP Communication Technology&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;RFC-supported and GUI-supported interfaces can be used by external programs to call function modules in SAP systems, and execute them in these systems. Likewise, ABAP programs can also use these interfaces to use functions supplied by external programs.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;RFC in SAP Systems refer this link:http://help.sap.com/saphelp_nw04/helpdata/en/22/0424fe488911d189490000e829fbbd/frameset.htm&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;BAPI Conventions   Methods &lt;/P&gt;&lt;P&gt;Parameters &lt;/P&gt;&lt;P&gt;Standardized BAPIs &lt;/P&gt;&lt;P&gt;Standardized Parameters &lt;/P&gt;&lt;P&gt;Important things to remember..  &lt;/P&gt;&lt;P&gt;BAPI/ALE Integration &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Methods&lt;/P&gt;&lt;P&gt;If the BAPI to be implemented is a standardized BAPI, use the generic names, for example, GetList, GetDetail. &lt;/P&gt;&lt;P&gt;The method name must be in English (maximum 30 characters). &lt;/P&gt;&lt;P&gt;The individual components of a BAPI name are separated by the use of upper and lower case.Example: GetList &lt;/P&gt;&lt;P&gt;Underscores ("_") are not allowed in BAPI names. &lt;/P&gt;&lt;P&gt;Each BAPI has a return parameter that is either an export parameter or an export table. &lt;/P&gt;&lt;P&gt;So that customers can enhance BAPIs, each BAPI must have an ExtensionIn and an ExtensionOut parameter. &lt;/P&gt;&lt;P&gt;Parameters&lt;/P&gt;&lt;P&gt;If standardized parameters are used, you have to use the names specified for standardized parameters. &lt;/P&gt;&lt;P&gt;BAPI parameter names should be as meaningful as possible. Poorly chosen names include abbreviations and technical names (e.g. "flag", table names, etc.). &lt;/P&gt;&lt;P&gt;The parameter and field names must be in English with a maximum of 30 characters. &lt;/P&gt;&lt;P&gt;The components of a parameter name in the BOR are separated by upper and lower case letters to make them easier to read. Example: CompanyCodeDetail &lt;/P&gt;&lt;P&gt;Values that belong to each other semantically should be grouped together in one structured parameter, instead of using several scalar parameters. &lt;/P&gt;&lt;P&gt;For ISO-relevant fields (country, language, unit of measure, currency), additional fields for ISO codes are provided. &lt;/P&gt;&lt;P&gt;Unit of measure fields must accompany all quantity fields and currency identifiers must accompany currency amount fields. &lt;/P&gt;&lt;P&gt;Standardized BAPIs&lt;/P&gt;&lt;P&gt;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. &lt;/P&gt;&lt;P&gt;The following standardized BAPIs are provided: &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Reading instances of SAP business objects&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt; GetList ( ) With the BAPI GetList you can select a range of object key values, for example, company codes and material numbers. &lt;/P&gt;&lt;P&gt;The BAPI GetList() is a class method. &lt;/P&gt;&lt;P&gt;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. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;BAPIs that can create, change or delete instances of a business object type&lt;/P&gt;&lt;P&gt;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. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt; Create( ) and  &lt;/P&gt;&lt;P&gt;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. &lt;/P&gt;&lt;P&gt;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.  &lt;/P&gt;&lt;P&gt;Delete( ) and Undelete( ) The BAPI Delete() deletes an instance of an SAP business object type from the database or sets a deletion flag. &lt;/P&gt;&lt;P&gt;The BAPI Undelete() removes a deletion flag. These BAPIs are instance methods. &lt;/P&gt;&lt;P&gt;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.  &lt;/P&gt;&lt;P&gt;Add removes a subobject from an object instance. These BAPIs are instance methods.  &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;BAPIs for Mass Data Processing&lt;/P&gt;&lt;P&gt;The BAPIs listed above for creating and changing data can also be used for mass processing. For more information see BAPIs for Mass Data Transfer &lt;A href="https://community.sap.com/Extern"&gt;&lt;/A&gt; &lt;/P&gt;&lt;P&gt;BAPIs for Replicating Business Object Instances&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt; Replicate( ) and SaveReplica( ) The BAPIs Replicate() and SaveReplica() are implemented as methods of replicable business object types. They enable specific instances of an object type to be copied to one or more different systems. These BAPIs are used mainly to transfer data between distributed systems within the context of Application Link Enabling (ALE). These BAPIs are class methods. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Other Less Used Standardized BAPIs&lt;/P&gt;&lt;P&gt;Programming GetStatus() BAPIs &lt;A href="https://community.sap.com/Extern"&gt;&lt;/A&gt; &lt;/P&gt;&lt;P&gt;Programming ExistenceCheck() BAPIs &lt;A href="https://community.sap.com/Extern"&gt;&lt;/A&gt; &lt;/P&gt;&lt;P&gt;Standardized Parameters&lt;/P&gt;&lt;P&gt;There are some parameters that can be created for various BAPIs because they contain the same or the equivalent data in all BAPIs. They should be implemented the same in all BAPIs. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt; Address parameters Specific reference structures are defined for address parameters in BAPIs. You should copy these structures to use in your BAPI, especially if the underlying object type uses the central address management (CAM).  &lt;/P&gt;&lt;P&gt;Change Parameters In BAPIs that cause database changes (for example, Change() and Create() BAPIs) you must be able to distinguish between parameter fields that contain modified values and parameter fields that have not been modified. This distinction is made through the use of standardized parameters.  &lt;/P&gt;&lt;P&gt;Extension parameters The parameters ExtensionIn and ExtensionOut provides customers with a mechanism that enables BAPIs to be enhanced without modifications.  &lt;/P&gt;&lt;P&gt;Return Parameters Each BAPI must have an export return parameter for returning messages to the calling application. To provide application programmers with a consistent error handling process for BAPI calls, all return parameters must be implemented in the same, standardized way. &lt;/P&gt;&lt;P&gt;Selection Parameters Standardized selection parameters are used in BAPIs that can be used to search for specific instances of a business object type (e.g. in GetList() ). These parameters enable the BAPI caller to specify the relevant selection criteria.  &lt;/P&gt;&lt;P&gt;Test Run Parameters The parameter TestRun is used in write BAPIs (Create() and Change() ), to check the entries for the object instance in the database before actually creating the object instance. The creation of the object instance is only simulated and data is not updated.  &lt;/P&gt;&lt;P&gt;Text Transfer Parameters To transfer BAPI documentation texts (e.g. the documentation of a business object type), you have to create standardized text transfer parameters. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Important things to remember..&lt;/P&gt;&lt;P&gt;It is important to follow the guidelines below when develop9ng BAPIs: &lt;/P&gt;&lt;P&gt;BAPIs must not contain CALL TRANSACTIO or SUBMIT REPORT &lt;/P&gt;&lt;P&gt;BAPIs must not invoke a COMMIT WORK. instead use the BAPI TransactionCommit to execute the commit after the BAPI has executed. &lt;/P&gt;&lt;P&gt;BAPI structures must not use includes. &lt;/P&gt;&lt;P&gt;There should be no functional dependecies between two BAPIs &lt;/P&gt;&lt;P&gt;BAPIs must perform there own authorization check &lt;/P&gt;&lt;P&gt;BAPIs should not use dialogs &lt;/P&gt;&lt;P&gt;BAPIs must not cause the program to abort or terminate. re4levant messages must be communicated through the return parameter. &lt;/P&gt;&lt;P&gt;BAPI/ALE Integration&lt;/P&gt;&lt;P&gt;When you use the BAPIs for asynchronous messagning, the application in the sendig systen calls the generated ALE IDoc interface isntead of the BAPI. &lt;/P&gt;&lt;P&gt;Asynchronous BAPIs use the ALE interface this way: &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Creates an IDOC from the BAPI data &lt;/P&gt;&lt;P&gt;Sends the IDOC to the target system &lt;/P&gt;&lt;P&gt;Receives the IDOC in trhe target system, crreates the BAPI data from the IDoc and calls the BAPI &lt;/P&gt;&lt;P&gt;An ALE interface for a BAPi is created in transaction BDBG. &lt;/P&gt;&lt;P&gt;BAPI:http://www.erpgenie.com/abap/bapi/example.htm&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Reward all helpfull answers.&lt;/P&gt;&lt;P&gt;Regards.&lt;/P&gt;&lt;P&gt;Jay&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 05 Jul 2007 10:35:43 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/difference-between-rfc-and-bapi/m-p/2428144#M542638</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-07-05T10:35:43Z</dc:date>
    </item>
  </channel>
</rss>

