DataWeave 言語

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

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

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

DataWeave 言語のいくつかの重要な機能を以下の簡単な例で示します。

  • ある形式から別の形式へのデータ変換。例では、​application/json​ 入力を ​application/xml​ 出力に変換しています。

  • 入力データ構造内の項目にアクセスするデータセレクター。スクリプトは、メッセージペイロード入力から JSON オブジェクトのキー (​payload.title​ など) を選択し、その値を出力します。

  • 入力項目 ​upper(payload.author)​ の値に対するコア DataWeave 関数の使用。

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

入力ペイロード
{
  "title": "Java 8 in Action",
  "author": "Mario Fusco",
  "year": 2014
}
変換
%dw 2.0
output application/xml
---
{
  order: {
    'type': 'Book',
    'title': payload.title,
    'author': upper(payload.author),
    'year': payload.year
  }
}
出力ペイロード
<?xml version='1.0' encoding='UTF-8'?>
<order>
  <type>Book</type>
  <title>Java 8 in Action</title>
  <author>MARIO FUSCO</author>
  <year>2014</year>
</order>

さらに複雑なデータ操作と変換が可能です。

DataWeave では、XML および JSON に加えていくつかのファイル入力形式と出力形式がサポートされます。また、データを操作するための多くの関数が提供され、データ構造内の項目にアクセスするためのセレクターが含まれます。配列、キー-値ペア、Java オブジェクト、文字列、数値に加えて多くのデータ型を処理できます。型強制がサポートされるほか、スクリプト内での独自の関数、データ型、変数の作成と使用もサポートされます。

アプリケーションを Anypoint Studio または Design Center で作成するか、手書きの XML 設定ファイルとして作成する場合、メッセージプロセッサー (コンポーネント、コネクタ、モジュール) 内で DataWeave の式とスクリプトを記述します。

  • Transformer コンポーネントの目的は、簡単な形式変換または複雑なデータ抽出および変換プロセスにかかわらず、データ変換を実行するスクリプトを作成することです。

    「Transform Message コンポーネント」​を参照してください。

  • 多くの Mule メッセージプロセッサーが DataWeave 式をサポートしているため、必要な Mule イベントの各部分でコア DataWeave 関数にアクセスし、使用できます。

    「DataWeave スクリプト」​で Set Payload のインライン DataWeave スクリプトの例を参照してください。また、​message​ 属性については​「Logger コンポーネント」​の例、Set Payload (​<ee:set-payload>​) および Set Variable コンポーネントについては​「For Each スコープ」​の例、​<file:content>​ については File Connector のドキュメントを参照してください。