---
schema_version: "1"
id: 6168124ac976f1e417e2e726a484076bb8f87fb77cc8d56f7ecc93ac526bbf62
title: For Each スコープの移行
collection: mulesoft
version: current
locale: ja-jp
portal_url: https://docs.salesforce.com/mulesoft/current/ja-jp/mule-runtime/4.9/migration-core-foreach.md
canonical_url: https://docs.mulesoft.com/jp/mule-runtime/4.9/migration-core-foreach
source_site: docs.mulesoft.com
content_type: documentation
content_hash: db245c1cee5c29ae3cd81d337915227ce8c732086a2a75944f3610fbafc3ecee
description: MuleSoft Documentation Site
release: "4.9"
latest: false
---
# For Each スコープの移行

DataWeave 2 を式言語として使用すること以外に、Mule 3 と Mule 4 の For Each スコープはほとんど変更されていません。ただし、この小さな変更は、コンポーネントの使いやすさに大きく影響します。

Mule 3 の場合、foreach では入力コレクションが Java イテラブル、Java イテレーター、または Java 配列であることが必要でした。常に入力が Java 形式であることを確認する必要がありました (したがって、Java に精通せざるを得ませんでした)。

Mule 4 では、形式に関係なく、配列状の構造での反復処理がサポートされます。たとえば、HTTP 要求によって次の JSON が投稿されるとします。

```json
{
  persons: [
    {
      name: 'John Doe',
      age: 34
    },
    {
      name: 'Jane Doe',
      age: 32
    }
  ]
}
```

Mule 3 では、JSON を最初に Java に変換する必要があります。

Mule 3 の例

```xml
<flow name="persons">
  <http:listener path="person" method="POST" config-ref="http">
  <json:json-to-object-transformer />
  <foreach batchSize="10" collection="#[payload.persons]">
    <flow-ref name="processPerson" />
  </foreach>
</flow>
```

Mule 4 では、次のように JSON 形式の persons 配列に直接アクセスできます。

Mule 4 の例

```xml
<flow name="persons">
  <http:listener path="person" method="POST" config-ref="http">
  <foreach batchSize="10" collection="#[payload.persons]">
    <flow-ref name="processPerson" />
  </foreach>
</flow>
```

## [](#関連情報)関連情報

- [例外戦略の移行](https://docs.mulesoft.com/jp/mule-runtime/4.9/migration-core-exception-strategies)
- [DataWeave 1.0 から 2.x への移行](https://docs.mulesoft.com/jp/mule-runtime/4.9/migration-dataweave)