SAP Interfaces In A Nutshell | RFC, BAPI, IDOC, EDI, ALE, UDDI, SOAP, WSDL, REST, API, FTP, SFTP

It all looked like Alphabet soup when I encountered these acronyms for the first time. I even mistook one for another. Admittedly this happened with IDOC vs ALE vs EDI.

By the end of this post, I do hope that I would have been able to help you sort these terms out. It can get confusing, but I know I will be going back to this post from time to time.

Overview

  • Acronym Breakdown
  • Formal Definitions
  • Organizing / Grouping the Acronyms
  • Grouping and Differentiation Discussion
  • Summary
  • Additional References and Links

Acronym Breakdown

Let us start by getting familiarized with what these acronyms stand for. I will throw all the words in the table below for your reference then we can try and sort them out later.

Here is a breakdown of what these acronyms stand for:

RFCRemote Function Call
BAPIBusiness Application Programming Interface
IDOCIntermediate Document
EDIElectronic Document Interchange
ALEApplication Link Enabling
UDDIUniversal Description Discovery and Integration
SOAPSimple Object Access Protocol Web Service
WSDLWeb Service Definition Language
RESTREpresentational State Transfer
APIApplication Programming Interface
FTPFile Transfer Protocol
SFTPSecure File Transfer Protocol (or SSH File Transfer Protocol where SSH stands for Secure Shell)

By now, these acronyms may look something like this in your head:

SAP Interfaces RFC, BAPI, IDOC, EDI, ALE, UDDI, SOAP, WSDL, REST, API, FTP, SFTP

Formal Definitions

Now, let us refer to their formal definitions and capabilities below.

RFC       

  • Remote Function Call        
  • Standard SAP interface for communication with SAP and/or other systems.
  • RFC calls function modules.

BAPI      

  • Business Application Programming Interface
  • Specific methods for SAP business objects, which are stored in the Business Object Repository (BOR) of the SAP system
  • Used for carrying out business tasks.
  • In SAP, BAPIs are stored as RFC-capable function modules in the ABAP Workbench Function Builder.
  • BAPIs have standard business interfaces, which enable external applications (with the help of SAP business objects) to access SAP processes, functions and data.

ALE       

  • Application Link Enabling 
  • Mechanism for the exchange of business data between R/3 applications.
  • It is a basic service within SAP Netweaver AS ABAP with which applications send and receive IDocs.

IDOC     

  • Intermediate Document     
  • Standard data structure used in SAP applications to transfer data to and from SAP system applications and external systems.
  • Using IDocs, companies with SAP ERP systems, for example, can exchange data with external entities like their partners or customers.
  • It is a data container that exchanges data.
  • When we execute an outbound ALE or EDI Process, an IDOC is created.

EDI        

  • Electronic Document Interchange   
  • Exchange of business documents electronically between a business and its partners over a communication network using a standard format. EDI requires IDoc.
  • Instead of the direct exchange of IDocs, data will first be converted to a uniform exchange format, the so-called EDI format. A lot of companies request their vendors to send data through EDI.
  • SAP does not provide EDI converters but there are EDI messages available in the standard system for utilization.

UDDI

  • Universal Description Discovery and Integration
  • XML-based standard for describing, publishing, and finding web services.
  • UDDI is seen with SOAP and WSDL as one of the three foundation standards of web services.
  • Provides a mechanism for clients to dynamically find other Web services.
  • Acts as a directory of Web-services interfaces.

SOAP    

  • Simple Object Access Protocol Web Service
  • It is an XML-based messaging protocol for exchanging information among computers.

WSDL   

  • Web Service Definition Language   
  • It is the standard format for describing a web service.

REST     

  • REpresentational State Transfer     
  • Architectural style for providing standards between computer systems on the web, making it easier for systems to communicate with each other.
  • REST-compliant systems, often called RESTful systems, are characterized by how they are stateless and separate the concerns of client and server.

API         

  • Application Programming Interface 
  • Allows your product or service communicate with other products and services without having to know how they’re implemented.
  • This can simplify app development, saving time and money.
  • When you’re designing new tools and products—or managing existing ones—APIs give you flexibility; simplify design, administration, and use; and provide opportunities for innovation.
  • APIs are sometimes thought of as contracts, with documentation that represents an agreement between parties: If party 1 sends a remote request structured a particular way, this is how party 2’s software will respond.

