变量

变量是一种集成元素,用于在集成的任务、触发器和边缘之间保存和传输数据。

  • 变量可以在设计时静态定义、在运行时动态传递到集成,
  • 也可以引用集成中的其他变量。
  • 变量可供所有任务全局访问,也可以仅供特定任务本地访问。

变量

在 Application Integration 中,变量可在多个位置设置或初始化:

  • 配置变量:在设计时设置,用于存储集成的配置数据。例如,您可以使用此方法来设置通知的目标电子邮件地址,而不是在集成中对该电子邮件地址进行硬编码。
  • 系统变量:由系统自动生成,用于存储集成的配置数据。例如,ExecutionId 变量存储集成的执行 ID。
  • 集成变量:在集成中显式设置,用于在整个集成执行过程中跟踪数据。例如,您可以设置一个变量来存储任务的结果,并在后续任务中使用该变量。
  • 任务变量:通过执行特定任务隐式设置,用于存储任务的输出。例如,“调用 REST 端点”任务会设置 responseBody 变量来存储 REST 端点的响应正文。任务变量也称为自动生成的变量。自动生成的变量采用特殊的命名惯例,即在变量名称前后使用反引号。

集成变量

集成变量(包括输入变量和输出变量)类似于编程语言中使用的变量。在集成执行过程中,可以读取和写入变量中的数据。

可通过以下方式使用集成变量:

  • 作为集成的输入获取,也称为输入变量
  • 作为集成的输出返回,也称为输出变量
  • 用于在集成执行期间保存临时状态。

将变量标记为输入变量后,您便表示在触发集成时需要提供该变量的值。在集成执行期间,可以修改输入变量的值。

将变量标记为输出变量后,您便表示该变量的最终值应作为集成响应的一部分返回。

变量的值不一定要在集成中静态定义。可以使用触发器将变量值传递到集成中。但是,如果在集成中静态定义了变量,同时通过触发器动态提供相同的变量,则动态值分配将覆盖静态分配。

支持的数据类型

集成变量支持以下数据类型:

  • 字符串和字符串数组
  • 整数和整数数组
  • 双精度型和双精度型数组
  • 布尔值和布尔值数组
  • JSON

任务变量

任务变量是为任务自动生成的预定义变量。如果任务有输出,则任务变量中将包含所有此类输出。您无法删除或修改任务变量。任务变量也称为自动生成的变量

任务变量的唯一名称遵循特殊的命名惯例:它在变量名称周围使用反引号,并包含任务 ID。格式为 `<Task ID>_<Variable Name>`

例如,调用 REST 端点 任务具有响应正文的输出。如果此任务的 ID 为 Task_5,则响应正文的唯一任务变量名称为 `Task_5_responseBody`

变量窗格中,任务变量可能会按通用输出名称(例如 responseBody)列出,而没有任务 ID 或反引号。如需查看引用所需的完整唯一变量名称,请点击窗格中的变量,然后在右侧面板中查看其详细信息。

配置变量

借助配置变量,您可以实现集成配置外部化。利用配置变量,您可以基于开发环境(例如质量检查、预演或生产环境)配置集成的各个方面,例如连接器详细信息、身份验证详细信息或网址端点。在将集成上传到新环境之前,您无需手动更新集成。借助 Application Integration,您可以在发布集成时为配置变量输入值。

如需查看和修改集成中定义的配置变量,请点击变量窗格中的 variable_add 集成配置变量。如需了解如何创建和使用配置变量,请参阅为集成构建 CICD 教程。

系统变量

创建集成时,系统会自动生成系统变量。您可以在集成任务中使用这些变量,并处理错误。集成包含以下系统生成的变量:

  • ErrorInfo:如果执行失败,您可以使用 ErrorInfo 变量访问错误详情:
    {
      "ErrorInfo": {
      "message": String,
      "code": Number
      }
    }
    

    您可以通过创建名为 ErrorMessage集成变量来访问错误消息。不过,我们建议您使用系统生成的 ErrorInfo.message 变量来访问错误消息。

  • ExecutionMode:基于触发器的执行模式。有效值为 SYNCASYNC
  • ExecutionId:集成执行 ID。
  • IntegrationName:集成的名称。
  • Region:集成的区域。
  • ProjectId:包含集成功能的项目 ID。

查看变量

您可以使用变量窗格来创建、修改、查看、复制和删除集成中的变量。变量窗格还会显示集成中变量引用的总数。

如需查看变量窗格,请点击设计器导航栏中的 (切换面板)。

下图显示了变量窗格的示例布局:

集成设计器变量 集成设计器变量

查看和修改配置变量

