从CDS视图构建BOPF业务对象

2020-09-03 15:36发布

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

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


嗨,

我正在尝试构建一个BOPF业务对象,该对象以和谐的方式代表表KNA1,KNVK和ADR2。 目的是希望能够在Fiori Elements App中为客户联系人更改姓名,地址和联系信息。

我的CDS如下

 @ AbapCatalog.sqlViewName:'ZV_I_CUST'
 @ AbapCatalog.compiler.compareFilter:是
 @ AccessControl.authorizationCheck:#检查
 @ EndUserText.label:"用于销售联系人应用程序1的客户搜索的基本视图"

 @ ObjectModel.semanticKey:'kunnr'
 @ ObjectModel.modelCategory:#BUSINESS_OBJECT
 @ ObjectModel.compositionRoot:正确
 @ ObjectModel.transactionalProcessingEnabled:是
 @ ObjectModel.writeActivePersistence:'kna1'
 @ ObjectModel.representativeKey:'kunnr'
 @ ObjectModel.updateEnabled:是

 将视图ZCDS_CAPP1_I_CUST定义为从kna1中选择的_customers
   关联[1 .. *]与ZCDS_CAPP1_I_CONTPERS
      作为$ projection.kunnr上的_contpers = _contpers.kunnr
 {
     关键kunnr,
     名称1
     ort01,
    
     -将联系暴露给联系人
     @ ObjectModel.association.type:[#TO_COMPOSITION_CHILD]
    _contpers
  }
 
 @ AbapCatalog.sqlViewName:'ZV_I_CONTPERS'
 @ AbapCatalog.compiler.compareFilter:是
 @ AccessControl.authorizationCheck:#检查
 @ EndUserText.label:"销售联系人应用程序1的联系人的基本视图"


 @ ObjectModel.semanticKey:['kunnr','parnr']
 @ ObjectModel.writeActivePersistence:'knvk'
 @ ObjectModel.representativeKey:['parnr','kunnr']
 @ ObjectModel.updateEnabled:是


 将视图ZCDS_CAPP1_I_CONTPERS定义为从knvk中选择的_contpers
   关联[1..1]与ZCDS_CAPP1_I_PHONE
        作为$ projection.prsnr上的_phone = _phone.persnumber
   关联[1..1]与ZCDS_CAPP1_I_CUST
        作为$ projection.kunnr上的_customers = _customers.kunnr

   {
     关键参数
     关键kunnr,
     名称v,
     名称1
     abtnr,
     _contpers.prsnr,
         
//将关联暴露给联系人
     @ ObjectModel.association.type:
         [#TO_COMPOSITION_PARENT,#TO_COMPOSITION_ROOT]
     _顾客,
     @ ObjectModel.association.type:[#TO_COMPOSITION_CHILD]
     _电话
 }
 
 @ AbapCatalog.sqlViewName:'ZV_I_CONTPERS_P'
 @ AbapCatalog.compiler.compareFilter:是
 @ AccessControl.authorizationCheck:#检查
 @ EndUserText.label:"联系人电话的基本视图"

 @ ObjectModel.semanticKey:" PERSNUMBER"
 @ ObjectModel.writeActivePersistence:'adr2'
 @ ObjectModel.representativeKey:'persnumber'
 @ ObjectModel.updateEnabled:是

 将视图ZCDS_CAPP1_I_PHONE定义为从adr2中选择为_phone
   关联[1..1]与ZCDS_CAPP1_I_CONTPERS
      作为$ projection.persnumber上的_contpers = _contpers.prsnr
   {
     关键人物
     telnr_long,
    
//将关联暴露给联系人
     @ ObjectModel.association.type:[#TO_COMPOSITION_PARENT]
     _contpers
    
//@ ObjectModel.association.type:[#TO_COMPOSITION_ROOT]
//_contpers._customers
 }
 

据我了解,即使对于我的最后一个CDS,我也必须声明一个导航到根元素。 我尝试了几种不同的选择,但似乎都没有用。 有什么建议吗?

另外,激活说

时,我在Eclipse中收到一条错误消息
 [BO同步]找不到关联_PHONE中的源属性PARNR(查看ZCDS_CAPP1_I_CONTPERS)

这是什么意思,更重要的是,我该如何解决?

亲切的问候,

格伦

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

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


嗨,

我正在尝试构建一个BOPF业务对象,该对象以和谐的方式代表表KNA1,KNVK和ADR2。 目的是希望能够在Fiori Elements App中为客户联系人更改姓名,地址和联系信息。

我的CDS如下

 @ AbapCatalog.sqlViewName:'ZV_I_CUST'
 @ AbapCatalog.compiler.compareFilter:是
 @ AccessControl.authorizationCheck:#检查
 @ EndUserText.label:"用于销售联系人应用程序1的客户搜索的基本视图"

 @ ObjectModel.semanticKey:'kunnr'
 @ ObjectModel.modelCategory:#BUSINESS_OBJECT
 @ ObjectModel.compositionRoot:正确
 @ ObjectModel.transactionalProcessingEnabled:是
 @ ObjectModel.writeActivePersistence:'kna1'
 @ ObjectModel.representativeKey:'kunnr'
 @ ObjectModel.updateEnabled:是

 将视图ZCDS_CAPP1_I_CUST定义为从kna1中选择的_customers
   关联[1 .. *]与ZCDS_CAPP1_I_CONTPERS
      作为$ projection.kunnr上的_contpers = _contpers.kunnr
 {
     关键kunnr,
     名称1
     ort01,
    
     -将联系暴露给联系人
     @ ObjectModel.association.type:[#TO_COMPOSITION_CHILD]
    _contpers
  }
 
 @ AbapCatalog.sqlViewName:'ZV_I_CONTPERS'
 @ AbapCatalog.compiler.compareFilter:是
 @ AccessControl.authorizationCheck:#检查
 @ EndUserText.label:"销售联系人应用程序1的联系人的基本视图"


 @ ObjectModel.semanticKey:['kunnr','parnr']
 @ ObjectModel.writeActivePersistence:'knvk'
 @ ObjectModel.representativeKey:['parnr','kunnr']
 @ ObjectModel.updateEnabled:是


 将视图ZCDS_CAPP1_I_CONTPERS定义为从knvk中选择的_contpers
   关联[1..1]与ZCDS_CAPP1_I_PHONE
        作为$ projection.prsnr上的_phone = _phone.persnumber
   关联[1..1]与ZCDS_CAPP1_I_CUST
        作为$ projection.kunnr上的_customers = _customers.kunnr

   {
     关键参数
     关键kunnr,
     名称v,
     名称1
     abtnr,
     _contpers.prsnr,
         
//将关联暴露给联系人
     @ ObjectModel.association.type:
         [#TO_COMPOSITION_PARENT,#TO_COMPOSITION_ROOT]
     _顾客,
     @ ObjectModel.association.type:[#TO_COMPOSITION_CHILD]
     _电话
 }
 
 @ AbapCatalog.sqlViewName:'ZV_I_CONTPERS_P'
 @ AbapCatalog.compiler.compareFilter:是
 @ AccessControl.authorizationCheck:#检查
 @ EndUserText.label:"联系人电话的基本视图"

 @ ObjectModel.semanticKey:" PERSNUMBER"
 @ ObjectModel.writeActivePersistence:'adr2'
 @ ObjectModel.representativeKey:'persnumber'
 @ ObjectModel.updateEnabled:是

 将视图ZCDS_CAPP1_I_PHONE定义为从adr2中选择为_phone
   关联[1..1]与ZCDS_CAPP1_I_CONTPERS
      作为$ projection.persnumber上的_contpers = _contpers.prsnr
   {
     关键人物
     telnr_long,
    
//将关联暴露给联系人
     @ ObjectModel.association.type:[#TO_COMPOSITION_PARENT]
     _contpers
    
//@ ObjectModel.association.type:[#TO_COMPOSITION_ROOT]
//_contpers._customers
 }
 

据我了解,即使对于我的最后一个CDS,我也必须声明一个导航到根元素。 我尝试了几种不同的选择,但似乎都没有用。 有什么建议吗?

另外,激活说

时,我在Eclipse中收到一条错误消息
 [BO同步]找不到关联_PHONE中的源属性PARNR(查看ZCDS_CAPP1_I_CONTPERS)

这是什么意思,更重要的是,我该如何解决?

亲切的问候,

格伦

付费偷看设置
发送
4条回答
软件心理学工程师
1楼-- · 2020-09-03 15:55

撞到这个。 没有人有任何线索吗?

天桥码农
2楼-- · 2020-09-03 15:54

根据我的观察,所有子视图都应该与父视图有关系。 因此,子级(第2层或第3层或第4层。..)应该具有根视图键字段,并且您需要使用注释" @ ObjectModel.association.type:[#TO_COMPOSITION_ROOT]"

哎,真难
3楼-- · 2020-09-03 15:54

嘿格伦,

您找到了解决此问题的方法吗?

绿领巾童鞋
4楼-- · 2020-09-03 16:01

Glenn Karlsson TimMüller大家好,您有没有找到解决方案?

一周热门 更多>