CDS密钥是GENERATED_ID,而不是指定的密钥

2020-08-31 08:21发布

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

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


我正在使用Fiori列表报告模板。 涉及许多视图,但问题出在顶层TOTALS视图ZDDL_FI_C_OPEX。

我将该视图的KEY定义为:KEY:GJAHR + MONAT + KOSTL + HKONT

此视图具有关联关系,可深入查看构成该总计(Total)的文档(关键字:GJAHR + BUKRS + BELNR + BUZEI)

但是,下面的CDS视图正在创建GENERATED_ID作为"总计"视图的KEY,这将钻取细分为_items。

有人知道如何处理吗?

谢谢

蒂姆

CDS顶视图

 @ AbapCatalog.sqlViewName:'ZSQL_FI_C_OPEX'
 @ AbapCatalog.compiler.compareFilter:假
 @ AccessControl.authorizationCheck:#NOT_REQUIRED
 @ EndUserText.label:" Opex成本中心消耗量"
 @ AbapCatalog.preserveKey:是
 @ Metadata.ignorePropagatedAnnotations:正确
 @ClientDependent:是

 @ OData.publish:正确

 定义视图ZDDL_FI_C_OPEX
                              
 从ZDDL_FI_B_OPEX_T中选择
           将[0 .. *]与ZDDL_FI_B_PER关联为_line
             在$ projection.gjahr = _line.gjahr
             和$ projection.monat = _line.monat
             和$ projection.kostl = _line.kostl
             和$ projection.hkont = _line.hkont
 {
    @ UI.selectionField.position:10
   @ Semantics.fiscal.year:正确
   关键gjahr为gjahr,
   @ UI.selectionField.position:20
   主要monat为monat,
   @ UI.lineItem.position:30
   关键kostl为kostl,
   @ UI.lineItem.position:40
   关键hkont作为hkont,

   @ UI.lineItem.position:50
   @ Semantics.currencyCode:是
   hwae2就像hwae2,
  
   @ UI.lineItem.position:60
   @DefaultAggregation:#SUM
   @ Semantics.amount.currencyCode:'hwae2'
   像小孩一样
  
   @ UI.lineItem.position:70
   @DefaultAggregation:#SUM
   @ Semantics.amount.currencyCode:'hwae2'
   与ytd一样,
  
   _线
  
 }
 

