事件订阅服务v4

事件订阅服务(ESS)使用SAP Concur平台中的事件驱动体系结构原则实现发布/订阅模式。它允许客户和合作伙伴通过web服务得到通知,当某些操作发生在连接的公司。当业务/系统事件发生时,ESS将该事件连同相关信息发送到配置的端点。

  • 事件-业务/系统对象或实体的状态。总是有一个EventType表示工作流中的一种实体更改类型或特定状态。示例:创建报表、提交报表等。
  • 主题-业务/系统对象或实体的事件流。例子:concur.userconcur.expense.reportconcur.travel.request
  • 订阅-话题消费者。每个订阅都有一个订阅的主题。
  • Webhook-一个使用订阅模型并向端点交付事件的ESS应用程序。

为了开始接收事件,您必须首先订阅您的应用程序的相关主题。要订阅活动,您必须与相关的SAP Concur技术联系人合作;对于合作伙伴,请与您的技术实现联系。对于客户,您的网络服务顾问将代表您订阅相关主题。

使用范围

创建订阅需要两级作用域。

的名字 描述 端点
events.topic.read 使用ESS API Get, post, put, delete
%的话题范围% 访问特定主题(事件) Get, post, put, delete
  • 如果应用程序只有events.topic.readScope将始终返回一个空的主题列表。

工艺流程

ESS工艺流程

访问控制

ESS要求调用者具有适当的JWT和范围,更多细节请参见作用域文档。调用者必须具有以下类型的作用域:

  • ESS API级别范围events.topic.read要求能够访问ESS API。
  • 例如,资源级范围expense.request.read需要能够访问expense.request主题,并能够创建该主题的订阅。

合作伙伴实施团队可以为调用方应用程序请求所有必需的范围。

ESS交付模型

重要的是要记住,ESS没有一个API,你可以调用事件,ESS交付事件到你的端点。

  • 它使用出站调用,SAP Concur提供调用由客户端或合作伙伴提供的公共URL,这是由第三方开发人员或客户端托管的web服务器。
  • 应用程序端点还可以使用相关的web服务来检索或发送SAP Concur数据。例如,在提交旅行请求时可能会生成事件。然后,应用程序端点可以利用来自事件的数据(比如请求ID),从已发布的请求api中检索相关的旅行请求记录。

终端需求

ESS保证至少一次事件交付。这是通过重试将事件有效负载发送到订阅者的端点来完成的,直到响应表明成功接收。对订户端点的请求的预期最大确认时间为30秒。服务将尝试发送到端点,然后保持并重试,直到订阅者端点以已传递或未接受响应。服务将至少重试3天,并在交付失败后跳到下一个事件。我们建议用户考虑以下事项:

  • 端点响应时间需求取决于主题吞吐量。请查看有关吞吐量的主题文档。
  • 强烈建议在订阅者端点后面实现一个队列,以便尽可能保持低响应时间。
  • 订阅者必须维持合理的正常运行时间,以支持集成场景的需求。
  • 必须使用非自签名证书从公共web访问您的HTTPS服务器端点。该证书应该由已知的证书颁发机构签署,并且应该可以通过DNS访问。

ESS身份验证

有几种方法可以确保我们的服务访问您的端点。

  • 我们将始终使用相同的客户端x509证书。通用名称是CN = webhook.api.concursolutions.com, O =同意技术\,Inc . L =贝尔维尤,华盛顿圣= C =证书序列号为0 ae315a13ab9ef8cadb9a46255c87283
  • 我们将始终使用请求头中提供的数字签名Concur-Signature.如果您决定使用此身份验证方法,您将需要我们的公钥。
-----BEGIN PUBLIC KEY----- MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAxS1LsXrEWEEMPooLHa4r oscanmko3habak0ycsdmr6hqqnlqrwp65tpbftbkwmz22hzep3ekhs1qvszgi + iq/bnVeDhkcD+LqVQGP+7fyE0E0bO96FOzMmtbRet4wAiiE9+uw5GmZfg+fRG3yI y2N5u5p7VHJ1RwNugrIUQjhrLvZc+lhqR/aKTxQCQ5CGAgLZIcr3FIWCWrSBMK3dWy3KI+qe3ZX0STrCCNxl2UFnuuAa2RZZ2j4QtWHlNkyK+UEup+cGkvpc1XrT7anL HlbTP6jE7MqB5sJ9r2EEzrJzJZjD13UqlzvI61tTC8SKpuk5AEaSsUV7RKlKUCjB 8wIDAQAB -----结束公钥-----

ESS行为

从订阅者的角度来看,事件订阅服务具有以下特征:

  • 请求来自us.api.concursolutions.comemea.api.concursolutions.com,或cn.api.concursolutions.com
  • 始终使用客户端x509证书建立连接。
  • 请求总是有一个数字签名。
  • 当订阅者使用HTTP响应代码:5xx、401、403或429进行响应时,将重新尝试请求。
  • 当订阅者使用HTTP响应代码(s)响应时,将不会重新尝试请求:
    • 2xx -表示成功接收事件。
    • 4xx -表示提交的事件是意外的或格式不正确。
  • 将重试请求,直到交付或事件保留期到期。
  • 事件保留期限为事件发布后的72小时。
  • 事件不会被归档,但所有事件传递尝试/响应都会被记录并保留30天。

在这一页上