Are the SAP BAPI API proprietary or just a wrapper for something else?

So, I was just cast in the middle of a project involving SAP. In particular, I need to use the SAP BAPI API to pull a ton of information from the SAP Client system. Given that SAP is a closed platform, I had trouble finding a high level overview of who / what / where / when / how SAP and BAPI. Specifically

  • Is BAPI just a wrapper for SOAP and / or XML-RPC, or is it a fully proprietary communication format?

  • Is there a PHP extension or library to work with these APIs?

  • I saw how the acronym ABAP was cast. What does this mean and where does it fit into things?

At this moment, I am looking for good resources that can give me an idea of ​​10,000 feet. I understand that you could spend a lifetime working with this ERP system and still do not understand all this. I just need a basic overview, so I can talk to the “SAP client people” and not sound like a complete newb.

+4
source share
4 answers

BAPI means B Convenience A pplication Programming I nterface.

SAP's goal in implementing the BAPI was to provide ...

  • well defined
  • is stable
  • independent implementation
  • well documented

A business API that provides standardized access to SAP solutions at a semantic level.

However, BAPIs are native SAP interfaces.

BAPIs provide unified access to application-level functionality, regardless of the type of call: both synchronous and asynchronous processing can be caused by using these interfaces.

Synchronous BAPI processing will lead to the execution of an RFC (Remote Function Call, SAP PPP protocol).

Asynchronous processing allows transparent use of ALE (Application Link Enabling, SAP's own EDI format).

Products such as webMethods SAP Adapter (aka SAP Business Connector) provide bi-directional access to the BAPI access level, as well as lower-level RFC and ALE protocols from / to the remote destination.

Using these tools, there is no need to worry about ABAP, the 4GL programming language that implements all of SAP’s business logic.

There are also several XML mappings defined for BAPIs (as well as RFCs and IDocs) that allow you to transfer business documents in an XML envelope. This is most noticeable.

  • bXML (Content-Type: application / x-sap.busdoc)
  • RFC-XML (Content-Type: application / x-sap.rfc)
  • IDoc-XML (Content-Type: application / x-sap.idoc)

as well as SOAP.

+6
source

OK, I will give him a chance ...

  1. ABAP is the programming language in which most of the SAP system is written. This is mainly a 4 / GL version of COBOL with SQL added.

  2. BAPI ("Business API") is a specification of the SAP interface and a way to get information from the system. I would say that the easiest way to look at it is like calling a remote procedure in the SAP system, giving you access to the data and functions (written in ABAP) located in SAP. This gives you some API to output data from the system (for example, an order), change in your application (for example, add items to the order), and then send it back, and also call business functions (for example, send this order so that it further processed in the SAP system).

  3. There are shells for invoking BAPIs from multiple languages. Just google or search the SAP help system or the network of network juice developers at sdn.sap.com

Good luck not to seem like a newbie .. or just admit it ... Good luck!

+7
source
  • Forget about bapi for a second. SAP has its own RFC communication protocol (remote function call). SAP provides a dll (or shared library for * nix) that you can use to call functions in SAP with c. SAP also provides shells for this DLL for java and .net. And there are open source shells of this library for php, python, perl and ruby. So the process is there. a) someone is developing a (remote) function in abap. b) you can use the rfc dll with a wrapper for your choice language and call this sap function. c) everyone is happy.

    Return to BAPI. Based on the technology described in the previous section. SAP decided to create a set of functions that do business. And they decided to call them BAPI. Because the name "Functions That Do Business Things" is not cool.

  • Below is the php extension for calling sap. You can also find a lot of information about php and sap in sap sdn .

  • ABAP is a sap platform language.

+4
source

BAPIs are remote-enabled function modules that have certain “programming standards” for them if they want to call them “BAPIs,” for example. Messages returned in specific formats, parameters entered in a specific way. They really are nothing more than SAP functional modules enabled for remote communication using a switch.

I do not agree that you do not need to write SAP code, because SAP has provided so many BAPIs to cover most standard materials. Each implementation requires a code, and the material supplied by SAP is just the base. Managers and types of sales will speak differently, but this is simply not a reality.

+1
source

All Articles