如需查看集成中定义的配置变量,请点击变量窗格中的 variable_add 集成配置变量。系统随即会显示配置变量窗格,其中会显示集成中定义的所有配置变量。您只需点击字段即可修改配置变量的值。

下图显示了配置变量窗格的示例布局:

集成配置变量 集成配置变量

创建变量

如需创建变量,请执行以下步骤:

  1. 在集成编辑器导航栏中,点击 (切换面板)以显示变量窗格。
  2. 点击 +创建
  3. 创建变量窗格中执行以下操作:
    1. 名称:输入变量的名称。
    2. 变量类型:选择变量的类型。
    3. 数据类型 说明
      集成中的局部变量。
      集成的配置变量 集成中的配置变量
      输入到集成 在执行期间,变量将作为已执行触发器的输入提供。
      集成的输出 变量在执行结束时的最终值应输出给集成的调用方。
      集成的输入和输出 在执行时,变量将作为已执行触发器的输入提供,其最终值将输出给集成调用方。
    4. 数据类型:选择变量的数据类型。您可以使用变量名称旁边的图标来标识变量的数据类型。
      数据类型 示例
      字符串 Alex
      整数 30
      双精度型 30.5
      布尔值 true
      JSON { "employee":{"name":"Alex", "age":30, "city":"Mountain View"} }
      字符串数组 Alex, Kai, Raha
      整数数组 30, 25, 22
      双精度型数组 30.5, 25.34, 22.134
      布尔值数组 true, false, false

      如需了解支持的数据类型,请参阅支持的数据类型

    5. 默认值:输入变量的默认值。这是一个可选字段。
    6. 架构:选择变量的 JSON 架构。
      • 根据示例 JSON 载荷推断:根据示例 JSON 载荷生成 JSON 架构。示例载荷在架构生成后会被舍弃。系统将仅保存生成的架构。
      • 输入 JSON 架构:手动输入整个 JSON 架构。
      • 根据默认值推断:使用提供的默认值生成 JSON 架构。
      • :无 JSON 架构。
    7. 遮盖日志中的变量(预览版):选择此选项可为集成执行日志中的变量启用遮盖。如需为变量启用遮盖功能,您必须为集成和区域启用遮盖变量。如需了解如何为集成和区域启用遮盖功能,请参阅修改集成修改区域

      如需了解有关遮盖的信息,请参阅遮盖日志中的敏感数据

  4. 点击创建

集成中的变量如何运作

在集成执行期间,运行时数据将作为针对集成或任务声明的变量传递。执行开始后,输入数据将转换为名为 Event 的内存对象。

Event 对象创建后,系统会使用集成定义来构建任务的内存图表。传入的变量值将根据您的配置传递给任务。集成执行时,任务会从 Event 对象读取数据并向其写回数据,以供后续任务使用或形成集成的输出数据。

下表总结了不同类型的变量及其行为:

变量类型 说明 行为 示例
配置变量 存储集成的配置数据。 在设计时设置,可以在发布集成时修改。 用于接收通知的目标电子邮件地址。
系统变量 由系统自动生成。 只读,无法修改。 ExecutionId 变量。
集成变量 在整个集成执行过程中跟踪数据。 在集成中明确设置,可在集成执行期间进行修改。 用于存储任务结果的变量。
任务变量 存储特定任务的输出。 通过执行任务隐式设置,无法修改。 调用 REST 端点任务的 responseBody 变量。

变量引用

集成中的任务、触发器和边缘使用变量引用读取和写入变量。变量引用采用 $paramKey$ 格式,其中 paramKey 是变量的名称。

$isNameUnique$ = true AND $numAccounts$ >= 1

例如:

  • 边缘条件可能如下所示:
    $isNameUnique$ = true AND $numAccounts$ >= 1

    在此示例中,isNameUnique 是数据类型为布尔值的变量,numAccounts 是数据类型为整数的参数。

  • 您可以在应用集成工作流中为新用户注册创建电子邮件通知。假设您有两个变量:

    • $userName$:保存新用户的名称(例如,“Alex”)。
    • $orderID$:包含唯一订单标识符(例如,“ORD-12345”)。

    电子邮件正文的模板可能如下所示:

    Hello $userName$, thank you for your order! Your order ID is $orderID$.

    发送此消息时,系统会将变量引用替换为相应的值。 最终消息将为:

    Hello Alex, thank you for your order! Your order ID is ORD-12345.

您可以在以下位置使用变量引用:

引用自动生成的变量或任务变量时,您必须使用其完整的唯一名称(包括反引号和任务 ID),并将其放在美元符号分隔符内。例如,如需引用 ID 为 Task_5调用 REST 端点 任务的 responseBody 输出,您必须使用 $`Task_5_responseBody`$

配额和限制

如需详细了解配额和限制,请参阅配额和限制

后续步骤