OData-基于BOPF的CDS视图-删除根节点错误-同一数据库表上有多个节点

2020-08-24 14:29发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)专家您好, 根据我们对生产性应...

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


专家您好,

根据我们对生产性应用程序(SAPUI5而不是Fiori)的要求,我已经成功创建了基于BOPF的"消费CDS视图"。 我使用服务数据源引用将其公开为SEGW中的OData服务。 我的SAP版本是7.50-SP级别16。

在我的业务对象建模中,我有一个场景,其中多个BOPF子节点引用同一数据库表。 其他所有操作(例如READ,EXPAND,DEEP CREATE,CHANGE SET)都对我有用。 但是删除我的父节点失败。

为说明我的情况,我展示了一个模拟用例。

假设我有car作为业务对象,它具有可用颜色和支持的Gas Type之类的功能。 我使用相同的DB Table for Feature,并通过具有适当FeatureID过滤器的独立视图来区分颜色或Gas Type的特征。

对于删除根节点,DAC类框架针对每个子节点尝试获取父键的相应子记录。/BOBF/CL_DAC_LEGACY_TABLE类的方法READ,从BOPF节点配置获取数据源,并从基础数据源检索。 (流程如下)

由于子节点记录了相同的数据库表,因此,如果从数据库表而不是基础CDS视图中获取子节点,则正确的父子关系将被破坏。 这会导致框架请求删除不正确的记录,由于SY-SUBRC故障而导致异常引发。

尽管从逻辑上讲应该没有什么不同,但我还是尝试使用基于DB_KEY和PARENT_KEY GUID的对象建模。 但这不起作用。

如果要求是对引用同一数据库表的多个BOPF子节点进行建模,是否建议使用其他方法?

对于我的应用程序,当前的计划是显式地处理<..> _ DPC_EXT中的根节点删除。

任何输入/建议都会很有帮助。

此致

Samson

(179.5 kB)
4条回答
Cikesha
2020-08-24 14:43

暴露单个节点并要求ui团队在该节点上应用过滤器并将其显示为多个视图会更容易吗?

我真的看不到数据模型中2个节点具有相同db的任何情况。

一周热门 更多>