ARTICLE DETAIL

资讯详情

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

SAP Gateway 后端错误响应控制详解 从 Exception Only 到 Leading Message

SAP Gateway 后端错误响应控制详解 从 Exception Only 到 Leading Message 在 SAP Gateway Client 里调试一个销售订单修改接口时,经常会遇到一种很有代表性的现象。HTTP 请求已经失败,前端也收到了 OData error response,但响应里并不是只有一句错误文本。外层有code和message,里面还有innererror、transactionid、errordetails,而errordetails下面又可能同时出现多条 error、warning 和 info。更容易让人困惑的是,同一段业务校验代码稍微换一种异常抛出方式,最终出现在外层message的内容可能完全不同。这并不是 SAP Gateway 随机拼装出来的结果,而是一套很明确的错误响应控制规则。真正控制响应结构的核心,不只是RAISE EXCEPTION这一句,还包括异常对象自身的文本、异常链里的PREVIOUS、/IWBEP/IF_MESSAGE_CONTAINER中保存的消息,以及其中有没有一条消息被标记为Leading Message。SAP 官方把后台 Data Provider 可以采用的方式归纳为三种,分别是纯异常、异常加 Message Container 但没有 Leading Message,以及异常加 Message Container 并指定 Leading Message。理解这三种模式之前,先把 SAP Gateway 的 error response 看成两个层次会容易很多。外层
返回列表