合并(Merge)
点击次数:更新时间:2017-08-30 19:08:18【打印】【关闭】
合并(Merge)
![]()
该模型将收到两个模型对象集合,并创建单个合并后的模型对象集合,
其中每个对象包含来自第一输入的模型集合的一个对象的内容和来自第二个模型集合的匹配对象的内容。
对象之间的匹配需要做对应元素的识别比较。例如,
如果第一个模型集合中的对象的数据类型和
在第二个列表中对象的数据类型相同且都包含名为"name”和"sex"的字段,
那么第一个模型集合中的一个对象与第二个模型集合中的一个对象作比较,
只有当两者都具有相同的"name"和"sex"的值才算匹配一致允许合并这两个模型对象。
如果模型对象在其他模型集合中具有匹配对象,
那么两个被合并来创建一个单一的输出对象,
其中包含两个合并对象的某些或全部元素(匹配过的模型对象仅输出一次,不会再次匹配)。
如果对象在其他模型集合中没有匹配的对象,
那么输出对象是通过仅复制此对象中存在的元素而创建的(而其他模型元素为空)。
输出对象根据匹配元素(<sort>模型)以“词典顺序”排序。
如果匹配元素在两个输入模型集合中以不同的顺序出现,
按照第一个模型集合中的顺序进行排序。
![]()
触发器(Triggers):
该模型模板有两个必须的多记录触发器(<List 1>和<List 2>),
每个触发器的数据类型是复合数据结构(对非复合数据类型使用此操作没有意义)。
两个触发器的数据类型可以相同或不同。
请注意,一个输入集合中不要包含多个彼此匹配的对象
(否则不清楚哪个与其他集合中的匹配对象匹配)。
在上述示例中,<List 1>和<List 2>都不能包含多个具有相同"name”和相同"sex"的对象
(匹配元素用作识别模型集合中的对象的“主键”)。
退出连接器(Exit):
<Merged List>(多记录退出连接器[必须]):合并对象的模型集合(按照词典顺序排序以后,再根据模型元素出现在<List 1>,<List 2>中的顺序排序)。
<Merged List>的数据类型也是复合数据结构,
其中可能包含多种类型的模型元素:
其名称和类型与<List 1>或者<List 2>中的某一个模型元素相同
(用于两个输入集合匹配后的输出对象)。
在上述示例中,输出对象可以包含"name"元素,"sex"元素,
或两者(也可能不包含它们,一般情况输出通常包含用于匹配输入的所有元素)。
输出对象中的任何元素值都来自于创建它的两个输入对象对应元素相同的值。
(由于这两个值相同,该值仅输出一次)。
输出中的任何元素将具有与创建它的输入对象中的相应元素相同的值和名称及类型。
输出中的任何其他附加的元素将为空(因为输入中没有相应的元素)。
请注意,<List 1>,<List 2>和<Merged List>可能都具有相同的数据类型。
这可以用于合并具有相同结构的两个模型集合,每个模型集合对象通过合并创建新的模型元素。
|