For Each スコープ

For Each スコープ (foreach) は、ペイロードを要素に分割し、それらを 1 つずつ、スコープ内に配置したコンポーネントで処理します。これは、ほとんどのプログラミング言語の for-each/for-loop コードブロックに似ています。

処理できるのは、リストや配列を含む任意のコレクションです。コレクションには、サポートされている任意のコンテンツ種別 (application/jsonapplication/javaapplication/xml など) を使用できます。

  • デフォルトでは、For Each はペイロードを分割しようとします。ペイロードが単純な Java コレクションであれば、For Each スコープは設定なしでペイロードを分割できます。

  • For Each によって、現在のペイロードは変更されません。

  • XML や JSON など、Java 以外のコレクションの場合は、DateWeave 式を使用してデータを分割する必要があります。それには、[Collection (コレクション)] (collection) 項目を使用します。

    次の例では、For Each の [Collection (コレクション)] 項目は、payload.topics に保存された配列に対して反復処理を行うように設定されています。

    For Each コンポーネント

配列をバッチに分割することもできます。バッチに分割することで、処理時間を短縮できる可能性があります。各バッチは、個別の Mule メッセージとして処理されます。たとえば、コレクションに 200 個の要素があり、[Batch Size (バッチサイズ)] (batchSize) を 50 に設定すると、For Each スコープは 50 個の要素から成る 4 つのバッチをそれぞれ個別の Mule メッセージとして反復処理します。

エラー処理

コレクション内のいずれかの要素で例外がスローされると、For Each スコープはそのコレクションの処理を停止し、エラーハンドラを呼び出します。

Anypoint Exchange にはいくつかのサンプルプロジェクトがあり、Anypoint Studio でそれらを開いて For Each スコープの使用方法について詳しく学ぶことができます。

  • Authenticating Salesforce using OAuth2 (OAuth2 を使用した Salesforce の認証)

  • Import contacts into Microsoft Dynamics CRM (Microsoft Dynamics CRM への取引先責任者のインポート)

  • Importing a CSV file into mongoDB (mongoDB への CSV ファイルのインポート)

  • Importing an Email Attachment using the IMAP Connector (IMAP コネクタを使用したメールの添付ファイルのインポート)

  • Importing Email Attachments using the POP3 Connector (POP3 コネクタを使用したメールの添付ファイルのインポート)

  • Querying a Database and Attaching Results to an Email (データベースへのクエリ実行とメールへの結果の添付)

Anypoint Studio でサンプルプロジェクトをダウンロードして開くには、左上隅にある Exchange アイコンをクリックします。次に、開いたウィンドウで、Anypoint Exchange にログインし、プロジェクトの名前を検索します。

Was this article helpful?

💙 Thanks for your feedback!

Edit on GitHub