1

无论我们可以用OData做什么,我们都可以使用BAPI来做,对吧?

那么,与 BAPI 相比,OData 的主要特点是什么?

请让我知道你的看法

4

3 回答 3

9

BAPI

  • SAP 专有
  • 基于 RFC,一种 SAP 专有协议
  • 固定输入结构(没有具有灵活查询参数的 URL)
  • 固定输出结构(结构、表格,但不是每个的动态数量)
  • 手动文档只为人类描述了服务的结构
  • 结论:有利于将 SAP 系统相互连接

数据

  • 开放标准
  • 基于 REST,Web 应用程序集成的事实上的标准协议
  • 灵活的查询语言(过滤、排序、扩展、关联、搜索)
  • 灵活的输出(实体、实体集、扩展实体)
  • 元数据文档以机器可读格式解释服务结构
  • 结论:非常适合将 SAP 系统连接到 SAPUI5 和类似的 UI

OData 优于 BAPI 的主要优势是灵活性、开放标准和机器可读性。这可能是以速度为代价的。

这个比较有点不对劲。虽然 BAPI 是为连接服务器而发明的,但 OData 更用于将服务器连接到客户端。尽管 OData 的发明者可能已经考虑到服务器连接,但纯 REST 已成为连接此级别的事实标准。因此,将 BAPI 与 REST 以及相关标准(如 Web 服务)进行比较会更清楚。

可以通过 BAPI 接口模拟 OData:(URL 查询)字符串输入,(JSON 结果)字符串输出。因此,您可以得出结论,两者在功率方面是等效的。但是,底层协议不同,系统更可能识别 REST 下的 HTTP 协议而不是 SAP 的专有 RFC 协议。

于 2018-09-17T09:48:03.640 回答
2

从功能的角度来看,aBAPI可以比OData数据源更具体,更适合您的用例。但是 OData 是一个标准,这意味着您可以在客户端开发过程中免费获得大量工具,例如 OData js 客户端库。您可以使用可以使用 OData 数据源的框架,而不是针对您创建或 SAP 提供的单个 BAPI 进行编程。

客户端开发人员可能不熟悉他们必须从中获取数据的每个子系统的复杂性。您拥有需要处理的业务知识以及必须满足的技术依赖关系。您可以公开一组标准 BAPI 以达到类似的目的(如果您忽略了不是 SAP 的所有内容),但 OData 就是这样。至少技术部分在数据源之间共享的标准接口。

您是否看到 OData 中的值取决于您来自哪里。如果您的要求是开发一个单一的、高度集中的客户端应用程序,该应用程序可以从 SAP 系统读取和写入数据,那么 BAPI 很可能是最简单的选择。但是,如果您必须设置某种 CEO 仪表板来集成多个数据源并显示各种运营统计数据,例如销售数据、生产中断、现金流以及您可能想出的任何其他信息,那么您将更容易集成OData 数据源到可能用于设置此类仪表板的标准应用程序中。

于 2018-09-17T09:53:41.433 回答
1

到目前为止,如果您从 SAP https://api.sap.com/package/SAPS4HANACloud?section=Artifacts for S/4 HANA Cloud 浏览 API 中心,您会看到 SAP 正朝着 OPEN 协议的方向前进,例如o数据和 SOAP。您可以轻松地将 BAPI 包装为 oData Serivce 或 SOAP 服务。

于 2018-09-21T01:05:10.773 回答