一个朋友遇到问题:给 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-.html
可以尝试去后台使用事务码 /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_gw_dt_cds/sadl_gw_dt_cds004
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 框架。
标签:ObjectModel,transactional,视图,source,CDS,SAP,OData,view From: https://www.cnblogs.com/sap-jerry/p/17343445.html