DataWeave バージョン 1 から 2 への移行

Mule 4.1 の標準サポートは 2020 年 11 月 2 日に終了しました。このバージョンの Mule は、拡張サポートが終了する 2022 年 11 月 2 日にその すべてのサポート​が終了しました。

このバージョンの Mule を使用する CloudHub には新しいアプリケーションをデプロイできなくなります。許可されるのはアプリケーションへのインプレース更新のみになります。

標準サポートが適用されている最新バージョンの Mule 4 にアップグレード​することをお勧めします。これにより、最新の修正とセキュリティ機能強化を備えたアプリケーションが実行されます。

DataWeave ヘッダーのコンテンツ

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

DataWeave 1.0 DataWeave 2.0

%dw 1.0

%dw 2.0

%output

output

%var

var

%function

fun

%namespace

ns

フローコントロール

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

When Otherwise

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

Mule 3 の例: DataWeave 1
{
    orderStatus: "complete" when flowVars.purchaseOrderStatus == "C" otherwise "incomplete"
}
Mule 4 の例: DataWeave 2
{
    orderStatus: if(vars.purchaseOrderStatus == "C") "complete" else "incomplete"
}

パターンマッチャー

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

Mule 3 の例: DataWeave 1
'world' match {
    :string -> true,
    default -> false
  }
Mule 4 の例: DataWeave 2
'world' match {
    case is String -> true
    else -> false
  }

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

型の参照

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

オブジェクトの強制型変換

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

Mule 3 の例: DataWeave 1
%var payload = {a: 1, b:2}
---
payload.a as :object

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

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

Mule 3 の例: DataWeave 2
var payload = {a: 1, b:2}
---
payload.&a

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

条件付きキー - 値の括弧

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

Mule 3 の例: DataWeave 1
{
    (a: 1) when payload.product == "Mule"
}

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

Mule 4 の例: DataWeave 2
{
    (a: 1) if payload.product == "Mule"
}