For-Eachアクションを使用した繰返し要素のループ
for-eachアクションを使用すると、繰返し要素をループして、for-eachアクションの範囲内の1つ以上のアクションを処理できます。 ループの繰返し回数は、ユーザー選択の繰返し要素に基づきます。 たとえば、複数のファイルをダウンロードし、ファイルの出力をループ・オーバーする統合がある場合があります。 for-eachアクションにより、このタスクを実行できます。
For-Eachアクションの作成
ノート:
- for-eachアクションでは、修飾されていない繰返し要素は使用できません。
- for-eachアクション内に停止アクションを構成すると、for-eachアクションが最初に処理されたときに統合全体が終了します。 for-eachアクションは複数回処理できません。 停止アクションは、設計時にこの動作を説明するメッセージを表示しません。
-
次のいずれかの方法で、for-eachアクションを統合に追加します:
- キャンバスの右側で、「アクション」
をクリックし、For Eachアクションを適切なロケーションにドラッグします。
- for-eachアクションを追加するロケーションで
をクリックし、For Eachを選択します。
「それぞれの構成」パネルが開きます。 これには、要素の「ソース」ツリーが含まれます。
- キャンバスの右側で、「アクション」
-
「それぞれの構成」の下にある「編集」
をクリックして、for-eachアクションの名前とオプションの説明を入力します。
-
「ソース」ツリーを展開して要素を選択します。
-
繰返し可能な要素を「Repeating Element」フィールドにドラッグします。 これが、ループ処理する要素です。
ノート:
次の制限に注意してください。-
選択した要素は繰返し可能である必要があります。 繰返し要素は、要素名の左側にある3つのボックス・アイコンによって識別できます。

-
選択した要素の親はすべて、繰返し可能でない必要があります。
-
選択した要素のデータ型はスカラーである必要があります。
-
繰り返されたグローバルおよび非グローバルの要素を選択できます。
-
別の繰返し要素内に繰返し要素がある場合(つまり、リスト内にリストがある場合)、最初にfor-eachアクションを作成して親リストをループ処理する必要があります。 これにより、毎回の繰返し時に子リストにアクセスできます。 これで、最初のfor-eachアクションのスコープ内に2つ目のfor-eachアクションを作成して子リストをループ処理できます。
この例の場合、ループ処理する要素はICSFileです。
毎回のループの繰返しで、繰返し要素(ICSFile)に対する単一の参照があります。 このアクションを起こさせるには、現在の要素名ファイルが必要です。
-
-
繰返しの現在のファイルの別名を「Current Element Name」フィールドに入力します。

ノート:
for-eachアクションをスケジュール統合にドラッグすると、ダイアログの下部に「アイテムを並行して処理」という追加フィールドが表示されます。
選択すると、for-eachアクションの反復がパラレルに実行されます。 たとえば、統合がすべてのファイルに対してfor-eachループが作成されたファイルのリストを処理する場合、ファイル全体の処理はすべてのファイルに対してパラレルに実行されます。 for-eachループの外部で変数が宣言され、for-eachループ内で「並列処理アイテム」が選択されて更新される場合、その変数の最終更新値はループの外部で利用できます。 また、並列度(DOP)は、同時実行性の問題を回避するために
1に設定されています。 -
「保存」をクリックします。
for-eachアクションはキャンバスに表示されます。 ループする矢印は、このアクションが反復ループを実行することを示します。
-
for-eachアクション内の+をクリックして、アクションを追加します。 これらのアクションは、ループの各反復中に何が起こるかを定義します。 この例では、スコープおよびスイッチ・アクションはfor-eachアクション内で定義されます。
For-Eachループでのグローバル変数の使用
グローバル変数をfor-eachループ(ロギング目的など)で使用すると、不良または無効なデータが変数に関連付けられている場合に、次の実行時例外が発生する可能性があります:
FORG0001: invalid value for cast/constructor, Cikey=13695578,
FlowId=10025204, Current Activity Key=13695578-BpAss43-BpSeq8.240-4, Current
Activity Label=assignment_ics_api_internal_variable23,
推奨事項として:
-
for-eachループでのグローバル変数の使用を制限します。
-
グローバル変数処理にはデータベース・アクセスが必要であるため、パフォーマンス・オーバーヘッドが増加します。
-
ローカル変数は、ローカル・スコープに固有のロジックに使用できます。
実行時のFor-Eachアクションのステータスのトラッキング
インスタンス・ページの各アクションのステータスは、アクティブ化された統合のトラッキング図およびアクティビティ・ストリームを介して追跡できます。
- ナビゲーション・ペインで、「可観測性」、「インスタンス」の順にクリックします。
-
追跡する統合のビジネス識別子値をクリックします。
統合フロー(for-eachアクションを含む)が表示されます。 for-eachアクションの失敗はすべて赤色の矢印で識別されます。 アクティビティ・ストリームが右側に表示されます。
- 「Oracle Integration 3でのSalesforceアダプタの使用」の「統合での一括レスポンス操作の使用」
- 「Oracle Integration 3でのMarketoアダプタの使用」の「異なる一括インポート操作を使用した大規模データ・セットの非同期処理」
- 「Oracle Integration 3でのOracle HCM Cloudアダプタの使用」の「スケジュール統合でのAtomフィードのサブスクライブ」
- 「Oracle Integration 3でのOracle ERP Cloudアダプタの使用」の「エンドポイントの動的な起動」
- 「Oracle Integration 3でのFTPアダプタの使用」の「バルク・ファイルをインポートおよび処理するための統合の作成」
