背景:
这篇博文试图采用我在几个SAP云平台集成项目中看到的一个常见场景,我希望其他人会觉得有帮助。这是在SAP PO日内无法实现的(很容易),我很高兴在SAP云平台集成中可以实现这一点:
一条数据的多个接收器和/或发布订阅
虽然没有什么可以阻止您在一个iflow中拥有3个单一消息的接收器,但是如果第一个接收器成功,后续接收器失败。例如,如何重新启动,如何防止重复等。您可以通过SAP云平台集成中的数据存储、队列来缓解这种情况,但每次都需要定制开发。为每个接收器创建一个iflow也很麻烦,因为维护会产生不必要的负载。(例如每个iflow都会调用SuccessFactors以获得更改)
此博客旨在减少开发,并利用SAP Enterprise消息传递主题和队列来提高可重用性,以包括新的消费者。我以SuccessFactors为例,电力物联网,但是现在有一些S/4HANA事件将使用这种功能,任何希望发布事件或适合发布/订阅集成模式的系统都可以在此处使用。
注意事项:
此功能与SAP云平台集成企业版中的内置队列是分开的这个常见问题解答是一个方便的阅读(回复:许可证等)。当然也可以联系您友好的客户人员
此博客的前提条件:
了解SAP云平台集成的开发知识SAP Enterprise Messaging入门(在SAP云平台试用帐户中激活服务)在指定参数(json文件)时,可以使用以下命令。这里详细介绍了语法。这将确保消息传递和REST处于活动状态
其他有用的读取:
SAP EM–Message Broker for Events S4用于异步模式的SAP EM和CPISAP云平台企业消息–使S/4HANA事件通知更容易SAP云平台企业消息传递作为成功因素的事件总线这可以替代"调用"成功因素进行更改
场景:
成功因素员工更改被分发到多个系统。
高级步骤:
设置SAP云平台-企业消息传递(请参阅必备博客)创建主题和队列创建SAP云平台集成流以写入主题创建SAP Cloud Platform Integration flow以读取队列并确认消息
请确保您事先激活了SAP Cloud Platform–Enterprise Messaging service(请参阅前提条件)
步骤1:
登录SAP Foundry试用版并转到您的子帐户,然后转到您的共享空间
步骤2:
在您的共享空间内,单击您的企业消息实例
步骤3:
导航到服务键,并将此信息保留在记事本中以备以后使用(身份验证时需要此信息)。如果一个不存在,创造一个。这将显示通过各种协议连接到SAP Enterprise Messaging服务的所有好处
第4步:
单击打开的仪表板查看服务的情况
第5步:
现在我们将在这里创建队列。对于我们的场景来说,这有点违反直觉,但是首先创建队列。在这种情况下,创建:empReceive1和empReceive2.
步骤6:
创建两个队列订阅,引用相同的主题名称(EmployeeChanges),但引用不同的队列(empReceive1和empReceive2)。
我们将在第一个SAP云平台集成iFlow中填充主题EmployeeChanges,然后填充队列EmpReceiver1和EmpReceiver2
步骤7:
队列订阅应该如下所示这个:。一个主题包含两个将填充的队列
步骤8:
导航回队列,队列中的消息数都是0,这是我们所期望的
步骤9:
我们现在来看一下服务密钥(步骤3),它将为我们提供用于SAP云平台集成开发的身份验证令牌和URL。
1)指的是SAP Enterprise Messaging服务的管理细节。例如创建/更新队列、统计、删除等。此处的API详细信息
2)指与SAP Enterprise Messaging service的消息传递进行交互。例如,将消息发布到队列/主题,从队列/主题中读取消息。此处的API详细信息
3)指我们将用于从SAP CAN平台集成到SAP Enterprise Messaging的oauth令牌。clientid=username,clientsecret=password
4)是指我们在SAP云平台集成中用于推送/读取消息的url
在SAP云平台集成中,部署安全工件(OAuth2凭据)
令牌服务url=tokenendpoint(来自上面的服务密钥)
客户端ID=clientid(来自上面的服务密钥)
客户端Secret=clientsecret(来自上面的服务密钥)
步骤10:
创建SAP云平台集成iflow来填充主题。我们将查询SuccessFactors以获取数据并将其推送到主题。当然,这可能是任何东西(例如来自S/4、第三方系统等)
1)调用SuccessFactors来检索员工更改。
这显然可以随参数更改,以消除硬编码等,但目前,只是一个获取一些数据的简单请求。注意:在现实生活中,考虑您作为消息的构成(例如一个员工/事件)
选择人员,个人信息来自compoundemployeewhere last\u modified\u on>=to\u datetime('2018-01-11T17:59:59Z')
2)设置API调用所需的HTTP头
Content Type=application/xml
x-qos=1(当我们稍后使用此消息时,我们需要一个确认消息来确认传递并将其从队列中删除)
3)将消息发布到主题
地址=从步骤9开始uri+messagingrest/v1/topics//消息(来自API文档)
例如https://enterprise-messaging-pubsub.cfapps.eu10.hana.ondemand.com/messagingrest/v1/topics/EmployeeChanges/messages
身份验证:OAuth2客户端凭据
凭据名称:步骤9中部署的凭据
步骤11:
部署接口!
第12步:
导航回SAP云平台,查看SAP Enterprise Messaging Administration和队列
忘记了吗?转到试用帐户–转到子帐户–转到共享空间–转到服务,然后转到服务实例–然后单击仪表板按钮
Presto!SuccessFactors的一条消息已通过主题EmployeeChanges
步骤13: