SAP BAPI 有专有通信格式还是开放格式?
我刚刚投入到 SAP 项目中,需要使用 SAP BAPI 从客户端 SAP 系统中提取大量信息。
鉴于 SAP 是一个封闭平台,我一直很难找到 BAPI 的高级概述。我意识到您可能花了一辈子的时间使用这些 ERP 系统,但仍然无法理解整个事情,所以我只想要一个基本的概述,以便我可以与“客户的”SAP 人员进行明智的交谈。
具体来说,我的问题是:
BAPI 只是 SOAP 和/或 XML-RPC 的包装器,还是完全专有的通信格式?
如何从外部 PHP 使用这些 API?
我看到过与这些 BAPI 相关的缩写 ABAP,它是否有些相关?
I've just been dumped into the middle of a SAP project and I need to use SAPs BAPIs to pull a bunch of information out of the client SAP system.
Given that SAP is a closed platform I've been having trouble finding a high-level overview of what is BAPI. I realize you could spend a lifetime working with these ERP system and still not understand the whole thing, so I just want a basic overview so I can talk intelligently with "The Client's" SAP folks.
Specifically my questions are:
Is BAPI just a wrapper for SOAP and/or XML-RPC, or is it a completely proprietary communication format?
How can these APIs be consumed from external PHP?
I've seen the acronym ABAP in relation to these BAPIs, is it somewhat related?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
BAPI(“业务 API”)是 SAP 的接口规范,也是从系统获取信息的一种方式。我想说,最简单的看待它的方法是将其视为对 SAP 系统的远程过程调用,使您可以访问 SAP 中的数据和功能(用 ABAP 编写)。它为您提供了一些API来从系统中提取数据(例如订单),在您的应用程序中更改它(例如向订单添加头寸),然后将其发回并调用业务功能(例如发布此订单,以便进一步在 SAP 系统中处理)。
有一些包装器可用于从多种语言调用 BAPI。只需谷歌或在 SAP 的帮助系统或在线 sap 开发者网络 sdn.sap.com 中搜索即可。ABAP
是大多数 SAP 系统编写的编程语言。它基本上是 COBOL 的 4/GL 版本,添加了一些 SQL。
BAPI ("Business API") is SAP's interface specification and a way of getting information out of the system. I'd say the simplest way to look at it is as a remote procedure call into the SAP system, giving you access to the data and functionality (writtten in ABAP) that is in the SAP. It gives you some API to pull data out of the system (e.g. an order), change it in you application (e.g. add positions to the order) and then post it back and also call business functions (e.g. post this order so it is further processed in the SAP system).
There are wrappers for calling BAPIs from a number of languages. Just google or search within SAP's help system or the online sap developer network at sdn.sap.com
ABAP is the programming language most of the SAP system is written in. It's basically a 4/GL version of COBOL with some SQL added in.
BAPI 代表B业务A应用程序P编程I接口。
SAP 引入 BAPI 时的目标是提供……
业务 API,在语义级别上提供对 SAP 解决方案的标准化访问。
尽管如此,BAPI 仍然是专有的 SAP 接口。
BAPI 接口提供对应用程序级功能的统一访问,
与调用类型无关:同步和异步处理都可以
通过使用这些接口触发。
BAPI 的同步处理将导致 RFC(远程函数调用,SAP 专有的 RPC 协议)的执行。
异步处理透明地使用 ALE(应用程序链接启用,SAP 专有的 EDI 格式)。
webMethods SAP Adapter(又名 SAP Business Connector)等产品提供对 BAPI 以及来自/到远程目标的较低级别 RFC 和 ALE 协议的双向服务级别访问。
使用这些工具,无需担心 ABAP(所有 SAP 业务逻辑都是在其中实现的 4GL 编程语言)。
还有一些为 BAPI(以及 RFC 和 IDoc)定义的 XML 映射,允许在XML 信封。其中最引人注目的是
以及 SOAP。
BAPI stands for Business Application Programming Interface.
SAP's goal when introducing BAPI's was to provide ...
business API's that provide standardized access to SAP solutions on a semantic level.
Still, BAPI's are proprietary SAP interfaces.
The BAPI interfaces provide a unified access to the application level functionality,
independent of the type of call: Both synchronous and asynchronous processing can be
triggered by using these interfaces.
Synchronous processing of a BAPI will result in the execution of a RFC (Remote Function Call, SAP's proprietary RPC protocol).
Asynchronous processing makes transparently use of ALE (Application Link Enabling, SAP's proprietary EDI format).
Products like the webMethods SAP Adapter (aka SAP Business Connector) provide bidirectional service level access to BAPI's as well as the lower level RFC and ALE protocols from/to a remote destination.
Using these tools there is no need to bother about ABAP, the 4GL programming language all the SAP business logic is implemented in.
There are also several XML mappings defined for BAPI's (as well as RFC's and IDocs) that allow to transmit business documents within an XML envelope. These are most noticeable
as well as SOAP.
暂时忘掉 bapi。 SAP有一个专有的通信协议,称为RFC(远程函数调用)。 SAP 提供了一个 dll(或 *nix 的共享库),您可以使用它从 c 调用 SAP 中的函数。 SAP 还为 java 和 .net 提供了该 dll 的包装器。并且有针对 php、python、perl 和 ruby 的该 dll 的开源包装器。所以过程是这样的。 a) 有人在 abap 中开发了一个(远程启用)功能。 b) 您可以使用 rfc dll 以及您选择的语言的包装器,并调用此 sap 函数。 c) 每个人都很高兴。
让我们回到 BAPI。基于上一节中描述的技术。 SAP 决定创建一组处理业务事务的功能。他们决定将其称为 BAPI。因为“做业务的函数”这个名字并不酷。
这是调用 sap 的 php 扩展。您还可以在 sap 中找到大量有关 php 和 sap 的信息sdn.
ABAP是sap平台的语言。
Forget about bapi for a second. SAP has a proprietary communication protocol called RFC( remote function call). SAP provide a dll ( or shared library for *nix) that you can use to call functions in SAP from c. SAP also provide wrappers of this dll for java and .net. And there are open source wrappers of this dll for php, python, perl and ruby. So the process is. a) somebody develop a (remote enabled) function in abap. b) you can use the rfc dll, with the wrapper for your language of choice, and call this sap function. c) everybody is happy.
Lets return to BAPI. Based on the technology described in the previous section. SAP decided to create a set of functions that do business stuff. And they decided to call them BAPI. Because the name "Functions that do business stuff" isn't cool.
Here is the php extention for calling sap. You can also find a lot of information about php and sap in the sap sdn.
ABAP is the language of the sap platform.
BAPI 是远程启用的功能模块,如果有人想称它们为“BAPI”,则附加一些编程“标准”,例如以某种格式返回的消息、以某种方式键入的参数。它们实际上只不过是通过单选按钮启用远程通信的 SAP 功能模块。
我不同意人们不必编写 SAP 代码,因为 SAP 提供了如此多的 BAPI 来涵盖大部分标准内容。几乎每个实施都需要代码,而 SAP 提供的内容只是基础。经理和销售人员的说法可能不同,但这不是现实。
BAPIs are remotely enabled function modules that have some programming "standards" attached to them if one wants to call them "BAPIs", e.g. messages returned in certain formats, parameters typed a certain way. They really are nothing more than SAP function modules enabled for remote communication via a radio button.
I disagree that one should not have to write SAP code, because SAP has provided so many BAPIs to cover most of the standard stuff. Just about every implementation requires code and the SAP delivered stuff is just the base. The managers and sales types will say differently, but that is just not reality.