この要件は、1つのドキュメントを取り込み、出力から1つ以上のドキュメントを作成する必要があることです。IBM Integration Bus、複数のサービスを呼び出すためのベストプラクティス
このため、作成シナリオと更新シナリオに適用する操作が異なるため、文書が既に存在するかどうかを判断する必要があります。
ストレートコードでは、これは実際に
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ではどうすればこの問題を解決できますか? Get/Createサイクルでサブフローを使用した場合、サブフローの出力は、最後の操作の結果であり、サブフローからフローの新しい「メッセージ」として返されますが、実際はありません"データの存在を確認する"サブフローの値を注意してください。代わりに元のメッセージを処理する必要がありますが、最終的な "createItem"を実行する前に、さまざまなサブフローが終了するのを待ってください。