映射器
“映射器”操作用于通过组合各种操作的输出并根据您的需要重新构造输出的对象、集合、数组或字符串来创建自定义输出。您还可以对输出执行各种功能。这样便无需编写复杂的 Node.js 代码来从多个操作中检索和组合特定字段值或输出。“映射器”提供了多种模块化功能,可帮助您实现以下内容:
组合输出
小版本化对象、数组、字符串和集合
操控和测试值
使用“映射器”操作
要在工作流中使用此操作,请将其连接至 ThingWorx Flow。要连接到工作流,请执行以下操作:
1. 单击 ,将“开发者工具”应用程序下的“映射器”操作拖动至工作区,将指针置于该操作上,然后单击 或双击该操作。“映射器”操作窗口随即打开。
2. 根据需要编辑“标签”名称。默认情况下,标签名称与操作名称相同。
3. 单击 可创建新的键值对。
a. 重命名键字段并输入值。您可以将先前操作的输出作为输入映射到值字段。
b. 单击 </> 可在指定输入中添加函数。
单击 可添加多个键值对。
4. 单击“完成”
映射器数据类型
映射器接受数组、集合、对象和字符串数据类型的输入值。
数组 - 当指定键返回数组时使用。要将数组设置为数据类型,请单击 ,然后从列表中选择“数组”。您可以通过单击 </> 对数组应用函数。
集合 - 当指定键返回对象数组时,使用此数据类型。上一操作中的集合可以直接映射到值字段中,因为可在集合键下分别添加集合键或键值对。
要将集合设置为数据类型,请单击 ,然后从列表中选择“集合”。您可以通过单击 </> 对集合应用函数。
对象 - 当指定键返回对象时使用。上一操作中的对象可以直接映射到值字段中,因为可在对象键下分别添加对象键或键值对。
要将对象设置为数据类型,请单击 ,然后从列表中选择“对象”。此处,您需要指定对象的名称,然后单击“键”字段旁给定的“+”链接,以添加键值对。然后可为其中每个属性选择任意数据类型。
用于应用函数的控制台 (</>) 链接位于“对象名称”字段旁以及该对象的每个“属性名称”字段旁。
字符串 - 当指定键返回字符串值时使用。默认情况下,所有键值对均为字符串数据类型。您可以通过单击 </> 对字符串应用函数。
使用映射器的内置函数
映射器让您可对先前操作的输出执行各种函数。该操作具有多种预构建函数 (取自 'lodash' 库) 供您使用。或者,您也可以编写自定义函数。
数组函数:
_.Compact - 从给定数组中移除的假值。 读取更多
_.difference - 返回一个包含给定数量数组中第一个数组的唯一值的数组。 读取更多
_.flatten - 将数组展平为单阶数组。 读取更多
_.flattenDeep - 展平整个数组。 读取更多
_.intersection - 返回一个包含所有给定数组中常用值的数组。 读取更多
_.first - 检索给定数组的第一个元素。 读取更多
_.last - 检索给定的数组的最后一个元素。 读取更多
_.uniq - 从给定数组中删除重复值。 读取更多
对象函数
_.pick - 返回一个包含与指定对象属性相匹配的元素的对象。 读取更多
_.get - 返回在对象的指定路径中显示的元素的值。 读取更多
_ keys - 创建对象的可枚举属性名称的数组。 读取更多
字符串函数
_.camelCase - 将字符串大小写形式更改为驼峰式。 读取更多
_.capitalize - 将字符串的第一个字符更改为大写形式,其余改为小写形式。 读取更多
_.kebabcase - 将字符串大小写形式更改为短横线分隔式。 读取更多
_.lowercase - 将指定字符串转换为小写形式。 读取更多
_.lowerfirst - 将字符串的第一个字符转换为小写形式。 读取更多
_.replace - 使用特定字符串替代符合指定条件的字符串。 读取更多
_.repeat - 重复给定字符串指定次数。 读取更多
_.escape - 将字符串中的字符 &、<、>、' 和 " 转换为相应的 HTML 实体。 读取更多
_.trim - 移除给定字符串中的前导和尾随空格。 读取更多
_.unescape - 将给定字符串中的 HTML 实体 &、<、>、"、' 和 ` 转换为相应的字符。 读取更多
数值函数
_.add - 将两个数字相加。 读取更多
_.ceil - 将数值向上舍入指定精度。 读取更多
_.divide - 将两个数字相除。 读取更多
_.floor - 将数值向下舍入指定精度。 读取更多
_.multiply - 将两个数字相乘。 读取更多
_.subtract - 将两个数字相减。 读取更多
集合函数
_filter: - 返回包含符合指定筛选条件的元素的数组。 读取更多
_.find - 返回符合指定条件的第一个元素。 读取更多
示例:使用映射器的内置函数
您希望将给定数组列表中的唯一值检索到单个数组中。为此,使用“数组操作”操作来合并两个数组 (包含一些常用值)。然后使用映射器中的输出,并执行 _.uniq 函数以筛除重复值。
1. “数组操作”“映射器”“发送电子邮件”操作添加至您的工作区并将它们按如下方式连接:
2. 按如下方式配置“数组操作”操作:
“选择数组操作”- 从列表中选择“合并”
“源数组 1”- 输入您想要合并的第一个数组。
“源数组 2”- 输入您想要合并的第二个数组。
单击“添加”以添加更多阵列。
我们有意在两个数组中使用了 "R2-D2" 和 "Han"。这将创建一个包含重复值的数组。单击“完成”。此操作将使您返回工作区。
3. 按如下方式配置“映射器”操作:
Key1 - 输入键名称。
单击 以选择数组“数据类型”,然后单击 添加函数。
单击 ,然后单击 将“数组操作”操作的输出作为输入添加至控制台窗口。
单击“函数”,然后选择 _.uniq 函数以从数组中移除重复值。
单击“保存”。“自定义函数”选项卡将作为输入添加至“值”字段。
4. 按如下方式配置“发送电子邮件”操作:
“收件人”- 输入收件人的电子邮件 ID。
“主题- 输入电子邮件主题。
“正文类型”- 选择“文本”作为电子邮件的正文类型。
“正文”- 将配置窗口右侧给定的“映射器”操作的输出添加为该字段的输入。
5. 单击“完成”“执行”该工作流。该操作会将给定数组列表中的唯一值检索到单个数组中,并将其发送给指定的收件人。
于映射器中添加自定义函数
映射器操作还允许您编写自定义函数以针对给定的输入值执行操作。请参阅下面的示例来了解自定义函数:
示例
接续早前的示例。假设您想要对早前执行的 _.uniq 函数的输出应用自定义函数。
1. 请在现有代码中进行以下更改,如下图所示:
2. 之后,在控制台中添加自定义函数。单击“完成”,然后“执行”工作流。
* 
您还可以编写仅对指定输入执行的自定义函数。
输出架构
“映射器”操作会根据您输入的键值对返回输出架构。请参阅下图中所示的示例输出架构: