CAP CDS NodeJS仅在自定义逻辑中使用过滤器的一部分

2020-08-21 22:36发布

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

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


专家们,

我有一个CAP项目,我想从两个表中获取数据,并在带有NodeJS的自定义逻辑处理程序中进行一些处理。 如果将过滤器传递给实体,我只想在一个表上使用所有过滤器,而在另一张表上使用特定的过滤器。 CAP是否为此提供了NodeJS API? 有关如何执行此操作的最佳做​​法? 现在,我这样快速又肮脏地这样做:

 let idx = req.query.SELECT.where.findIndex((filter)=> filter && filter.ref && filter.ref.find((field)=> field ===" Prop"))

 让whereProp = [];
 whereProp.push(req.query.SELECT.where [idx]);
 whereProp.push(req.query.SELECT.where [idx + 1]);
 whereProp.push(req.query.SELECT.where [idx + 2]);

 

提前谢谢!

K,伍特

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

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


专家们,

我有一个CAP项目,我想从两个表中获取数据,并在带有NodeJS的自定义逻辑处理程序中进行一些处理。 如果将过滤器传递给实体,我只想在一个表上使用所有过滤器,而在另一张表上使用特定的过滤器。 CAP是否为此提供了NodeJS API? 有关如何执行此操作的最佳做​​法? 现在,我这样快速又肮脏地这样做:

 let idx = req.query.SELECT.where.findIndex((filter)=> filter && filter.ref && filter.ref.find((field)=> field ===" Prop"))

 让whereProp = [];
 whereProp.push(req.query.SELECT.where [idx]);
 whereProp.push(req.query.SELECT.where [idx + 1]);
 whereProp.push(req.query.SELECT.where [idx + 2]);

 

提前谢谢!

K,伍特

付费偷看设置
发送
3条回答
compass1988
1楼-- · 2020-08-21 23:07

亲爱的伍特

`ref`是一个数组,该字段始终位于最后一个元素中,因此您应该只写`ref [ref.length -1]`来代替`ref.find('...')`。 如果where子句更复杂(例如,带有方括号或"或"比较,子选择等),则您的逻辑将被破坏,因此没有通用的解决方案。

最诚挚的问候,
大卫

jovirus
2楼-- · 2020-08-21 23:20

谢谢! 它将涵盖所有情况吗? 现在,我正在用EQ进行测试,但是如果我使用BT或以-结尾,该怎么办?

恐怕它不会涵盖任何情况,只看一下过滤的所有可能性:

http: //docs.oasis-open.org/odata/odata/v4.01/odata-v4.01-part1-protocol.html#_Toc31358948

其中许多肯定会破坏您的编码。

最诚挚的问候,
大卫

软件心理学工程师
3楼-- · 2020-08-21 23:25

这正是我的意思。 CAP是否有一个nodejs api可以从哪里获取特定部分的过滤器?

一周热门 更多>