CAP:如何通过CDS API获得新创建的实体?

2020-08-14 23:14发布

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

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


你好

当我们使用通过CDS公开的OData服务时,对实体的POST请求将创建一个新行,并将其作为响应正文的一部分返回。 在自定义处理程序中使用cds apis时,如何获得这个新创建的数据行?

我的目标是通过在服务定义的事件处理程序中使用cds.transaction或INSERT.into()或类似的API创建新的数据行。 当前,这些api返回受影响的行数 用于插入,删除和更新呼叫。

谢谢

浓淡

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

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


你好

当我们使用通过CDS公开的OData服务时,对实体的POST请求将创建一个新行,并将其作为响应正文的一部分返回。 在自定义处理程序中使用cds apis时,如何获得这个新创建的数据行?

我的目标是通过在服务定义的事件处理程序中使用cds.transaction或INSERT.into()或类似的API创建新的数据行。 当前,这些api返回受影响的行数 用于插入,删除和更新呼叫。

谢谢

浓淡

付费偷看设置
发送
5条回答
太Q了
1楼 · 2020-08-14 23:55.采纳回答

嗨,

您可以自己生成UUID,只需编写

 const generateUUID = require('@ sap/cds-foss')('uuid/v4')

 const uuid = generateUUID()

最诚挚的问候,

大卫

路亽曱_Ryan
2楼-- · 2020-08-14 23:53

谢谢大卫! 非常感谢。

粗暴的香蕉
3楼-- · 2020-08-14 23:53

嗨Ashish,

是的,这些查询返回受影响的行数。 您将需要触发SELECT请求以读取这些行-或可以注册一个after处理程序,该处理程序在通用的on处理程序之后运行,可以访问数据(回调函数的第一个参数):

https://cap.cloud.sap/docs/node。 js/api#service-after

最好的问候,
David

SAP小菜
4楼-- · 2020-08-14 23:48

进一步考虑,另一种方法是自己生成UUID并使用它。 如果您认为有更好的方法,请告诉我您的建议。

谢谢。

打个大熊猫
5楼-- · 2020-08-14 23:29

嗨,尼古拉斯,

是的,您需要附加的SELECT来检索插入的数据。 这是数据库客户端的工作方式,它们仅返回受影响的行数。

最好的问候,
大卫

一周热门 更多>