Flex Gateway新着情報
Governance新着情報
Monitoring API Manager
DataWeave 2.2 は Mule 4.2 と互換性があり、Mule 4.2 にバンドルされています。 このバージョンの Mule は、拡張サポートが終了する 2023 年 5 月 2 日にその すべてのサポートが終了しました。 このバージョンの Mule を使用する CloudHub には新しいアプリケーションをデプロイできなくなります。許可されるのはアプリケーションへのインプレース更新のみになります。 標準サポートが適用されている最新バージョンの Mule 4 にアップグレードすることをお勧めします。これにより、最新の修正とセキュリティ機能強化を備えたアプリケーションが実行されます。 |
ペイロード値がない場合やその値が null
である場合にデフォルト値を設定するには次のいずれかの方法を使用します。
default
キーワードを使用する。
if-else
または else-if
ステートメントでデフォルトを設定する。
パターンを照合するときに else
を使用する。
開始する前に、DataWeave バージョン 2 (%dw 2.0
) は Mule 4 アプリケーションを対象とすることに注意してください。Mule 3 アプリケーションの場合、Mule 3.9 ドキュメントセットの DataWeave 1.0 (%dw 1.0
) の例を参照してください。他の Mule バージョンの場合は、目次の Mule Runtime バージョンセレクターを使用できます。
項目 id
と name
を含む JSON 入力を想定し、変換を行う Mule アプリケーションについて考えます。
これらの項目が存在しないか、値が null
である場合のデフォルト値を設定できます。たとえば、次のようにします。
%dw 2.0
output application/json
---
{
"userId": payload.id default "0000",
"userName": payload.name default "Undefined"
}
この Mule アプリケーションが id
項目と name
項目に値が設定された JSON メッセージを受信すると、DataWeave 変換によって項目 id
が userId
に照合され、項目 name
が userName
に照合されます。
例: 入力 JSON
{
"id": "123",
"name": "Max the Mule"
}
例: 変換出力
{
"userId": "123",
"userName": "Max the Mule"
}
ただし、Mule アプリケーションが受信した JSON メッセージに想定される項目がない場合や項目の値が null
である場合は、変換では項目 userId
と userName
に設定されたデフォルト値が使用されます。
例: 入力 JSON
{
"id": null
}
例: 変換出力
{
"userId": "0000",
"userName": "Undefined"
}
次の例では、JSON 入力メッセージの userLocation
が存在しない場合やその値が null
である場合にデフォルト値として United States
を設定します。
%dw 2.0
output application/json
---
if (payload.location != null) {
"userLocation" : payload.location
} else {
"userLocation" : "United States"
}
この Mule アプリケーションが location
項目に値が設定された JSON メッセージを受信すると、DataWeave 変換によって項目 location
が userLocation
に照合されます。
例: 入力 JSON
{
"location": "Argentina"
}
例: 変換出力
{
"userLocation": "Argentina"
}
ただし、Mule アプリケーションが受信した JSON メッセージに想定される項目がない場合や項目の値が null
である場合は、変換では項目 userLocation
に設定されたデフォルト値が使用されます。
例: 入力 JSON
{}
例: 出力 JSON
{
"userLocation": "United States"
}
パターンを照合するスクリプトの場合、DataWeave の case
ステートメントは else
式で終了します。これは、先行するすべての case
式で false
が返された場合に返されるデフォルトとして機能します。
例: DataWeave スクリプト
%dw 2.0
var myVar = "someString"
output application/json
---
myVar match {
case myVarOne if (myVar == "some") -> ("some" ++ "is myVar")
case myVarOne if (myVar == "strings") -> ("strings" ++ "is myVar")
else -> myVar ++ " is myVar"
}
例: 変換出力
"someString is myVar"