SAP Gateway 后端 Data Provider 错误响应控制,从 HTTP 状态码到 Message Code 的完整链路 📅 2026/8/19 10:27:58 在 SAP Gateway 项目里,错误处理真正棘手的地方,往往不是怎样RAISE EXCEPTION,而是当异常离开 ABAP 后端以后,最终应该以什么形态出现在 HTTP 和 OData 响应里。同一个业务失败,前端可能同时看到 HTTP400、OData 外层code、message、longtext_url、innererror、多条errordetail。与此同时,后台支持人员还希望在/IWFND/ERROR_LOG、/IWBEP/ERROR_LOG、Application Log 甚至 CCMS 中看到更完整的诊断信息。如果这些层次混在一起,系统很容易出现一种很典型的局面。终端用户看到数据库错误、RFC 异常、类名和内部技术信息,而真正需要排查问题的开发人员反而只看到一句模糊的「处理失败」。SAP Gateway 的 Backend Data Provider 给了开发人员相当细的控制能力。Provider 可以通过 Business Exception 或 Technical Exception 触发错误,可以指定 HTTP 状态码,可以把多条消息放进 Message Container,可以选定 Leading Message,还可以单独改写 OData 最外层的 Message Code。对于仅供技术排查、不应该暴露给终端用户的信息,则应该交给/IWBEP/CL_COS_LOGGER。SAP 官方文档明确把这些能力作为 Gatew