Flex Gateway新着情報
Governance新着情報
Monitoring API Manager
DataWeave 2.1 は Mule 4.1 と互換性があります。 Mule 4.1 の標準サポートは 2020 年 11 月 2 日に終了しました。このバージョンの Mule は、拡張サポートが終了する 2022 年 11 月 2 日にそのすべてのサポートが終了します。 このバージョンの Mule を使用する CloudHub には新しいアプリケーションをデプロイできなくなります。許可されるのはアプリケーションへのインプレース更新のみになります。 標準サポートが適用されている最新バージョンの Mule 4 にアップグレードすることをお勧めします。これにより、最新の修正とセキュリティ機能強化を備えたアプリケーションが実行されます。 |
以下の制御フローステートメントを任意の DataWeave 式内で使用できます。
do
do
ステートメントはスコープを作成します。このスコープ内で、新しい変数、関数、アノテーション、または名前空間を宣言し、使用できます。構文は、---
で区切られたヘッダーと本文で構成されるという点でマッピングに似ています。このヘッダーはすべての宣言を定義する場所であり、本文は式の結果です。
この例では、スクリプトの本文から myfun()
がコールされたときに、do
を使用して文字列 "DataWeave"
を返します。
%dw 2.0
output application/json
fun myfun() = do {
var name = "DataWeave"
---
name
}
---
{ result: myfun() }
この例では、スクリプトの本文から変数 myVar
が参照されたときに、do
を使用して文字列 "DataWeave"
を返します。
%dw 2.0
output application/json
var myVar = do {
var name = "DataWeave"
---
name
}
---
{ result: myVar }
どちらのスクリプトも次の出力を生成します。
{
"result": "DataWeave"
}
次の例では、do
を使用して、test(p: String)
関数に渡す文字列 (" Bar"
) の先頭に文字列 "Foo"
を追加します。
%dw 2.0
output application/json
fun test(p: String) = do {
var a = "Foo" ++ p
---
a
}
---
{ result: test(" Bar") }
{
"result": "Foo Bar"
}
if else
if
ステートメントは条件式を評価し、条件式が true の場合のみ、if
の下の値を返します。それ以外の場合、else
の下の式を返します。各 if
式に、対応する else
式が必要です。
%dw 2.0
output application/json
---
if (payload.country == "USA")
{ currency: "USD" }
else { currency: "EUR" }