LinkedInFeeds

Integration Approaches & Methods with SAP ERP system

Integration Approaches and Methods with SAP ERP system.
This might be helpful for folks, whoever is an entry level consultant of any external system that interacts with SAP.
SAP

Below table engrosses the BAPI, BADI, RFC, FM, ODATA and IDOC

Acronym

BAPI Business Application Programming Interface
BADI Business Add In
ODATA Open Data Protocol
IDOC Intermediate Document
RFC Remote Function Call
FM Functional Module

Short Definitions

BAPI BAPI is used as an exchange medium that interacts with SAP to send and get data from any external systems (majorly NON SAP systems).
BADI BADI's are custom enhancement programs on existing module can be called and consumed inside SAP systems only.
ODATA OData interface is an open standard that can be consumed by any application, program, software or device of the Non-SAP world that can connect with SAP using the HTTP(s) protocol and can manipulate (read, write, modify and understand i.e. parse and construct) an XML document.

OData uses the REST architecture.
IDOC Similar like BAPI, this is also an exchange medium with external systems but asynchronously.
RFC It uses the SAP specific protocol, to communicate SAP and NON SAP systems. If both the system uses ABAP programs, uses the interface CPI-C (Computer Programming Interface for Communication).

BAPI's are mounted on RFC to communicate with external systems (Majorly NON SAP systems).

Every BAPI is a RFC but every RFC is not a BAPI.
FM Functional Module are the procedures / programs to execute. It is considered as reusable components, that can be utilised in any other integration approaches - RFC, BADI, BAPI etc.,

Functional module is the business objects that tells the system what is the procedure to execute / what the system to do.

Connections

BAPI External Systems can Connect
BADI Only internal SAP systems
ODATA External Systems can Connect
IDOC External Systems can Connect
RFC Internal Systems can connect, exposed to external system using BAPI
FM Functional Module is not a integration method. It contains programs / code where other integration approaches can consume.

Method of Integration

BAPI Xml based
BADI Calling Function
ODATA Webservice (REST method)
IDOC Similar like Xml, Sent in text files.
RFC Calling Function
FM Not Applicable

Call

BAPI Synchronous
BADI Synchronous & Asynchronous
ODATA Synchronous & Asynchronous
IDOC Asynchronous
RFC Synchronous & Asynchronous
FM Not Applicable

Specific Use Cases

BAPI Get the details of Purchase Order and Open GRN's,
Posting an Invoice.

Posting an Invoice with Synchronous call and receiving as response with Success (SAP document no) and Failure (Exception Message)
BADI Enhancement of Purchase Order Creation, for Country INDIA, additional tax validations w.r.t to GSTIN of a Vendor
ODATA a. Document Present Status flow
b. Posting an Incoming Invoice
IDOC a. Getting the details of Material Master
b. Creating a Purchase order in one system and posting a Sales Order in a different SAP system.
* EDI (Electronic data interchange)
RFC GETDETAILS of a PO and Process
FM Any program to execute

When to Use and When Not to Use

BAPI If you need a Immediate response and tight couple integration with SAP.
Target system should be always active.
Any updates in SAP, will not be reflected in Client system on parametric control.

Any External System can use Standard BAPI and Customised BAPI.

Standard BAPI's can be customised and termed as mostly ZBAPI.

ABAP programmers majorly copies the Standard BAPI and amend the code basis the specific requirement whichever is not available in standard BAPI and term it as ZBAPI.
BADI Only SAP system uses BADI. Any enhancement in standard programs.
NON SAP system cannot consume BADI.
ODATA Webservice Protocol, familiar in data exchange.
Failure modes and Caching to be addressed.
IDOC If you do need a Immediate response.
Target system not required to be active always.
Errors should be manually corrected in target system if the integration of data is not successful.
RFC Same as applies to BAPI.
There are general categories of RFC,
a. Synchronous RFC
b. Asynchronous RFC
c. Queued RFC
d. Transactional RFC

Comments

Popular posts from this blog

Wireframe a Prime part in Design

SpeckBook in requirement elicitation

Writing Requirements - Consider Some Points For Success