For Each フローロジック
レコードリスト内の各レコードに 1 つ以上のアクションを適用します。
[For Each] フローロジックは、1 つ以上のアクションをレコードリストに適用します。このフローでは、フローロジック内に含まれるアクションがリスト内の各レコードに適用されます。
注:
フローロジックの For each item 分岐の内からデータピル値を設定すると、データピル値は同じ分岐内の他のアクションでのみ使用できます。フローロジック分岐の外から For each 分岐の内で設定されたデータピル値を参照すると、null 値が生成されます。
特に For Each ロジックブロックに反復ごとに複合アクションが含まれている際は、多数のレコードの反復処理はリソースを集中的に使用する可能性があります。パフォーマンスの問題を回避するには、com.snc.process_flow.reporting.level システムプロパティを使用してレポートをオフにします。詳細については、「ワークフロースタジオ フローシステムプロパティ」を参照してください。
入力
- アイテム
- データタイプ:Records 順番に処理するレコードを指定する Sys ID 値のリストまたはレコードデータピル。[複数のレコードの検索] アクションを使用して、レコードリストを生成できます。詳細については、「「複数レコードのルックアップ」アクション」を参照してください。注:アイテムを特定の順序で処理する場合は、この入力のアイテムの初回のソートを事前に実行しておく必要があります。たとえば、[順番] オプションを使用して、[複数のレコードの検索] アクションの結果をソートします。
出力
- [テーブル名] レコード
- データタイプ:Recordループの現在のレコードです。注:デフォルトでは、すべてのフローループは、ループの最初と最後の反復の実行の詳細のみを保存します。ループのすべての反復についてレポートするには、ループ実行の詳細を収集するフローごとにフロー実行設定レコードを作成します。フロー実行設定の詳細については、「フロー実行の設定」を参照してください。
変更によって影響を受ける可能性がある構成アイテムごとにメールを送信する
この例では、変更要求レコードが作成されると、フローが開始します。このフローでは、[複数のレコードの検索] アクションを使用して、変更要求の要求者にアサインされた [構成アイテム] レコードを検索します。このフローでは、For Each フローロジックを使用して、変更要求の影響を受ける可能性のある各構成に関するメールを送信します。[複数のレコードの検索] アクションの出力には、処理するレコードのリストが含まれています。
フロー実行の詳細には、ループの各反復に使用される構成アイテムレコードが示されます。
一般的なガイドライン
これらの一般的なガイドラインは、For Each フローロジックで使用します。
- 追加するアイテムが 1,000 を超えないようにする
- レコード数が 1,000 を超えるリストを反復処理しないでください。フローのパフォーマンスを最適化するために、レコードリストを小さく保ちます。1,000 を超えるレコードを含むリストを反復処理するには、リストを小さなセクションに分割し、複数のフローを使用します。
- For Each フローロジックに依存するステージの定義を避ける
- フローデザイナーでは [For Each] ブロック内にステージを追加できません。[For Each] ブロックの前後にのみステージを追加できます。
- ネストされた For Each ループを避ける
- 多数のレコードを処理するネストされた For Each ループは避けてください。ループがネストされた場合は、フローが 1 時間より長く実行されないようにするフロートランザクションクォータのルールによって停止するまでフローが実行されることがあります。トランザクション割り当ての詳細については、「トランザクション割り当て」を参照してください。