ARTICLE DETAIL

资讯详情

深耕编程入门与网站建设的一线实战洞察。

深入理解 SAP Gateway 的 /IWBEP/IF_MGW_CONV_SRV_RUNTIME 与 SET_HEADER,别把它只当成一个设置 HTTP Header 的小工具

深入理解 SAP Gateway 的 /IWBEP/IF_MGW_CONV_SRV_RUNTIME 与 SET_HEADER,别把它只当成一个设置 HTTP Header 的小工具 在 SAP Gateway 项目里做 OData 服务时,有一种代码看起来非常不起眼。业务数据已经在GET_ENTITY或GET_ENTITYSET里准备好了,ER_ENTITY、ET_ENTITYSET也已经填充完成,调试时数据完全正确。可到了浏览器这一侧,开发人员却发现一个很奇怪的现象,明明后台数据已经变化,前端拿到的内容却像没有更新一样。还有另一类场景,我们通过GET_STREAM返回 PDF、Excel 或图片文件,文件内容没问题,浏览器也能下载,可下载后的文件名完全不符合业务要求。这两个问题看起来相距很远,一个是缓存,一个是文件下载,但在经典 SAP Gateway Runtime 中,它们都可能走到同一个入口/IWBEP/IF_MGW_CONV_SRV_RUNTIME~SET_HEADERSAP 官方对/IWBEP/IF_MGW_CONV_SRV_RUNTIME的定位非常明确,它是 Gateway Framework 提供的一组 convenience methods,也就是运行时便利方法。这个接口除了SET_HEADER,还提供了COPY_DATA_TO_REF、CHECK_IF_IS_NOT_MODIFIED、SET_ETAG、GET_LOGGER等方法。SET_HEADER的职责则非常直接,它按照 key
返回列表