向流添加条件逻辑

了解如何使用 IBM® App Connect 流中的 If 节点根据从流中的应用程序接收的数据执行不同的操作。

当您要执行某些条件处理时,将 If 节点添加到流中。 例如,当某人注册到一个事件时,您可能希望将其添加到邮件列表; 但如果他们注册到另一个事件,那么您可能希望将其添加到市场营销应用程序。 或者,可以使用 If 节点根据先前操作的响应代码来制定决策。 例如,如果您已向流程添加了更新或创建操作,则可能需要根据记录是更新还是新记录来采取不同的操作。

使用 If 节点的注意事项

在添加 If 节点之前,确定要执行的决策,应满足的条件以及应执行的相应操作很有用。 在 If 节点中,您可以将每个 ifelse ifelse 条件语句定义为 分支。 请注意以下考虑事项:

  • 最多可以将 10 个 If 节点添加到流。
  • 单个 If 节点可以具有多个分支。
  • 如果在流中的 If 节点之后添加操作,那么您可以选择在 If 节点的任意多个分支的末尾退出该流,只要至少一个分支继续处理,以便将数据传递到目标应用程序。 如果 If 节点位于事件驱动的流的末尾,那么该流可以在所有分支上退出。
  • 如果要将从 If 节点中的操作返回的数据传递到流的其余部分,那么可以创建输出模式,然后使用该模式为 If 节点中的各个分支定义输出数据。 如果在分支结束时退出流,那么不能为该分支定义输出数据。
  • 当条件的两边都看起来像数字时(例如,if 2 is less than 10 ),这些值将被视为数字。 但如果有一边不能作为数字处理(例如, 如果 2GB 小于 10GB ),则条件的两边都会转换为字符串并进行比较。
  • 在条件值中包含空格会影响比较。 例如, 2 (数字后跟空格)不同于2

您可以通过向 添加更多操作 (如果else 分支) 或通过添加更多条件来处理复杂处理。 您还可以通过向分支添加更多 If 节点来添加嵌套的 If 节点。

If 节点可从流编辑器中的 工具箱 选项卡获取,并且可以位于流中第一个节点之后的任何位置。

以下示例显示了具有多个分支的 If 节点,以及相应的 If 面板,您在其中添加分支并配置 If 条件,出口条件以及要从 If 节点传递的任何输出数据。

图 1。 具有多个分支的样本 If 节点
具有多个分支的样本 If 节点

添加和配置条件语句

为了说明 If 节点的工作方式,我们将使用在创建新的 Salesforce 联系人时触发的示例流。 如果联系人位于伦敦,我们希望向伦敦销售团队发送消息,或者如果总部位于巴黎,则向巴黎销售团队发送消息。 如果联系人不在伦敦或巴黎,我们希望生成一条消息来表明这一点。

