Stateless 应用里的锁,SAP Fiori Draft 为什么把锁从 ABAP Session 里搬了出来

发布时间:2026/6/29 11:44:25
Stateless 应用里的锁,SAP Fiori Draft 为什么把锁从 ABAP Session 里搬了出来 最近做 RAP 和 Fiori Elements 事务型应用时,最容易被低估的一块,就是锁。界面上只是点了 Edit,改了几个字段,按 Save 提交,看起来和传统 SAP GUI 事务码里的修改动作差不多,可到了后端模型,事情已经完全不同了。传统应用把会话、内存副本、锁、提交这些东西绑在一个 ABAP Session 里,Fiori 这一路走的是 RESTful 和 OData,天然偏 stateless,每一次请求都更像短促的一次握手,而不是一条长时间不断开的电话线。SAP 官方在 ABAP Programming Model for SAP Fiori 的 Locking and Resume 章节里也明确说明,新式业务应用采用 stateless 编程范式,是为了避免在应用服务器上长期维持复杂应用状态,从而获得更好的可扩展性;在这种模型里,通信基于 RESTful protocol,并不存在一个持续可用的 ABAP Session,所以跨请求保存状态时,就需要用持久化草稿来替代内存副本,锁也不再跟着 session 走,而是绑定到 draft 生命周期上。(SAP Help Portal)从 SAP GUI 的长会话,走到 Fiori 的短请求理解 stateless 应用里的锁