CAP:汇总

2020-08-24 16:55发布

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

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


嗨,

我正在尝试使用CAP来聚合OData实体。

业务案例:每次用户访问应用程序时,它将在数据库实体" demo.Actions"中创建一个条目。 实体" demo.Actions"具有application和userId作为元素。 我试图找到一个应用程序的与众不同的用户计数。

首先,我尝试了以下注释方法。

 @ Aggregation.ApplySupported.PropertyRestrictions:正确
  实体操作,请从demo.Actions {
    关键应用
    用户身份,
    @ Analytics.Measure:是
    @ Aggregation.default:#COUNT_DISTINCT
    @ Aggregation.referenceElement:['userID']
    1作为用户数:整数
  };
 

没有发生聚集。 " usercount"始终将1作为值。

接下来,我尝试了SQL方式。

从演示中选择
实体Actions1作为动作{
         关键应用
         用户身份,
         计数(不同的用户ID)作为用户计数
     }按应用分组

 

现在我收到一条错误消息,提示尚不支持函数中的 DISTINCTCDS(

除了此处的参考文献外,CAP文档没有任何帮助。 https://cap.cloud.sap/docs/guides/generic-providers#aggregation

有没有一种方法可以实现我需要的汇总?

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

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


嗨,

我正在尝试使用CAP来聚合OData实体。

业务案例:每次用户访问应用程序时,它将在数据库实体" demo.Actions"中创建一个条目。 实体" demo.Actions"具有application和userId作为元素。 我试图找到一个应用程序的与众不同的用户计数。

首先,我尝试了以下注释方法。

 @ Aggregation.ApplySupported.PropertyRestrictions:正确
  实体操作,请从demo.Actions {
    关键应用
    用户身份,
    @ Analytics.Measure:是
    @ Aggregation.default:#COUNT_DISTINCT
    @ Aggregation.referenceElement:['userID']
    1作为用户数:整数
  };
 

没有发生聚集。 " usercount"始终将1作为值。

接下来,我尝试了SQL方式。

从演示中选择
实体Actions1作为动作{
         关键应用
         用户身份,
         计数(不同的用户ID)作为用户计数
     }按应用分组

 

现在我收到一条错误消息,提示尚不支持函数中的 DISTINCTCDS(

除了此处的参考文献外,CAP文档没有任何帮助。 https://cap.cloud.sap/docs/guides/generic-providers#aggregation

有没有一种方法可以实现我需要的汇总?

付费偷看设置
发送
6条回答
悠然的二货
1楼 · 2020-08-24 17:45.采纳回答

我最终创建了"自定义逻辑",在这里我获取未聚合的数据并进行聚合。

三十六小时_GS
2楼-- · 2020-08-24 17:47

嗨, Hans-Joachim Both

也许您可以帮忙吗?

感谢和问候,
David

渐行渐远_HoldOn
3楼-- · 2020-08-24 17:33

countdistinct根本不是HANA函数-但它不会引发错误(!),并且将1:1转换为。 hdbcds。 通过后处理,我的意思是使用诸如sed之类的命令行工具,并在生成的.hdbcds中将countdistinct(再次替换为count(distinct,以准备部署)。

Nir深蓝
4楼-- · 2020-08-24 17:31

哇... countdistinct很奇怪。 考虑到自宣布为GA以来已超过18个月,预期CAP将支持此功能。

吹牛啤
5楼-- · 2020-08-24 17:42

我也有同样的问题。不支持COUNT(distinct ...)确实很烦人。 在TechEd 2019上与Daniel Hutzel进行了交谈,他惊讶地发现它超出了范围,并基本上称其为错误/缺失功能。

它还可以防止人们将.hdbcds迁移到.cds ... .hdbcds支持count(distinct ...)!

我已经考虑过将代码更改为countdistinct(...),该代码将1:1转换为生成的.hdbcds,然后通过在部署之前将countdistinct(替换为count(distinct)来对.hdbcds进行后处理。

软件心理学工程师
6楼-- · 2020-08-24 17:47

感谢您的答复。我不知道countdistinct。.cds支持它吗?与count(DISTINCT)有什么不同?

一周热门 更多>