5

我刚刚被卷入一个涉及 SAP 的项目的中间。具体来说,我需要使用 SAP 的 BAPI API 从“客户的”SAP 系统中提取大量信息。

鉴于 SAP 是一个封闭的平台,我一直很难找到 SAP 和 BAPI 的谁/什么/何地/何时/如何的高级概述。我意识到你可能会花费一生的时间来使用这些 ERP 系统,但仍然无法理解整个事情。我只想要一个基本的概述,这样我就可以与“客户的”SAP 人员进行智能交谈。

具体来说,我的问题是:

  1. BAPI 只是 SOAP 和/或 XML-RPC 的包装器,还是完全专有的通信格式?

  2. 如何从 PHP 中使用这些 API?

  3. 我已经看到了 ABAP 的首字母缩写词。它是什么意思,它在什么地方适合?

4

4 回答 4

7

BAPI(“业务 API”)是 SAP 的接口规范,也是从系统中获取信息的一种方式。我想说最简单的看待它的方法是作为对 SAP 系统的远程过程调用,让您可以访问 SAP 中的数据和功能(用 ABAP 编写)。它为您提供了一些 API 来从系统中提取数据(例如订单),在您的应用程序中更改它(例如向订单添加仓位),然后将其发回并调用业务功能(例如发布此订单以便进一步在 SAP 系统中处理)。

有用于从多种语言调用 BAPI 的包装器。只需在 SAP 的帮助系统或 sdn.sap.com 上的在线 sap 开发人员网络中搜索或搜索

ABAP 是大多数 SAP 系统编写的编程语言。它基本上是 COBOL 的 4/GL 版本,添加了一些 SQL。

于 2009-10-08T18:03:13.623 回答
7

BAPI代表B业务应用程序编程接口

SAP 在引入 BAPI 时的目标是提供...

  • 明确的
  • 稳定的
  • 独立于实现
  • 有据可查

在语义级别上提供对 SAP 解决方案的标准化访问的业务 API。

不过,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 信封内传输业务文档。这些最引人注目

  • bXML(内容类型:application/x-sap.busdoc)
  • RFC-XML(内容类型:application/x-sap.rfc)
  • IDoc-XML(内容类型:application/x-sap.idoc)

以及肥皂。

于 2009-11-07T11:40:19.043 回答
5
  1. 暂时忘记bapi。SAP 有一个专有的通信协议,称为 RFC(远程函数调用)。SAP 提供了一个 dll(或 *nix 的共享库),您可以使用它从 c 调用 SAP 中的函数。SAP 还为 java 和 .net 提供了这个 dll 的包装器。并且有这个 dll 的开源包装器,用于 php、python、perl 和 ruby​​。过程就是这样。a) 有人在abap 中开发了一个(远程启用的)功能。b)您可以使用 rfc dll,以及您选择的语言的包装器,并调用此 sap 函数。c) 每个人都很开心。

    让我们回到 BAPI。基于上一节中描述的技术。SAP 决定创建一组处理业务的函数。他们决定称它们为 BAPI。因为“做生意的函数”这个名字并不酷。

  2. 这是调用 sap 的php 扩展您还可以在sap sdn中找到很多关于 php 和 sap 的信息。

  3. ABAP是 sap 平台的语言。

于 2009-10-08T21:26:26.007 回答
1

BAPI 是远程启用的功能模块,如果人们想称它们为“BAPI”,则附加一些编程“标准”,例如以某种格式返回的消息,以某种方式键入的参数。它们实际上只不过是通过单选按钮启用远程通信的 SAP 功能模块。

我不同意不必编写 SAP 代码,因为 SAP 提供了如此多的 BAPI 来涵盖大多数标准内容。几乎每个实施都需要代码,而 SAP 交付的东西只是基础。经理和销售类型会说不同,但这不是现实。

于 2012-06-07T13:05:25.283 回答