把 OData 问题拦在前端之前,深入理解 SAP Gateway Client 的测试、复现与性能诊断
在 SAP S/4HANA 项目里,经常会遇到一种很典型的联调局面。SAP Fiori Elements 页面打不开,SAP UI5 表格一直处于 Busy 状态,移动端提示服务调用失败,或者外部系统通过 OData 调用 SAP 时得到一个500 Internal Server Error。前端开发人员会检查浏览器 Network,后端开发人员会检查 ABAP Debugger,Basis 顾问则开始翻/IWFND/ERROR_LOG。如果一开始没有把问题发生在哪一层划分清楚,几拨人很容易同时投入大量时间,却仍然围绕同一个 HTTP 请求反复猜测。
SAP Gateway Client 正适合放在这个位置。
在采用 SAP Gateway Foundation 的 ABAP 系统中,可以通过事务码/IWFND/GW_CLIENT启动 SAP Gateway Client。SAP 官方将它定义为用于测试 OData 服务的 Gateway 工具,测试过程不需要真正的 OData Consumer 存在。也就是说,我们完全可以暂时绕开 SAP UI5、SAP Fiori、SAP Mobile Services、第三方 Java 程序、CAP 应用甚至 Postman,直接从 Gateway Runtime 所在的 ABAP 系统向 OData Runtime 发起请求。
这个特点非常重要,因为一次 OData 调用背后通常存在相当长的调用链。
浏览器可能发起 HTTP 请求,SAP Web Dispatcher 接收请求,ICM 继续处理,SAP Gateway Foundation 识别 OData URL,Gatewa
