ARTICLE DETAIL

资讯详情

深耕网站视觉设计与运营推广的一线实战洞察。

从 Message Container 到 OData Error Response 深入理解 SAP Gateway OData Channel Runtime APIs

从 Message Container 到 OData Error Response 深入理解 SAP Gateway OData Channel Runtime APIs 一个 SAP Fiori 页面提交销售订单时,后端可能一次发现很多问题,采购订单号重复、销售组织不允许、币种无效、某个行项目数量为零、交货日期落在不可用区间。站在 ABAP 代码这一侧,这些往往来自 T100 Message、BAPIRET2、业务异常或者应用日志。站在 HTTP 消费端这一侧,前端真正关心的却是另一组问题,整个请求是否失败,主错误是什么,具体哪几个字段有问题,哪些只是 warning,哪些消息应当继续显示给业务人员。在经典 SAP Gateway OData Channel 运行时里,把这两个世界连接起来的一个关键接口,就是/IWBEP/IF_MESSAGE_CONTAINER。它并不是一个简单的字符串数组。它承担的是消息协议适配工作。ABAP 后端产生的业务消息进入 Message Container 后,SAP Gateway Framework 可以把它们映射到 OData Error Response 的innererror和errordetails,也可以在请求成功时把特定 warning 或 success message 放进 HTTP Response Header。与异常对象配合时,Message Container 还会影响 OData Error Response 最外层的 error code 和 message。SAP 官方文档明确说明,Message Container 中的消息会成为 inner error 的 error detail,并被 SAP Gateway Framework 记录。这也是为什么在 Gateway 项目里,只写一句ME
返回列表