3

したがって、1 つのドキュメントを取り込み、そこから出力で 1 つ以上のドキュメントを作成する必要があるという要件があります。

これが原因で、ドキュメントが既に存在するかどうかを判断する必要があります。これは、シナリオの作成と更新に適用するさまざまな操作があるためです。

ストレート コードでは、これは (概念的に) シンプルです。

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

0

Collector ノードの使用を検討しましたか? レコードを N 個の「コレクション」に収集し、コレクションを反復処理して、コレクションごとに 1 つのドキュメントを出力できます。

于 2016-04-21T07:51:27.657 に答える