无法从带注释的CDS视图生成BO

2020-08-15 09:14发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)专家们, 我尝试从带有注释的C...

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

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


专家们,

我尝试从带有注释的CDS视图生成BO。 我尝试建模的实体是 Monster Monster Items 。 因此,特别是我已经完成了此博客中的步骤完成任务:

  • 创建两个数据库表来保存BO数据
  • 创建两个CDS视图
  • 向两个CDS视图添加 @ObjectModel注释
  • 保存并激活两个CDS视图

当我认为这些 @ObjectModel注释 应该如何工作时,BOPF运行时应该已经使用 ROOT节点生成了BO。 ITEM节点 。 但是不幸的是什么也没有产生。

我不知道为什么在激活CDS视图时未生成BO,因为为此任务设置了所有必需的注释。 我们正在使用以下补丁程序级别的SAP系统:

由于补丁程序级别,我们的系统可能无法识别这些从CDS View创建BO的注释吗?

这是两个CDS视图的源代码:

CDS视图Znl_Monster

 @ AbapCatalog.sqlViewName:'ZDDL_NL_I_MNSTR'
 @ AbapCatalog.compiler.compareFilter:是
 @ AccessControl.authorizationCheck:#NOT_REQUIRED
 @ EndUserText.label:'ZNL_MONSTER'

 @ Search.searchable:是
 @ Search.ranking:"高"

 @ ObjectModel.semanticKey:'MonsterId'
 @ ObjectModel.representativeKey:'MonsterId'
 @ ObjectModel.modelCategory:#BUSINESS_OBJECT
 @ ObjectModel.compositionRoot:正确
 @ ObjectModel.transactionalProcessingEnabled:正确
 @ ObjectModel.writeActivePersistence:'ZNL_D_ROOT'
 @ ObjectModel.createEnabled:是
 @ ObjectModel.deleteEnabled:是
 @ ObjectModel.updateEnabled:是

 定义视图Znl_Monster
     从znl_d_root中选择作为Monster
    //与商品的关联
     [0 .. *]与Znl_Monsteritem关联为Monster.monsterid = _MonsterItem.MonsterId {
    
    //怪物
     @ Search.defaultSearchElement:true
     @ ObjectModel.readOnly:正确
     将Monster.monsterid键设置为MonsterId,

    //名称
     将Monster.name作为Name,

    //公开协会
     @ ObjectModel.association.type:[#TO_COMPOSITION_CHILD]
     _MonsterItem//公开关联
 }
 

CDS视图Znl_Monsteritem

 @ AbapCatalog.sqlViewName:'ZDDL_NL_I_MNSTRI'
 @ AbapCatalog.compiler.compareFilter:是
 @ AccessControl.authorizationCheck:#NOT_REQUIRED
 @ EndUserText.label:'ZNL_MONSTERITEM'

 @ Search.searchable:是
 @ ObjectModel.semanticKey:['MonsterId','MonsterItemId']
 @ ObjectModel.representativeKey:'MonsterItemId'
 @ ObjectModel.writeActivePersistence:'ZNL_D_ITEM'
 @ ObjectModel.createEnabled:是
 @ ObjectModel.deleteEnabled:是
 @ ObjectModel.updateEnabled:是

 定义视图Znl_Monsteritem
     从znl_d_item中选择作为项
    
    //与标题关联
     在Item.monsterid = _Monster.MonsterId {上,作为_Monster的Znl_Monster关联[*]
    
    //怪物
     @ Search.defaultSearchElement:true
     @ ObjectModel.readOnly:正确
     键Item.monsterid作为MonsterId,
    
    //怪物物品
     @ Search.defaultSearchElement:true
     键Item.itemid作为MonsterItemId,
    
    //名称
     Item.name作为名称,
    
    //测量字段
     Item.price作为价格,
     数量作为数量,
     Item.power作为力量,
    
    //公开协会
     @ ObjectModel.association.type:[#TO_COMPOSITION_PARENT,#TO_COMPOSITION_ROOT]
     _怪物

 }
 

(82.9 kB)
6条回答

您好,

我遇到了类似的问题,即未生成子节点。 因此,我开始尝试各种变体,然后意识到在子视图中,我指定了以下内容:

semanticKey:['SalesOrder','SalesOrderItem'],

在阅读有关此注释的文档时,它指出"对于给定的实体,仅定义了一个语义键。"

所以我将其更改为以下内容:

semanticKey:['SalesOrderItem'],

然后删除我的BOPF对象并重新生成。 这解决了问题。

尝试一下,因为我不确定为什么会出现这种行为。

干杯

Vikas

一周热门 更多>