DataWeave 関数の定義

DataWeave 2.2 は Mule 4.2 と互換性があり、Mule 4.2 にバンドルされています。 このバージョンの Mule は、拡張サポートが終了する 2023 年 5 月 2 日にその すべてのサポート​が終了しました。

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

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

DataWeave スクリプトのヘッダー内で ​fun​ 宣言を使用して、独自の DataWeave 関数を定義できます。 開始する前に、DataWeave バージョン 2 は Mule 4 アプリケーションを対象とすることに注意してください。Mule 3 アプリケーションの場合、Mule 3.9 ドキュメントの ​DataWeave 1.0 ドキュメントセット​を参照してください。他の Mule バージョンの場合は、Mule Runtime の目次のバージョンセレクターを使用できます。

次の簡単な例では、DataWeave 関数は、​"HELLO"​ を出力する 1 つの文字列引数を受け入れます。

%dw 2.0
output application/json
fun toUpper(aString) = upper(aString)
---
toUpper("hello")

DataWeave 関数の引数には任意の DataWeave 式を使用できます。次の関数も ​"HELLO"​ を出力します。

%dw 2.0
output application/json
fun toUpper(aString) = upper(aString)
---
toUpper("h" ++ "el" ++ lower("LO") )

関数に渡された引数の種別をテストするには、組み込みの ​match​ 操作を使用して​パターン一致​を実行できます。

例: パターン一致を使用する例
%dw 2.0
output application/json
fun toUpper(aString)
= aString match {
  case is String -> upper(aString)
  else -> null
}
---
toUpper("h" ++ "el" ++ lower("LO") )

次の例では、数値文字列を共通の電話番号形式に再度書式設定する関数を作成します。

例: toPhoneFormat() 関数
%dw 2.0
output application/json
fun toPhoneFormat(str: String) =
    "(" ++ str[0 to 2] ++ ") " ++ str[3 to 5] ++ "-" ++ str[6 to 9]
---
toPhoneFormat("1234567890")
toPhoneFormat("1234567890") の出力
"(123) 456-7890"