2026/9/1 15:36:21

从 DPC 到五层接口,拆开 SAP Gateway Foundation 的 OData V4 数据提供者运行机制

从 DPC 到五层接口,拆开 SAP Gateway Foundation 的 OData V4 数据提供者运行机制 在不少仍然运行经典 SAP Gateway Foundation 技术栈的 SAP S/4HANA On-Premise 和 SAP S/4HANA Cloud Private Edition 系统里,打开一个 OData V4 服务的 ABAP 实现,经常会看到一个很有代表性的继承关系,业务数据提供类最终继承自/IWBEP/CL_V4_ABS_DATA_PROVIDER。如果过去长期开发的是 OData V2,很容易把这里的 DPC 理解成另一个版本的DPC_EXT。这种理解只能算对了一半。到了 SAP Gateway Foundation 的 OData V4 Runtime,SAP 对请求处理过程进行了更明显的分层。一个 HTTP 请求进入 Gateway 以后,并不是简单地找到某个 CRUD 方法,把数据库记录查询出来再序列化成 JSON。框架会分析 URI、HTTP Method、System Query Option、Navigation、ETag、Batch、PATCH、$expand、$filter、$select、$top、$skip等语义,再把处理责任交给 Data Provider。因此,DPC 更适合被理解成 OData V4 Runtime 与真实业务数据之间的一层业务数据适配器。SAP 官方文档给出的定义很直接,Data Provider Class,也就是 DPC,负责服务的 Business Data Access,并且必须继承/IWBEP/CL_V4_ABS_DATA_PROVIDE