采购申请页面上的保存按钮,背后通常不只有一次数据库写入。申请抬头需要保存,行项目需要关联,金额需要计算,供应商需要校验,当前操作者还必须具备相应权限。只要其中一项没有满足业务要求,系统就不能把这张申请当成一份完整、有效的业务单据。这类围绕业务数据开展读取、创建、修改和删除的应用,属于 OLTP,也就是 Online Transaction Processing,联机事务处理。在 SAP 系统中,销售订单维护、采购申请创建、差旅预订、主数据维护,都是典型的事务性场景。我们讨论 ABAP Cloud 中的 OLTP 开发,真正需要解决的问题,是如何把数据结构、业务规则和事务一致性组织成一个可以复用的业务能力,并将它提供给 SAP Fiori 应用、外部集成系统以及其他 ABAP 程序。承担这一职责的核心框架,就是 ABAP RESTful Application Programming Model,通常简称 RAP。RAP 将事务性应用的开发重心放在业务对象上。数据库负责持久化,CDS 负责描述具有业务语义的数据模型,行为定义描述允许执行的操作,行为实现承载具体规则,服务暴露层负责把这些能力交给不同类型的调用方。这样,我们不必在每一个页面、每一个接口中重复组织相同的业务逻辑。SAP Help Portal理解这套设计,可以从企业系统中很常见的一种变化入手。同一份采购申请,最初可能只有内部员