Munitについての使い方を何回かにわたりお伝えしましたが、またMuleコンポーネントの使い方について戻っていきたいと思います。
今回使うコンポーネント
コンポーネント | アイコン・領域 | 用途 |
---|---|---|
Dynamic Evaluate | ファイルからDataweave式を読み込み実行する |
基本的な使い方
Dynamic Evaluateの基本的な使い方は以下の通りです。
- dwlファイルを作成し、resourcesに配置
- FileのReadコンポーネントからdwlファイル読み込み、任意の変数に格納
- Dynamic EvaluateコンポーネントでDataweave式を読み込み実行
まず、Dynamic Evaluateを使用するためにdwlファイルを作成します。今回は以下の内容のdwlファイルを作成します。
%dw 2.0
output application/json
---
{
"国": "日本",
"言語": "日本語",
"あいさつ": "こんにちは"
}
作成したdwlファイルをresources直下に配置します。
FileのReadコンポーネントでファイルの読み込みを行います。File Pathには先ほどresources直下に配置したdwlファイルを設定します。ファイルで読み込んだ内容は変数に格納するために、Target Variableに変数を設定します。
Readコンポーネントの次にDynamic Evaluateを配置します。Expressionには先ほどのReadで読み込んだ内容を設定します。
ちなみに、ExpressionはBinary型を設定することになるため、直接Dataweave式を記載するとエラーになってしまいます。FileのReadコンポーネントとセットで使うものと覚えておきましょう。
まずはシンプルな感じでフローを作成してみました。
フローを実行すると、このように記載したDataweave式が実行されていることが分かります。
どういう時に使う?
Dynamic Evaluateコンポーネントで実現できることはDataweave式の切り替えです。Dataweave式には様々なロジックを組み込むことができるため、フローよりも柔軟で小回りの効く実装ができるようになります。
上記のフローを発展させた形として、パラメータで国を指定して、ファイル名が国の名前と一致するファイルを読み込んでDataweave式を実行するという形にすれば、分岐を作らずに動的にdwlファイルを切り替えることができます。
上記の例のように、出力形式を切り替えるときや、バリデーションや変換ルールの異なる使用を切り替えることが可能になるため、フローがよりスッキリする形になるかと思います。
コメント