通过CAP服务接收任意有效载荷?

2020-08-18 09:05发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)专家们, 我想知道如何使CAP...

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

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


专家们,

我想知道如何使CAP服务接收和处理任意有效载荷? 背景:CAP应用程序应为另一个应用程序X提供Webhook,以向其提交通知。 X发送类似 https://cloudevents.io/负载的内容。

首先,我尝试为与期望的有效负载匹配的实体建模,但是由于有效负载包含与CDS语法不兼容的名称,因此该方法不起作用。

然后,我尝试了一个动作和一个自定义实现的简单服务。 这是因为请求已成功通过204发布到操作中。但是,在我的自定义实现中找不到有效负载。

 service EventsService {
     动作notify();
 }
 
 module.exports = srv => {
     srv.on('notify',async(req)=> {
         console.log(req.data);
     })
 }

 

有效负载示例

 {"事件类型":" SalesQuote.Root.Updated","事件类型版本":" v1","事件ID":" 00163e87-5338-1eda-a0dd-83d76d55a94a","事件 -time":" 2020-04-20T09:48:41Z",
 " data":{" root-entity-id":" 00163E8753AA1EDA9CE545168DEE707B"," entity-id":" 00163E8753AA1EDA9CE545168DEE707B"}}
 

req.data为空。 我想这是有道理的,因为我对动作建模时没有任何参数。 我浏览了req ._。req,但也找不到那里的有效载荷。

我尝试了除JSON之外的有效负载内容类型,但无法将其反序列化。

在CAP服务中是否可以访问任意有效载荷数据? 我的方法是否可行,是否有另一种模式来实现Webhook通知?

最诚挚的问候,

Manuel

5条回答
吹牛啤
2020-08-18 09:27

我确实使用了类似的东西:添加了我自己的快速路由器,并在处理传入的XML文档之后,通过企业消息将所有传入的消息发送到CAP应用程序的其余部分。 因此,我仍然可以在附加到消息传递主题的CAP处理程序中编写业务逻辑。

一周热门 更多>