乐趣区

关于sap:Data-source-is-not-a-transactional-CDS-view-OData-Exposure

一个敌人遇到问题:给 ABAP CDS view 增加 OData.publish: true 注解激活之后,冀望主动生成 OData 服务,然而遇到谬误音讯:

Data source is not a transactional CDS view [OData Exposure]

SAP 社区上有人问相似的问题:https://answers.sap.com/questions/78804/cds-view-annotation-….

能够尝试去后盾应用事务码 /IWFND/MAINT_SERVICE, 对 OData 服务 ZFLIGHT_COM_CDS 手动激活。

如果后盾激活 OData 服务后,回到 ABAP Development Tool 里激活 CDS view,还是遇到 Data source is not a transactional CDS view [OData Exposure] 的谬误音讯,那么参照这个帖子:

https://www.michaelmanagement.com/sap-error-messages/en/sadl_…

Either add the annotation ‘@ObjectModel.transactionalProcessingEnabled:
true’ to the underlying CDS view or remove the annotation
‘@ObjectModel.transactionalProcessingDelegated’ from the consumption
view.

意思是要么给 zspfli_root 这个 underlying CDS view 里增加 @ObjectModel.transactionalProcessingEnabled 注解,要么从 consumption view zflight_com 里移除 @ObjectModel.transactionalProcessingDelegated.

背景常识

什么是 SAP core data service consumption view?

参考这篇博客,consumption view 是在 composite view 之上创立的,这意味着生产视图不与 DDIC 表 / 视图或根本视图交互。生产视图写在提供事实数据和多维数据集数据的复合视图之上。此视图用于将数据公开给不同的剖析工具(例如 HTML、SAP BusinessObjects、Analysis for Excel、SAP Lumira 等),这有助于创立报告和不同的可视化来出现业务数据。

什么是 SAP core data service composite view?

复合视图是在根本视图之上创立的,这意味着复合视图不间接与数据库进行数据交互,而是通过根本视图的维度后果集进行交互。多个根本视图能够与连贯 / 关联一起应用,以获取数据并对检索到的数据进行计算(例如:应用内置表达式和函数),以应用生产视图在不同的剖析工具中生产。

如果想进行某种事务处理,须要应用 @ObjectModel.transactionalProcessingEnabled 来润饰 CDS view.

如果只有剖析场景或用例,或者只想读取数据,则不须要 ObjectModel 正文,因为在这些状况下不须要 Business Object 或 BOPF 框架。

退出移动版