CAP的自定义逻辑错误:"无效的列名:COUNT"

2020-08-24 02:08发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)我正在使用CAP创建OData服...

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

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


我正在使用CAP创建OData服务。

目标是使以下网址正常工作。

 /analytics-output/ApplicationUsage?select = application,count&$ orderby = count 

这是服务模型。

 @readonly
     实体ApplicationUsage {
         关键应用:String(80);
             计数:十进制;
             timestamp:DateTime null;
     }
 

这是自定义逻辑(js文件)的实现

 srv.on('READ','ApplicationUsage',(req)=> {
         selectQuery ='选择'+
             "将关键的app.application作为应用程序," +
             'COUNT(app.application)as count:十进制'+
             '来自cis.fiorianalytics。动作作为动作'+
             '将action.applicationID = app.id内加入cis.fiorianalytics.Apps作为应用程序'+
             '按应用程序分组';

         让查询= cds.parse.cql(selectQuery);
        //附加时间戳记WHERE和ORDERBY条件
         query.SELECT.orderBy = req.query.SELECT.orderBy;
         query.SELECT.where = req.query.SELECT.where;
         返回cds.run(query);
     }); 

这在本地部署中效果很好,我得到了数据。 但是它无法在HANA中工作(在部署到试用版CF之后)。

我最终在浏览器中得到了一个不太有用的错误。

 <错误xmlns =" http://docs.oasis-open.org/odata/ns/metadata">
  500 
 内部服务器错误
  

当我查看SCP上的"日志"时,我看到下面的行似乎与之相关。

任何帮助将不胜感激。

(34.0 kB)
4条回答
SAP浪
2020-08-24 02:41

克里希纳,你好

" req.query.SELECT.orderBy"中的order by子句不适合您的SQL,因为该模型不知道您正在使用的联接(该模型是OData查询处理的基础)。 您需要手动调整模型或构建子句,而不是从" req.query.SELECT"中提取。

最好,
塞巴斯蒂安

一周热门 更多>