深入理解 /IWBEP/IF_MGW_CONV_SRV_RUNTIME~SET_ETAG,从一个方法看懂 SAP Gateway 的 ETag 与乐观并发控制

📅 2026/8/21 11:06:50
深入理解 /IWBEP/IF_MGW_CONV_SRV_RUNTIME~SET_ETAG,从一个方法看懂 SAP Gateway 的 ETag 与乐观并发控制
在维护一个比较老的 SAP Gateway OData V2 服务时,很容易碰到这样一段代码。/iwbep/if_mgw_conv_srv_runtime~set_etag(iv_value=lv_etag).代码短得几乎没有解释空间,看起来只是把某个值塞进 HTTP Response Header。但真正沿着/IWBEP/IF_MGW_CONV_SRV_RUNTIME~SET_ETAG往下追,会碰到 SAP Gateway 里一个非常经典的问题,我们的数据已经被前端读取出来之后,如果另一个用户在后台把同一条业务数据改掉了,当前客户端还能不能继续拿着旧数据直接覆盖数据库。这件事并不只是 HTTP Header 的细节,它直接关系到 OData 的并发控制。SAP 官方把/IWBEP/IF_MGW_CONV_SRV_RUNTIME定义为 OData Channel Runtime API 之一,它提供的是一组由 Gateway