首页 / 资讯中心 / 文章详情

ABAP Cloud 流程集成中的远程服务消费设计,从 OData、HTTP、RFC 到 SOAP 的统一理解

ABAP Cloud 流程集成中的远程服务消费设计,从 OData、HTTP、RFC 到 SOAP 的统一理解 ★ FEATURED ARTICLE
一个 SAP S/4HANA 系统很少能够真正独立运行。订单可能来自 SAP Commerce Cloud,客户主数据可能来自另一个 S/4HANA Cloud tenant,税率需要查询外部税务平台,物流状态来自第三方承运商,而一些运行了十几年甚至二十几年的核心业务能力,仍然被封装在经典 ABAP 系统的 RFC Function Module 里。于是,ABAP 应用开发很快会遇到一个实际问题,我们的 ABAP 程序究竟应该怎样访问这些远程能力。如果完全从网络协议的角度考虑,这件事并不复杂。OData 最终通过 HTTP 传输,SOAP 通常也是 XML over HTTP,REST API 同样可以直接发送 HTTP Request,RFC 则走 SAP 自己的远程调用协议。只要能够建立连接、拼出请求、发送数据、读取 Response,再把返回的 JSON、XML 或其他格式转换成 ABAP 数据类型,理论上就能完成集成。真正棘手的地方并不是把一个 HTTP Request 发出去,而是长期维护。远端 OData Service 里可能存在几十个 Entity Type,每个 Entity 又可能有几十个 Property。ABAP 程序如果到处手工拼$filter、$select、$expand,手工维护 JSON 字段名称,再手工把返回值转换成 ABAP Structure,代码很快就会变成一种脆弱的字符串编程。SOAP 的情况更加明显。WSDL 定义了 Operation、Message、Port、Binding 以及复杂 XML Schema,如果业务程序直接处理 SOAP Envelo
阅读完成 · 觉得有帮助?
咨询建站