$ Metadata(Generated_ID作为ZDDL_FI_C_OPEXType的键是问题

 ...

 -

 -<键>
 
 
 
 
 
 ...
 -
 -<键>
 
 
 
 <属性sap:label ="财政年度" Name =" gjahr" sap:display-format =" NonNegative" MaxLength =" 4" Type =" Edm.String" sap:aggregation-role =" dimension"/>
 <属性sap:label ="发布期间" Name =" monat" sap:display-format =" NonNegative" MaxLength =" 2" Type =" Edm.String" sap:aggregation-role =" dimension"/>
 <属性sap:label ="成本中心" Name =" kostl" sap:display-format =" UpperCase" MaxLength =" 10" Type =" Edm.String" sap:aggregation-role =" dimension"/>
 <属性sap:label ="总帐科目" Name =" hkont" sap:display-format =" UpperCase" MaxLength =" 10" Type =" Edm.String" sap:aggregation-role =" dimension"/>
 <属性sap:label ="本地货币2" Name =" hwae2" MaxLength =" 5" Type =" Edm.String" sap:semantics =" currency-code" sap:aggregation-role =" dimension"/>
 <属性名称=" tot"类型=" Edm.Decimal" sap:unit =" hwae2" Scale =" 3" Precision =" 22" sap:aggregation-role =" measure" sap:filterable =" false"/>
 <属性名称=" ytd"类型=" Edm.Decimal" sap:unit =" hwae2" Scale =" 3" Precision =" 19" sap:aggregation-role =" measure" sap:filterable =" false"/>
 
         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

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


我正在使用Fiori列表报告模板。 涉及许多视图,但问题出在顶层TOTALS视图ZDDL_FI_C_OPEX。

我将该视图的KEY定义为:KEY:GJAHR + MONAT + KOSTL + HKONT

此视图具有关联关系,可深入查看构成该总计(Total)的文档(关键字:GJAHR + BUKRS + BELNR + BUZEI)

但是,下面的CDS视图正在创建GENERATED_ID作为"总计"视图的KEY,这将钻取细分为_items。

有人知道如何处理吗?

谢谢

蒂姆

CDS顶视图

 @ AbapCatalog.sqlViewName:'ZSQL_FI_C_OPEX'
 @ AbapCatalog.compiler.compareFilter:假
 @ AccessControl.authorizationCheck:#NOT_REQUIRED
 @ EndUserText.label:" Opex成本中心消耗量"
 @ AbapCatalog.preserveKey:是
 @ Metadata.ignorePropagatedAnnotations:正确
 @ClientDependent:是

 @ OData.publish:正确

 定义视图ZDDL_FI_C_OPEX
                              
 从ZDDL_FI_B_OPEX_T中选择
           将[0 .. *]与ZDDL_FI_B_PER关联为_line
             在$ projection.gjahr = _line.gjahr
             和$ projection.monat = _line.monat
             和$ projection.kostl = _line.kostl
             和$ projection.hkont = _line.hkont
 {
    @ UI.selectionField.position:10
   @ Semantics.fiscal.year:正确
   关键gjahr为gjahr,
   @ UI.selectionField.position:20
   主要monat为monat,
   @ UI.lineItem.position:30
   关键kostl为kostl,
   @ UI.lineItem.position:40
   关键hkont作为hkont,

   @ UI.lineItem.position:50
   @ Semantics.currencyCode:是
   hwae2就像hwae2,
  
   @ UI.lineItem.position:60
   @DefaultAggregation:#SUM
   @ Semantics.amount.currencyCode:'hwae2'
   像小孩一样
  
   @ UI.lineItem.position:70
   @DefaultAggregation:#SUM
   @ Semantics.amount.currencyCode:'hwae2'
   与ytd一样,
  
   _线
  
 }
 

$ Metadata(Generated_ID作为ZDDL_FI_C_OPEXType的键是问题

 ...

 -

 -<键>
 
 
 
 
 
 ...
 -
 -<键>
 
 
 
 <属性sap:label ="财政年度" Name =" gjahr" sap:display-format =" NonNegative" MaxLength =" 4" Type =" Edm.String" sap:aggregation-role =" dimension"/>
 <属性sap:label ="发布期间" Name =" monat" sap:display-format =" NonNegative" MaxLength =" 2" Type =" Edm.String" sap:aggregation-role =" dimension"/>
 <属性sap:label ="成本中心" Name =" kostl" sap:display-format =" UpperCase" MaxLength =" 10" Type =" Edm.String" sap:aggregation-role =" dimension"/>
 <属性sap:label ="总帐科目" Name =" hkont" sap:display-format =" UpperCase" MaxLength =" 10" Type =" Edm.String" sap:aggregation-role =" dimension"/>
 <属性sap:label ="本地货币2" Name =" hwae2" MaxLength =" 5" Type =" Edm.String" sap:semantics =" currency-code" sap:aggregation-role =" dimension"/>
 <属性名称=" tot"类型=" Edm.Decimal" sap:unit =" hwae2" Scale =" 3" Precision =" 22" sap:aggregation-role =" measure" sap:filterable =" false"/>
 <属性名称=" ytd"类型=" Edm.Decimal" sap:unit =" hwae2" Scale =" 3" Precision =" 19" sap:aggregation-role =" measure" sap:filterable =" false"/>
 
付费偷看设置
发送
3条回答
CJones
1楼-- · 2020-08-31 09:11

为什么我知道它是generate_id

前端; 之所以称为OPEX2 ..,是因为我重新创建了它以查看缓存是否有问题

后端(不期望generate_ID)

打个大熊猫
2楼-- · 2020-08-31 09:13

部分解决了我的问题。 当我删除@DefaultAggregation:#SUM时,GENERATED_ID被替换为我指定的KEY,并且与_line的关联起作用了! - 但为什么? 现在,我已经在WebIDE中进行了一些修改,以使其再次成为Grid报表...。

有人吗? Bueller?

-蒂姆

d56caomao
3楼-- · 2020-08-31 09:12

Hello Timothy,

我有完全相同的问题。 我在视图中需要注释@DefaultAggregation:#SUM,但是随后生成的ID替换了我的关键字段。

您是否已成功删除了Generated ID,同时保留了@DefaultAggregation注解:#SUM?

最好

卡尔

一周热门 更多>