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

型の参照

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

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

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

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

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

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

Mule 4 の例: DataWeave 2
%dw 2.0
var myPayload = {a: 1, b:2}
output application/json
---
myPayload.&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!