销售人员正在维护一张销售订单,客户、销售组织、付款条件都已经填好,订单行也录入了十几条。此时浏览器被意外关闭,网络短暂中断,或者销售人员临时被电话打断,需要过几个小时再回来继续处理。在传统 SAP GUI 或 Web Dynpro ABAP 应用里,这类编辑过程往往依赖服务端会话和应用缓冲区。只要会话仍然存在,尚未保存的数据就可能继续保留。可到了基于浏览器、OData 和 SAP Fiori 的应用里,前端与后端之间采用更松散的请求响应方式,任何一次 HTTP 请求结束后,后端都不能理所当然地假设原来的会话上下文仍然存在。Draft 能力正是为了解决这个问题。它不是简单地在页面上增加一个「保存草稿」按钮,也不只是多建一张临时表。它需要数据模型、事务处理框架、OData 服务、SAP Fiori elements 页面以及并发控制共同遵守一套完整契约。只有这样,应用才能知道哪份数据是正式版本,哪份数据仍处于编辑状态,草稿由谁创建,是否允许其他人员接管,以及什么时候可以把草稿激活为正式业务数据。本文讨论的是经典 ABAP Programming Model for SAP Fiori 中基于 CDS、BOPF、SAP Gateway 和 SAP Fiori elements 的 Draft 开发方式。SAP 官方把这一编程模型描述为一套面向 SAP HANA 优化的端到端开发架构,其中 CDS 负责语义化数据模型,CDS-based BOPF 负责事务处理,SAP Gateway 负责 OData 暴露,SAPUI5 与 SAP Fiori elements 负责界面消费。需要特别划清边界,本文所说的 BOPF Draft 属于经典 ABAP Programming Model fo
OCRmyPDF:突破性智能文档识别技术实现扫描PDF秒变可搜索资产 【免费下载链接】OCRmyPDF OCRmyPDF adds an OCR text layer to scanned PDF files, allowing them to be searched 项目地址: https://gitcode.com/GitHub_Trending/oc/OCRmyPDF
OCRmyPDF通过先进…
3大核心工具1个Go库:RegClient如何彻底改变容器镜像管理体验 【免费下载链接】regclient Docker and OCI Registry Client in Go and tooling using those libraries. 项目地址: https://gitcode.com/gh_mirrors/re/regclient
你是否曾为容器镜像管理的复杂性…
Rust 生命周期标注心法:省略规则够了就别多写,不够时知道怎么写
一、我被生命周期标注搞崩溃的那个下午
记得我第一次遇到编译器报 does not live long enough 的时候,完全不懂 a 是什么。在 Stack Overflow 上抄了几段代码,编译器…
Subnautica Nitrox多人联机模组:5个关键技术突破让深海探险不再孤单 【免费下载链接】Nitrox An open-source, multiplayer modification for the game Subnautica. 项目地址: https://gitcode.com/gh_mirrors/ni/Nitrox
想要在《深海迷航》的神秘海洋世界中…