ThingWorx Flow > 创建和管理工作流 > 手动映射前一操作的输出
手动映射前一操作的输出
如果在要映射到另一操作的输入的操作输出架构中未看到特定输出属性,则需要将该输出属性手动映射到输入字段。例如,如果想要将 Salesforce“获取记录”操作的 所有者 ID 属性映射到“更新记录”操作中的“值”字段,则需要手动执行映射。
下表提供了手动执行映射的逐步说明,以及上述示例的相应步骤:
步骤
任务
相应示例任务
1
在输出架构中搜索要映射为另一操作的输入的属性。
Salesforce“获取记录”操作的输出架构如下所示:
在此输出架构中,所有者 ID 属性不可用。
2
调试面板的操作输出中搜索准确的属性名称及其位置。
在调试面板中,在 Salesforce“获取记录”操作输出中搜索 所有者 ID 属性的确切名称和位置。
{
"totalSize": 2,
"done": true,
"records": [
{
"attributes": {
"type": "Account",
"url": "/services/data/v44.0/sobjects/Account/0011I00000jmFCvQAM"
},
"Id": "############",
"Site": null,
"OwnerId": "************",
...
}
{
"attributes": {
"type": "Account",
"url": "/services/data/v44.0/sobjects/Account/0011I00000jmomyQAA"
},
"Id": "############",
"Site": null,
"OwnerId": "************",
...
}
]
}
“所有者 ID”属性称作 OwnerId,是 records 数组的一部分。
3
如果属性是数组的一部分,则会将顶级数组对象映射到输入字段。
如果属性不是数组的一部分,则会将任何输出映射到输入字段。
由于 OwnerId 属性是 records 数组的一部分,将“记录”的值映射到“更新记录”操作的“值”字段。
4
如果属性是数组的一部分,则将 [ArrayIndex] 附加到数组名称中。
如果属性不是数组的一部分,则跳过此步骤。
在这种情况下,会将 [0] 附加到数组名称 records。更新后的值一定是 records[0]
5
如果属性是数组的一部分,则将 "." 和精确的属性名称附加到映射的数组对象输出。
如果属性不是数组的一部分,则将映射的属性名称替换为您的属性名称。
.OwnerId 附加到数组名称 records[0]。更新后的值一定是 records[0].OwnerId
您已成功将操作的输出架构中不可用的输出属性映射到另一个操作的输入字段。
映射语法
关于“获取记录”操作的输出架构,下表提供了映射语法的相关信息:
情景
映射的属性和映射的值
语法
映射单个属性
映射“总大小”时,映射的值为 {{$a0.totalSize}}
{{$ActionID.AttributeName}}
映射数组
映射“记录”时,映射值为 {{$a0.records}}
{{$ActionID.ArrayName}}
映射数组的单个属性
映射 ID 时,映射的值为 {{$a0.records[0].Id}}
{{$ActionID.ArrayName[ArrayIndex].AttributeName}}
映射数组的对象属性
映射“记录属性”时,映射值为 {{$a0.records[0].attributes}}
{{$ActionID.ArrayName[ArrayIndex].ObjectName}}
映射数组内对象的属性
映射“属性类型”时,映射值为 {{$a0.records[0].attributes.type}}
{{$ActionID.ArrayName[ArrayIndex].ObjectName.AttributeName}}
调试面板中,从操作的输出中检索 AttributeNameArrayNameArrayIndexObjectName
* 
未出现在输出架构中的任何属性都是不受支持的属性,PTC 无法保证此类属性值在输出中是否一致或存在。
这对您有帮助吗?