用 Draft 把锁从会话里解放出来,SAP Fiori 无状态应用里的长事务方案

最近做 SAP Fiori Elements 应用时,最容易被低估的一类问题,不是页面怎么画,也不是按钮怎么放,而是编辑业务对象时,锁到底该跟着谁走。传统 ABAP 应用里,一个事务码打开、修改、保存,用户和后端会话之间有比较稳定的上下文关系,enqueue lock 的生命周期很好理解。可是到了 SAP Fiori、OData、移动端、浏览器多标签页这些场景里,事情一下子变复杂了。一次点击就是一次 OData request,一次 request 可能就是一个新的 ABAP session。前端看起来像是在连续编辑同一张单据,后端却未必还记得上一轮请求里的运行时状态。

SAP 官方文档里把 durable lock 描述为一种通过 enqueue context 请求的锁,context 用来标识一段跨 session 的锁阶段;RAP 的 draft 文档也说明,EDIT action 会把 active instance 自动复制到 draft table,并维护锁直到 draft 被激活或锁过期。(SAP Help Portal) RAP 的 draft 机制还支持把业务数据中途停下来,哪怕数据暂时不一致,也可以以后继续处理。(

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

汪子熙

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值