3

所以我有这个要求,需要一个文档,然后需要在输出中创建一个或多个文档。

在造成这种情况的过程中,需要判断文档是否已经存在,因为申请创建和更新的场景有不同的操作。

在直接的代码中,这很简单(概念上)

InputData in = <something>

if (getItemFromExternalSystem(in.key1) == null) {
     createItemSpecificToKey1InExternalSystem(in.key1);
}
if (getItemFromExternalSystem(in.key2) == null) {
     createItemSpecificToKey2InExternalSystem(in.key1, in.key2);
}
createItemFromInput(in.key1,in.key2, in.moreData);

实际上是一种“确保此数据存在”。

但是,在 IIB 中,我将如何实现这一目标?如果我将子流用于获取/创建周期,则子流的输出将是最后一个操作的结果,从子流返回作为流的新“消息”,但实际上,我没有关心“确保数据存在”子流中的值。我需要继续处理我的原始消息,但仍然等待不同的子流程完成,然后才能运行我的最终“createItem”

4

2 回答 2

4

您可以使用聚合节点:例如,使用 3 个流:

  1. 首先是将您的原始消息传播到第三个
  2. 第二个是调用操作 createItemSpecificToKey1InExternalSystem 和 createItemSpecificToKey2InExternalSystem
  3. 第三个将是第一个和第二个的聚合结果并调用 createItemFromInput。
于 2016-04-28T10:31:30.367 回答
0

您是否考虑过使用收集器节点?它将您的记录收集到 N 个“集合”中,然后您可以遍历集合并为每个集合输出一个文档。

于 2016-04-21T07:51:27.657 回答