FTP        

  • File Transfer Protocol        
  • Standard Internet protocol for transmitting files between computers on the Internet.

SFTP     

  • Secure File Transfer Protocol
  • or SSH File Transfer Protocol where SSH stands for Secure Shell           
  • Secure version of File Transfer Protocol (FTP), which facilitates data access and data transfer over a Secure Shell (SSH) data stream.

Organizing / Grouping the Acronyms

From the formal definitions, we can try to organize these terms and associate them to one another. From the image shown earlier, I have added some colors to make these associations.

You will also notice a dashed line grouping because there is a high-level association between them (including the gradient in colors) which we will eventually discuss.

SAP Interfaces RFC, BAPI, IDOC, EDI, ALE, UDDI, SOAP, WSDL, REST, API, FTP, SFTP

Grouping and Differentiation Discussion

Now, let us go through these terms by color association: Yellow, Blue, Purple, and Pink.

ALE vs IDOC vs EDI

ALE vs IDOC vs EDI

First, we have the Yellow color association for ALE, IDOC, and EDI. Let us visualize a vehicle and a passenger.

From their formal definitions, you can think of ALE and EDI as vehicles. Treat IDOC as the passenger with the information. Basically, there are 2 vehicles as options for the passenger.

ALE can only go from SAP to SAP locations (for example: SAP Dev Environment to SAP Test Environment) while EDI can go from SAP to Non-SAP locations vice versa (for example: .NET application to SAP Dev Environment vice versa).

ALEIDOCEDI
Data Exchange SAP to SAPData ContainerData Exchange SAP to Non-SAP
Vehicle (SAP to SAP)Passenger (with information)Vehicle (SAP to Non-SAP)

RFC vs BAPI

RFC vs BAPI

Second, we have the Blue color association for RFC and BAPI. Let us visualize a telephone operator or a call.

These are both function calls in SAP. You can think of these two as calls to operators. RFC would cater to operators that will cover local calls only (SAP to SAP) while BAPI would cater to operators who can cover international calls (local to abroad/international or SAP to Non-SAP vice versa).

RFC would facilitate local calls while BAPI would facilitate international calls. BAPIs are technically RFC enabled function modules. In this context, you can say that all BAPIs are RFC’s but not all instances of RFC’s are BAPIs.

On a technical perspective, you can associate BAPI with Business Objects. These Business Objects are created in a Business Object Repository which can be accessed by Non-SAP applications. For example, a BAPI can be created / utilized to accommodate data coming from an external system such as an order or sales order.

Another thing to note is that you can associate BAPI to Business Objects and an Object-Oriented Programming (OOP) approach.

At this point it can still a bit confusing but in general you can associate BAPI as a function call that enables external applications to access business processes and data in SAP.

RFCBAPI
RFC is a function call that can handle SAP to SAP.  BAPI is an RFC-enabled function call that enables Non-SAP to SAP interface.  
Local CallsInternational Calls External / Non-SAP systems to SAP

FTP vs SFTP

FTP vs SFTP

Third, we have the Purple color association for FTP and SFTP. Let us visualize a mail.

You can think of these two (on a high level) as documents. FTP as your regular mail and SFTP as your encrypted email. The main purpose of FTP and SFTP is to bring files from one computer to another (even from one system to another).

The only difference is that SFTP comes with a method for secure remote login from one computer to another. There is a layer or shell of security for SFTP. Therefore, it is okay to associate it to an encrypted email but not to a point that it would be taken too literally.

For example: if a client is expecting some files from a bank, the bank can send these files over through SFTP from their server to the client’s server. These files will be brought from their “computer” to the client’s “computer” and will be placed in a folder. In turn, the clients can move these files from the said folder (accessed by the bank) and move it over to another server folder where an application can access / consume the files for processing.

FTPSFTP
File TransferSecured File Transfer. Shell.
Regular Mail (Postman Delivered)Email (With Encryption)

UDDI vs SOAP vs WSDL vs REST vs API

UDDI vs SOAP vs WSDL vs REST vs API

Lastly, we have the Pink color association for UDDI, SOAP, WSDL, REST, and API. Let us visualize the world wide web as web services.

