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

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 キーワードを設定する必要があります。

型の参照

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

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

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"
}

Was this article helpful?

💙 Thanks for your feedback!

Edit on GitHub