OData深度实体(Deep Entity)测试
在 SAP OData 中, Deep Entity (深度实体)是指通过一次请求创建具有复杂关联关系的实体集合,其核心功能是支持事务性操作和简化多对象创建流程,优化了多对象操作效率和数据一致性。
1、创建结构/表
Tcode:SE11
(抬头表)
(明细表)
2、创建OData服务
Tcode:SEGW
通过“Data Model→Import→DDIC Structure”创建实体类型(Entity Type)。
同时会自动生成实体集(Entity Set)。
创建关联(Associations),Associations定义了实体类型之间的逻辑关系(比如1:1、1:N、N:N)。
生成运行时对象(Generation Runtime Objects),将设计阶段定义的数据模型(实体类型、关联、函数导入等)转换为可执行的ABAP代码,从而支持服务在SAP系统中的实际运行。
生成运行时对象会创建以下两类核心ABAP类:
模型提供类(Model Provider Class):定义OData模型的结构并负责与元数据交互。
数据提供类(Data Provider Class):实现服务的数据操作逻辑(CRUD操作、函数导入、导航属性处理等),处理客户端请求并返回响应。
这里需要调整以下两个类/接口(Go to ABAP Workbench):
ZCL_ZAPI_USER_INFO_DEE_MPC_EXT
ZCL_ZAPI_USER_INFO_DEE_DPC_EXT
重定义“DEFINE”方法。
进入类/接口“ZCL_ZAPI_USER_INFO_DEE_DPC_EXT”,重定义方法“/IWBEP/IF_MGW_APPL_SRV_RUNTIME~CREATE_DEEP_ENTITY”。
服务维护(Service Maintenance)
点了“Register”按钮没有任何反应,通过事务代码“/IWBEP/ERROR_LOG”查看错误Log。
注意这里的GET_ENTITY_TYPE里面的IV_ENTITY_NAME参数区分大小写。
修改之后就可以正常添加服务。
调用浏览器测试。