使用 Set 变量节点创建可在流中复用的映射
您可以使用定义的映射创建自己的数据属性,作为变量在流程中使用。 IBM® App Connect 流中用作变量。 这使您能够在流中的一个位置创建和存储定制映射,并在同一流中的其他位置重复引用这些映射。
您可以使用 设置变量 节点来创建定制可复用映射。 此节点包含可用于定义特定 JSON 数据类型 (例如,字符串,对象或数组) 的简单或复杂变量的属性编辑器。 通过使用编辑器,您首先创建具有指定名称,数据类型和结构 (如果数据类型是对象或对象数组) 的属性 (作为变量)。 然后,使用流中较早节点的值将映射分配给这些属性。 定义后,您可以多次使用这些属性或变量作为流中后续节点的输入。
"设置变量" 节点可从 工具箱 选项卡获取。 必须将此节点在流中的位置放在将映射作为变量引用的任何节点之前。

定义和使用可复用映射
您可以在 Set 变量节点中定义可复用映射,如下所示:
- 要定义属性,请使用 添加属性 为每个属性添加名称和数据类型。
图 2。 设置插入到流中的变量节点,显示 "添加属性" 和 "编辑映射" 的按钮 
对于数据类型为 对象 或 对象数组的属性,您还需要定义用于标识任何分层父/子关系的结构。 有关添加属性的更多信息,请参阅 示例 1。 使用属性编辑器 和 例 2. 使用属性编辑器将 "源 "数组映射到 "目标 "数组 定义自己的数据属性主题。 您可以从此节点定义多组属性。
以下示例显示了一组
Attendee属性,这些属性定义为在某人注册参加公司事件时触发的流中使用。图 3。 "设置变量" 节点中的属性定义 
- 将属性显示为字段,以便您可以通过映射到流中较早节点的字段来指定其值。 单击 " 编辑映射 "显示属性字段,然后按照 示例 1 中的说明定义其映射。 使用属性编辑器 定义自己的数据属性主题。注: 您还可以将 JSONata 表达式应用于映射。 以下示例显示先前映像中
Attendee属性的已完成映射。图 4: "设置变量" 节点中属性的映射 
现在,您可以在流中的后续节点中复用定义的映射。 假设您希望在有关事件的确认电子邮件中包含新出席者的全名 (实现为 Gmail/Create message 操作)。 您还希望将新出席者的详细信息 (包括其全名) 添加到您维护的电子表格 (实现为 Google Sheets/Create row 操作)。 您可以在这两个节点中复用 [FullName] 映射,这是出席者的标题,名字和姓氏 (例如 Ms Jane DOE) 的组合。 在说明复用的以下示例中,请注意,可复用映射显示在 "可用输入" 列表中的 设置变量 部分下。


示例
我有一个 Eventbrite 帐户,用于管理公司的许多活动,名为 MattClarkeEventsInc 。
每次接收到其中一个事件的新出席者时,我都希望能够通过以下方式进行响应:
- 通过电子邮件向新出席者作出响应,向他们提供有关其公司的其他出席者的信息。
- 对于已发现的每个现有出席者,请发送电子邮件以通知他们来自其公司的新出席者。
- 将有关新出席者的信息添加到我与已知出席者列表保持最新的电子表格中,指示出席者是否为我公司的员工。
为了能够发送电子邮件并更新电子表格,我需要以下信息:
- 出席者的全名
- 出席者电子邮件
- 事件名称
- 如果他们是我公司的员工
- 出席者信息的相关列表-每个同事的姓名和电子邮件
我的事件管理流程
接收到新出席者时,我将使用现有 Eventbrite 检索操作来收集以下信息:
- 事件本身 (使用新出席者的事件标识)
- 事件的所有出席者 (使用新出席者的相同事件标识)
通过 设置变量 节点,我可以将所需的所有信息汇集到可映射到的可读数据结构中。 我将变量的结构定义为:

然后,我使用 编辑映射 来定义每个属性的映射,在适当情况下使用 JSONata 表达式:

出席者 和 事件 信息是相当琐碎的映射; 如果出席者是否为我的员工,那么将派生最复杂的映射。
FellowAttendees 映射的类型为 对象数组,因为我需要它是一个出席者对象列表,每个对象都有一些关于它们的信息。 该映射需要输出可对其进行迭代并在子属性上应用映射的数组。

我需要 FellowAttendees 数组的内容,以包含同时来自新出席者的同一公司的所有当前出席者。 我使用以下 JSONata 表达式来建立该列表:
$EventbriteRetrieveattendees[profile.company=$Trigger.profile.company][profile.email != $Trigger.profile.email]
谓词 ( [ ] 中包含的规则) 对于映射,将评估出席者列表:
- 其公司与新出席者的公司匹配
- 但是谁的电子邮件不是那个出席者; 这样我就没有那个列表中的新出席者了
现在,我可以在要在流中执行的操作中使用这些映射。

因为我将其他出席者的列表作为数组结构,所以我需要应用一些逻辑,使我能够在以电子邮件方式发送时将这些信息提取为更易于阅读的格式。 JSONata 具有一组函数,在使用数组结构时可以使用这些函数。 这次我使用 $map 函数将每个数组条目转换为更可读的出席者名称和电子邮件字符串。
查看已评估的样本数据,我可以看到 主体 字段的映射的建议输出可供电子邮件收件人读取。

现在,为了执行向出席者发送电子邮件的批量任务,我使用了一个 For 每个节点,该节点将对在 "设置变量" 节点映射上设置的相同数组结构进行迭代。

这允许我构造要发送到该列表中所有出席者的标准电子邮件模板,再次使用 "设置变量" 节点映射:

然后,将 "设置变量" 节点映射复用为要在电子表格中插入新行的值:

我的流程现在已完成,可随时开启。