---
schema_version: "1"
id: b7b396a1f2e13745461f22d2cde9c6237d7a42ce22c151c51c59184472c1477c
title: DataWeave バージョン 1 から 2 への移行
collection: mulesoft
version: current
locale: ja-jp
portal_url: https://docs.salesforce.com/mulesoft/current/ja-jp/mule-runtime/4.6/migration-dataweave.md
canonical_url: https://docs.mulesoft.com/jp/mule-runtime/4.6/migration-dataweave
source_site: docs.mulesoft.com
content_type: documentation
content_hash: 704877d1faf1704be34f045cc37bb1f5a3facb1d0980c1f4bfd24c39bc0f6b6f
description: MuleSoft Documentation Site
release: "4.6"
latest: false
---
# DataWeave バージョン 1 から 2 への移行

- [DataWeave ヘッダーのコンテンツ](#dw_header)
- [フローコントロール](#dw_flow_control)
- [型の参照](#dw_type_references)
- [オブジェクトの強制型変換](#dw_object_coercion)
- [条件付きキー - 値の括弧](#dw_cond_key_value_parens)

## [](#dw_header)DataWeave ヘッダーのコンテンツ

DataWeave ではヘッダーのほとんどのディレクティブが変更されました。​`%dw`​ ディレクティブは例外です。ほとんどの場合 ​`%`​ が削除され、一部はキーワードが短縮されています。

<table class="tableblock frame-all grid-all fit-content spread">
<colgroup>
<col>
<col>
<col>
</colgroup>
<thead>
<tr>
<th class="tableblock halign-left valign-top">DataWeave 1.0</th>
<th class="tableblock halign-left valign-top">DataWeave 2.0</th>
<th class="tableblock halign-left valign-top">コメント</th>
</tr>
</thead>
<tbody>
<tr>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p><code>%dw 1.0</code>​</p>
</div></div></td>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p><code>%dw 2.0</code></p>
</div></div></td>
<td class="tableblock halign-left valign-top"><div class="content"></div></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p><code>%input</code>​</p>
</div></div></td>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p><code>input</code></p>
</div></div></td>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p>Mule アプリケーションフローでは、DataWeave 2.0 は先行するコンポーネントで指定された MIME タイプ (​<code>outputMimeType</code>​) とパラメーターに基づいて、入力 MIME タイプとそのリーダープロパティを認識します。入力 MIME タイプは、ヘッダーの ​<code>input</code>​ ディレクティブを使用して定義されなくなりました。
ただし、​<code>input</code>​ ディレクティブは、​<a href="https://docs.mulesoft.com/dataweave/latest/dataweave-streaming#validate-a-script-for-streamed-data-experimental-feature" class="xref page">ストリーミングされたデータのスクリプトの検証</a>​などの特定のケースで引き続き使用されます。</p>
</div></div></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p><code>%output</code>​</p>
</div></div></td>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p><code>output</code></p>
</div></div></td>
<td class="tableblock halign-left valign-top"><div class="content"></div></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p><code>%var</code>​</p>
</div></div></td>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p><code>var</code>​</p>
</div></div></td>
<td class="tableblock halign-left valign-top"><div class="content"></div></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p><code>%function</code></p>
</div></div></td>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p><code>fun</code>​</p>
</div></div></td>
<td class="tableblock halign-left valign-top"><div class="content"></div></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p><code>%namespace</code></p>
</div></div></td>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p><code>ns</code>​</p>
</div></div></td>
<td class="tableblock halign-left valign-top"><div class="content"></div></td>
</tr>
</tbody>
</table>

## [](#dw_flow_control)フローコントロール

DataWeave 2 ではフローコントロールが若干変更されました。

### [](#dw_flow_control_when_otherwise)When Otherwise

`when otherwise`​ ステートメントは ​`if else`​ に置き換わります。次に例を示します。

Mule 3 の例: DataWeave 1

```dataweave
{
    orderStatus: "complete" when flowVars.purchaseOrderStatus == "C" otherwise "incomplete"
}
```

Mule 4 の例: DataWeave 2

```dataweave
{
    orderStatus: if(vars.purchaseOrderStatus == "C") "complete" else "incomplete"
}
```

### [](#dw_flow_control_pattern_matcher)パターンマッチャー

DataWeave 2 ではパターン一致が変更されました。キーワード ​`case`​ と (​`default`​ ではなく) ​`else`​ が追加されます。また、​`case`​ キーワードで明示的に区切られるので、ケースをカンマ (​`,`​) で区切らなくなりました。

Mule 3 の例: DataWeave 1

```dataweave
'world' match {
    :string -> true,
    default -> false
  }
```

Mule 4 の例: DataWeave 2

```dataweave
'world' match {
    case is String -> true
    else -> false
  }
```

型のパターンマッチャーの場合は、​`is`​ キーワードを設定する必要があります。

## [](#dw_type_references)型の参照

型の参照から ​`:`​ が削除され、すべてがキャメルケースになりました。したがって、​`:string`​ は ​`String`​ になりました。

## [](#dw_object_coercion)オブジェクトの強制型変換

DataWeave 1.0 では、オブジェクトからキー - 値ペアを選択するには、以下を実行する必要がありました。

Mule 3 の例: DataWeave 1

```dataweave
%var payload = {a: 1, b:2}
---
payload.a as :object
```

上記の DataWeave 1.0 の式は、​`{a:1}`​ を返します。これは強制型変換なので、自動強制型変換メカニズムにも含まれており、望ましくない、または予期しない結果が生じます。

DataWeave 2.0 では強制型変換が削除され、キー - 値ペアの括弧を選択する新しいセレクター (​`&`​) が導入されています。

Mule 3 の例: DataWeave 2

```dataweave
var payload = {a: 1, b:2}
---
payload.&a
```

この式も ​`{a:1}`​ を返します。

## [](#dw_cond_key_value_parens)条件付きキー - 値の括弧

DataWeave 1.0 では、条件付きキー - 値ペアは ​`when`​ キーワードで宣言されます。

Mule 3 の例: DataWeave 1

```dataweave
{
    (a: 1) when payload.product == "Mule"
}
```

DataWeave 2.0 では、​`if`​ キーワードを使用します。

Mule 4 の例: DataWeave 2

```dataweave
{
    (a: 1) if payload.product == "Mule"
}
```

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

[Mule 4 の概要: DataWeave 2.0](https://docs.mulesoft.com/jp/mule-runtime/4.6/intro-dataweave2)