使用回调 URL

回调是在特定任务之后执行的函数,通常用于异步事件的编程。 在 IBM RPA 机器人的情况下,回调 URL 是机器人进行通信的指定 Web 地址,可发送通知以确保无缝集成和实时响应。

回调 URL 在IBM RPA机器人中发挥着关键作用,是虚拟通信渠道。 这些 URL 充当机器人可以在其中发送通知或响应的指定端点,从而支持机器人与外部系统之间的无缝集成和交互。

其中一个集成是与 IBM watsonx Orchestrate 集成,您可以将自动化作为技能导入。 从那里,用户可以在无代码用户界面中访问和运行自动化。 有关详细信息,请参阅 IBM watsonx Orchestrate 文档中的 IBM Robotic Process Automation

开始之前

  • 您必须有一个正在监听您设置的端点的回调服务器。 IBM Robotic Process Automation 服务器会在机器人完成后向回调 URL 上设置的端点发送 POST HTTP 请求。
    • 为回调 URL 提供端点的回调服务器必须使用由认证机构 (CA) 签发的证书进行认证。 请参阅 订购 CA 签名证书,了解如何订购 CA 签名证书。
  • 您必须将 URL 添加到允许列表中。 请参阅 将 URL 添加到 IBM RPA allowlist 中。
  • 通过 API 运行机器人时,只能使用回调 URL。 请参阅 机器人 API

将 URL 添加到 IBM RPA 允许列表

  1. 登录到 IBM RPA Control Center。
  2. 单击 租户
  3. 在 " 租户配置 " 选项卡上,单击 安全设置
  4. 单击 添加条目
  5. 向允许列表添加域或 IP 地址。

过程

要在运行机器人时使用回调 URL,必须在使用 Bots APIs 中的端点运行机器人时设置 callbackUrl 标头。

机器人完成运行后,IBM RPA 服务器会向您设置的回调 URL 发送以下 HTTP 请求:

POST <CALLBACK_URL_ENDPOINT> HTTP/1.1
Host: <CALLBACK_URL_HOST>
Content-Length: <calculated_during_request>
Content-Type: application/json; charset=utf-8
Expect: 100-continue
X-Forwarded-For: <calculated_during_request>
X-Forwarded-Proto: https
Accept-Encoding: gzip

{
  "jobId": "<JOB_ID>"
  "input": <JSON_INPUT_VARIABLES>
  "output": <JSON_OUTPUT_VARIABLES>,
  "runtimeException": {
      "code": <null | initializationException | runtimeException>
      "message": <ERROR_STRING>
  }
}

其中:

  • <JOB_ID>

    机器人运行的标识符。

  • <JSON_INPUT_VARIABLES>

    包含机器人脚本输入变量及其加载值的 JSON 文件。 如果脚本没有任何输入变量,则该值为 Null 。 有关输入变量的更多信息,请参阅 使用设计器模式创建变量

    例如,如果运行一个机器人,其输出变量为 name,当机器人运行结束时,name 中存储的值为 Doe,则 input 的 JSON 返回值为

    {"name": "Doe"}
    
  • <JSON_OUTPUT_VARIABLES>

    包含机器人脚本输出变量及其加载值的 JSON 文件。 如果脚本没有任何输出变量,则该值为 Null 。 有关输出变量的更多信息,请参阅 使用设计器模式创建变量

    例如,如果运行一个机器人,其输出变量为 name,当机器人运行结束时,name 中存储的值为 Doe,则 output 的 JSON 返回值为

    {"name": "Doe"}
    

    从23.0.17版本开始,您的回调服务器必须要求机器人的输出变量始终以小写字母开头。

  • <initializationException | runtimeException>

    机器人失败时的错误类型。 错误代码:null 如果没有错误;initializationException 如果机器人无法启动;或 runtimeException 如果机器人启动但运行失败。

  • <ERROR_STRING>

    机器人失败时的错误信息。

失败政策

从版本 23.0.2 开始,当 IBM RPA 服务器向回调服务器发送请求时,如果回调服务器响应 HTTP 4xx 代码之一或证书验证失败(因为回调 URL 端点的证书是自签名的或端点没有证书),则 IBM RPA 服务器不会重试回调调用。 否则,IBM RPA 服务器将退回到 23.0.0 和 23.0.1 重试规则。

对于 23.0.0 和 23.0.1 版本,IBM RPA 服务器会根据以下规则重试回调呼叫:

  1. 尝试两次,间隔 1 分钟。
  2. 如果前一条规则失败,则尝试 5 次,每次间隔 2 分钟。
  3. 如果前一条规则失败,则尝试 3 次,每次间隔 10 分钟。
  4. 如果前一条规则失败,则尝试 5 次,每次间隔 30 分钟。
  5. 如果前一条规则失败,则每小时尝试一次,持续 2 天。
  6. 如果前一条规则失败,则停止尝试。