资讯动态

深入理解 SAP Gateway 的 CHANGESET_PROCESS,从一个 $batch 请求看懂 Changeset、LUW、ETag 与延迟处理

发布时间:2026/8/21 11:06:33 来源:尧图企业网站定制
在 SAPUI5 表格里一次修改十几行数据,再点击保存,这个场景看起来很普通。前端往往不会真的向后端发十几次完全独立的 HTTP 请求,而是可能把多个修改操作装进一个 OData$batch请求里。等请求进入 SAP Gateway,问题马上从单纯的 CRUD 变成了事务问题。假设一个保存动作里同时修改销售订单抬头、删除一个行项目、新增两个行项目。业务上显然不能接受抬头修改成功,而行项目新增失败。这样的请求不能被看成四次互不相干的数据库操作,而应该被视为一个完整的业务事务。在经典 SAP Gateway OData V2 开发中,这正是/IWBEP/IF_MGW_APPL_SRV_RUNTIME接口里 Changeset 相关方法要解决的问题,而其中最容易被低估的一个方法,就是CHANGESET_PROCESS。SAP 官方把/IWBEP/IF_MGW_APPL_SRV_RUNTIME定义为每一个 Data Provider Class 都会实现的核心运行时接口。除了熟悉的CREATE_ENTITY、UPDATE_ENTITY、DELETE_ENTITY、GET_ENTITY等方法,它还负责$batch请求中的 Changeset 生命周期。理解CHANGESET_PROCESS的关键,并不是记住它的两个参数,而是弄清楚 SAP Gateway 为什么需要它。

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价