在传统的 SAP ABAP 开发里,只要程序中出现INSERT、UPDATE、MODIFY、DELETE,开发人员脑海里通常会自动建立一个非常直接的联系,数据最终要写进当前 ABAP 系统自己的数据库。
Writable External Entities 改变了这件事。
现在,一个运行在 AS ABAP 上的应用可以继续使用熟悉的 ABAP SQL 编程模型,但数据修改的目标却可能位于另一个数据库系统。ABAP 程序不必把远程数据复制到本地,也不必为了一个单纯的数据集成写入场景额外设计 REST API、OData service 或 RFC 风格的接口,而是能够通过 external entity 建立远程数据的 ABAP CDS 模型,再使用 ABAP SQL 对远程数据执行写操作。
SAP 当前官方文档明确给出了 Writable External Entities 支持的四类 ABAP SQL 数据修改操作,也就是INSERT、UPDATE、MODIFY和DELETE。与此同时,写操作并不是简单借用普通的数据库访问连接完成,而是始终通过 service connection 执行,让远程 transaction 与本地 transaction 分离。当前可写 external entity 采用 dynamic external entity 模式,并通过PROVIDED AT RUNTIME在运行期决定实际使用哪个 logical external schema。</