在参数化的CAP服务实体中访问/Set时,参数有效负载为空

2020-08-21 20:44发布

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

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


尊敬的专家,

我有一个带有一个参数化实体的服务定义:

 @readonly 
实体许可证(
project_ID:Licenses.project_ID,
license_ID:Licenses.license_ID
)作为my.Licenses上的投影;

为服务生成的元数据看起来与我阅读

上的文档所期望的差不多

https://cap.cloud.sap/docs/cds/cdl#services

我现在想使用参数添加一个自定义实现来读取此实体。

 this.on('READ','Licenses,(req)=> {
             console.log(要求)
             如果(typeof req.data.license_ID ==='未定义'
|| typeof req.data.project_ID ==='未定义'){ req.reject(405,'需要项目ID和许可证ID'); } 返回SELECT
.from(许可证)
.where({license_ID:req.data.license_ID,
project_ID:req.data.project_ID}) })

如果我这样请求实体,这会很好:

/许可证(project_ID ='9999',license_ID ='232323')

但是,根据文档,要真正获得结果,我需要访问/Set导航:

/许可证(project_ID ='9999',license_ID ='232323')/设置

但是对于此请求,自定义请求处理程序中的req.data为空。

这是预期的行为吗? 如何实现自己对参数化服务实体的处理?

最诚挚的问候,

Manuel

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

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


尊敬的专家,

我有一个带有一个参数化实体的服务定义:

 @readonly 
实体许可证(
project_ID:Licenses.project_ID,
license_ID:Licenses.license_ID
)作为my.Licenses上的投影;

为服务生成的元数据看起来与我阅读

上的文档所期望的差不多

https://cap.cloud.sap/docs/cds/cdl#services

我现在想使用参数添加一个自定义实现来读取此实体。

 this.on('READ','Licenses,(req)=> {
             console.log(要求)
             如果(typeof req.data.license_ID ==='未定义'
|| typeof req.data.project_ID ==='未定义'){ req.reject(405,'需要项目ID和许可证ID'); } 返回SELECT
.from(许可证)
.where({license_ID:req.data.license_ID,
project_ID:req.data.project_ID}) })

如果我这样请求实体,这会很好:

/许可证(project_ID ='9999',license_ID ='232323')

但是,根据文档,要真正获得结果,我需要访问/Set导航:

/许可证(project_ID ='9999',license_ID ='232323')/设置

但是对于此请求,自定义请求处理程序中的req.data为空。

这是预期的行为吗? 如何实现自己对参数化服务实体的处理?

最诚挚的问候,

Manuel

付费偷看设置
发送
2条回答
亦是此间程序员
1楼 · 2020-08-21 21:18.采纳回答

亲爱的曼努埃尔,

感谢您指出这一点,确实很难读取父段的数据。 在将来的版本中,我们将使其变得更容易。

根据建模实体,您可以查看查询中的条件:

 req.query.SELECT.where 

或者,您可以查看原始的OData请求:

要求_.odataReq 

我希望这会有所帮助!

最好的问候,
大卫

Doze时光
2楼-- · 2020-08-21 21:32

谢谢大卫! 我设法从req.query.SELECT.from.ref [0] .args获取参数。 不过,这似乎有点尴尬和棘手。 期待将来有更简单的方法!

一周热门 更多>