企业系统真正进入集成阶段以后,经常会碰到这样一类需求,外部系统需要主动调用 SAP,在 SAP 里查询数据、提交业务单据、触发业务动作,或者读取一批用于分析的数据。
这里的方向很关键。
请求不是从 SAP 发出去,而是从外部系统进入 SAP。
在 ABAP Cloud 的术语体系里,这类通信被称为 Inbound Communication。SAP 官方对它的定义非常直接,调用由外部系统发起,ABAP 系统接收请求,并作为服务提供方处理数据或业务请求。当前 ABAP Cloud 支持的入站通信能力包括 OData、HTTP、RFC,以及存在云端限制条件的 SOAP。对于不强调业务流程、主要面向数据读取、数据联邦或复制的场景,还可以使用 SQL Service。
这件事情看起来只是把一个接口开放出去,真正落到 ABAP Cloud 架构里却明显不是简单地创建一个 URL。
完整的设计至少存在两条彼此配合的链路。
一条是开发链路,由开发人员实现真正处理请求的 Integration Service。
另一条是通信管理链路,由开发人员定义 Communication Scenario,再由系统管理员建立 Communication System、Communication User 和 Communication Arrangement,把设计期的服务转换为真正可以运行的系统间通信配置。
理解这两条链路,基本就抓住了 ABAP Cloud Inbound Communication 的核心。