These are all associated to Web Services. We can differentiate them as follows:

  • UDDI is the directory of web services interfaces. It is like a directory service where business can list themselves and in turn search for web services.
    • UDDI uses WSDL to describe interfaces to web services.
  • SOAP is always in XML format and it serves as the message (with actual data)
  • WSDL is an XML document that describes the concerned web service. If this document describes the web service, this document is part of the UDDI directory.
  • REST is an architectural style or pattern (explanation for the darker pink color) and it is always associated to API (you might have heard of REST API). Unlike SOAP, it is not limited to XML. It can cover plain text, HTML, XML, JSON, etc.
  • API is an agreement between applications. Think of it as a straightforward contract. An API doesn’t care about another applications background. It just needs the application to fulfill the end of the deal. A simple example would be a waiter.
    • This waiter would be your API. You mention your order to the waiter and the waiter communicates / mentions your order to the chef. The chef then cooks your order. Once the order is fully cooked, the waiter then delivers the order to you. This fulfills the example.
    • You made a request. You get your order. It is quite a cold example to mention that the waiter on a high level doesn’t need to know both backgrounds (you and chef). The waiter just needs to fulfill the “contract”.
    • From the visuals provided a while ago, there is a red dotted line to signify that all Web Services are API’s but not all API’s are Web Services.
UDDISOAPWSDLRESTAPI
Directory of Web-services interfacesXML-based messaging protocol for exchanging the actual data/info.XML document that describes and explains the concerned web serviceArchitectural Style + Plain text, HTML, XML, JSON, etc.Agreement between applications.
Directory.Sends the message with actual data.Describe the Web Service.Architectural Style. Always associated to API.Just fulfill the contract. I do not need to know your background.

Summary

SAP Interfaces RFC, BAPI, IDOC, EDI, ALE, UDDI, SOAP, WSDL, REST, API, FTP, SFTP
open image in new tab to view a larger version

Here are some key words / phrases that we can associate with each:

AcronymKeywords / Key Phrases
RFCSAP standard interface.
Calls function modules.  
Enables function calls between SAP Systems.  
Enables function calls between SAP and Non-SAP Systems.  
SAP + SAP
SAP + Non-SAP    
BAPIHas standard business interfaces for Non-SAP applications.  
BAPI is implemented as a function module.  
BAPI is an RFC-enabled function module.  
SAP + Non-SAP  
ALEData exchange between R/3 Applications (SAP systems only).
Through sending and receiving IDocs.  
SAP + SAP  
IDOCSAP standard data structure.  
Data container.  
Uses ALE processes.  
Between SAP and/or Non-SAP systems.  
SAP + SAP
SAP + Non-SAP
EDIData exchange between different systems.  
Through sending and receiving IDocs
From IDOCS to Conversion to EDI format.  
SAP + Non-SAP  
UDDIWeb Service  
Mechanism to find other Web Services  
Directory of web services interfaces  
UDDI + SOAP + WSDL
SOAPWeb Service  
XML-based messaging protocol for exchanging the actual data/info.  
WSDLWeb Service  
XML document that describes and explains the concerned web service.
RESTWeb Service  
Architectural style of networked systems.  
Lighter-weight alternative.  
Created to fix SOAP’s shortcomings.  
Separation of client and server.  
Can exchange data through Plain text, HTML, XML, JSON, etc.
APIAll Web Services are API’s.  
Not all API’s are Web Services.  
Agreement between applications.
FTPFile Transfer
SFTPSecured File Transfer. Shell.

Additional References

Feel free to drop by these links for more information on each. Most of these go in depth on the subject.

RFCSAP Help RFC  
BAPISAP Help BAPI
Techopedia BAPI
IDOCSAP Help IDoc
Guru99 IDoc Architecture
SOAP Web ServiceSAP Community SOAP
TutorialsPoint What is SOAP  
RESTCodecademy What is REST
Smartbear SOAP vs REST
APIRedhat What are APIs
APIFriends What is an API  
HowToGeek What is an API
FTPTechtarget File Transfer Protocol
SFTPTechopedia Secure File Transfer Protocol
ALETechtarget Application Link Enabling
SAPTutorial ALE Configuration
EDISAP Help EDI
SAPBrainsOnline EDI Tutorial
SAPTrainingHQ EDI in SAP
WSDLTutorialsPoint WSDL Introduction
Service-Architecure WSDL
UDDISAP Help UDDI
TutorialsPoint UDDI Overview
Techtarget How Does SOAP relate to UDDI

I hope this helps. Good luck! 🙂

One thought on “SAP Interfaces In A Nutshell | RFC, BAPI, IDOC, EDI, ALE, UDDI, SOAP, WSDL, REST, API, FTP, SFTP

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.