7.11. 使用 data mapper 处理集合
在流中,当步骤输出集合以及流中的后续连接时,需要一个集合作为输入,您可以使用 datamapper 指定如何处理集合的方式。
当步骤输出集合时,流视觉化会在步骤的详细信息中显示 Collection。例如:
在提供集合并在需要映射的步骤之前,添加数据映射步骤。在此数据映射程序步骤中的流程需要完全取决于流程中的其它步骤。下图显示了从源集合字段到目标集合字段的映射:
在源和目标面板中,数据映射器会显示
来表示集合。
当集合是复杂的类型时,数据映射程序会显示集合的子字段。您可以从/映射到每个字段。
当源字段嵌套到多个集合中时,您可以将其映射到满足这些状况的目标字段:
target 字段嵌套在与 source 字段相同的集合数量中。例如,允许这些映射:
-
/A<>/B<>/C
/D<>/E<>/F -
/A<>/B<>/C
/G<>/H/I<>/J
-
/A<>/B<>/C
target 字段只嵌套在一个集合中。例如,允许这个映射:
/A<>/B<>/C
/K<>/L 在这种情况下,数据映射程序使用深度第一算法来迭代源中的所有值。因此,数据映射程序会将源值放在单个目标集合中。
不允许使用以下映射:
/A<>/B<>/C cannot-map-to /M<>/N/O<>/P<>/Q
当 Fuse Online 执行流时,它会迭代源集合元素来填充目标集合元素。如果您将一个或多个源集合字段映射到目标集合或目标集合字段,则目标集合元素仅包含映射字段的值。
如果您将源集合中的源集合或字段映射到不在集合中的目标字段,那么当 Fuse Online 执行流时,它将仅从源集合中的最后一个元素分配值。集合中的所有其他元素在此映射步骤中会被忽略。但是,任何后续映射步骤都可以访问源集合中的所有元素。
当连接返回 JSON 或 Java 文档中定义的集合时,数据映射程序通常可以将源文档作为集合处理。