要在流中添加和配置 If 节点,请完成以下步骤:

  1. 在流中要定义某些条件逻辑的阶段,单击 (+),转至 工具箱 选项卡,然后单击 如果 (条件)
    图 2。 从 "工具箱" 选项卡中选择 If 节点
    从 "工具箱" 选项卡中选择 If 节点

    此时将显示 If 节点和 If 面板。

    图 3。 空的 If 节点和 If 面板
    空的 If 节点和 If 面板
  2. 通过定义一个或多个 If 条件以及在这些条件为 true 时要执行的操作来配置第一个 if 分支:
    1. If 面板中,定义第一个 If 条件,如下所示:
      1. 在最左边的字段中单击,然后在流中插入来自先前节点的映射; 例如,新 Salesforce 联系人的 Mailing City
      2. 选择比较运算符。
        图 4: If 条件的比较运算符
        If 条件的比较运算符
      3. 如果适用,请在最右边的字段中将值指定为文本或映射。
      图 5。 单个 If 条件的示例
      单个 If 条件的示例
    2. 可选。 要添加更多 If 条件,请完成以下步骤:
      1. 对于每个新条件,单击 添加条件 ,然后以与第一个条件相似的方式定义该条件。
      2. 添加条件后,选择 所有 都必须为 true (通过选择 所有以下内容都为 true) ,还是 任何 都可以为 true (通过选择 任何以下内容都为 true)。 例如:
        图 6。 多个 If 条件的示例
        多个 If 条件的示例
    3. 定义当 If 条件为 true 时应该执行的操作。 在 If 节点上,使用 (+) 图标将一个或多个操作或工具箱节点添加到 if 分支。
      图 7。 允许您向 If 节点添加操作或工具箱节点的加号图标
      允许您向 If 节点添加操作或工具箱节点的加号图标

      以下示例显示了具有单个操作的已配置 if 分支。

      图 8。 如果具有单个操作的分支
      如果具有单个操作的分支
  3. 如果 If 节点需要多个基本 "if A, do B; else do C" 定义,请配置所需的 else if 分支,然后配置 else 分支。
    提示: 将条件逻辑添加到流时,数据将向下移动与条件匹配的第一个分支。 因此请密切关注您的分支机构的顺序。 此外, If 节点的分支上的目标应用程序 (以及嵌套的 If 节点) 只能看到来自分支中先前操作的数据; 它们无法看到来自其他分支的数据。
    1. 可选。 配置一个或多个 else if 分支,如下所示:
      1. 从 " If " 面板中,单击 添加 else if 以添加 else if 分支,然后定义一个或多个 If 条件。
      2. If 节点上,通过将一个或多个操作或工具箱节点添加到 else if 分支来定义当这些条件为 true 时应该发生的情况。
      具有 if 分支和 else if 分支的 if 节点
    2. 可选。 如果要在不满足上述分支中的任何条件时执行某些操作,请配置 else (终态) 分支。 在 If 节点上,使用 else 分支上的 (+) 图标来添加一个或多个操作或工具箱节点。
      图 9。 通过单击加号图标将节点添加到 else 分支
      通过单击加号图标将节点添加到 else 分支
    提示: 如果需要,您可以使用 If 面板上的箭头在 If 节点上重新定位分支。 您还可以通过单击该分支的 删除 图标来删除该分支。
    用于重新定位分支和 "删除" 图标的箭头的位置
  4. 可选。 如果要在 If 节点上的任何分支的末尾退出流,请完成以下步骤:
    1. 单击 If 节点以打开 " If " 面板。
    2. 找到并选中相关分支的 在此分支末尾退出流 复选框。
      请记住: 如果在 If 节点之后添加操作,那么可以针对 If 节点上任意数量的分支选择 在此分支结束时退出流 ,只要至少一个分支继续处理,以便将数据传递到目标应用程序。 如果 If 节点位于事件驱动的流的末尾,那么该流可以在所有分支上退出。
    3. 选择要写入日志的消息代码,并编写自己的消息以伴随它。 此消息的最大长度可以是 128 个字符。
      图 10. 此分支的样本设置结束时的出口流
      "此分支末尾的出口流" 样本设置
  5. 可选。 如果要将数据从 If 节点中的各种操作传递到流的其余部分,请创建输出模式,以定义要从每个分支传递的所有数据。 然后,在分支级别,可以指定特定于该分支的输出数据。
    1. 通过添加数据属性来定义输出模式:
      1. 如果需要,请单击 If 节点以打开 " If " 面板。
      2. 展开 输出模式 部分,然后单击 添加属性 以显示属性编辑器。
      3. 输入用于标识要传递到流的其余部分的数据的属性名; 例如, EmailAddressLastName
      4. 选择属性的数据类型。 对于数据类型为 ObjectArray of objects的属性,您需要定义用于标识任何分层父/子关系的结构。
      5. 可选。 如果希望此属性在每个分支的输出数据中是必需的,请选中 必需 复选框。
      6. 使用 添加属性 来定义所需的任何其他数据属性。
        图 11. 通过添加属性来定义输出模式
        通过添加属性来定义输出模式
    2. 要定义特定于分支的输出数据,请完成以下步骤。 (如果选择了 在此分支结束时退出流 ,那么无法定义输出数据。)
      1. If 面板中,单击以展开该分支的 输出数据 部分。 在输出模式中定义的属性将显示为具有定义的数据类型的字段。
        图 12. 分支的输出数据字段
        分支的输出数据字段
      2. 使用要传递到流的其余部分的数据填充字段。 您可以从流中的先前节点添加映射,输入文本或应用 JSONata 表达式。
        提示: 如果需要,您可以通过在 输出模式 部分中添加或删除属性来修改输出模式。 您还可以更改已定义属性的名称或数据类型。 您的更改将反映在每个分支的 输出数据 部分中。

        请注意,如果删除或重命名属性,那么将除去 输出数据 部分中的任何现有映射。

  6. 通过添加所需的其他操作和工具箱实用程序,以通常方式完成流程。
    提示: 如果要在流编辑器中创建更多空间,可以通过单击 折叠 图标来折叠 If 节点。
    在流编辑器中折叠 If 节点的图标

示例

将 Wufoo 连接到 Salesforce 和 Asana 的流的仪表板磁贴的截屏
创建事件驱动的流,用于在 Salesforce 中更新或创建联系人,并在您在 Wufoo 中收到表单时更新 Asana

了解如何使用 App Connect Designer 将 Wufoo 连接到 Salesforce 和 Asana ,以便每当有人在 Wufoo 中提交已完成的地址表单更改时,都会更新或创建 Salesforce 联系人,并且根据 Salesforce 操作,会向 Asana 中的相应项目添加任务。