今回は入力チェックでよく使用するValidationモジュールの使い方について簡単に押さえておきたいと思いますい。
今回使うコンポーネント
コンポーネント | アイコン・領域 | 用途 |
---|---|---|
Is true | 指定された変数や数式がtrueであるかどうかを判定する。trueでない場合は例外をスローする。 |
Validationモジュールを使う
まず、Validationを使用するにあたり、Mule Paletteからモジュールを追加します。Mule PaletteからValidationのモジュールをプロジェクトに追加することでValidationコンポーネントの使用が可能になります。
Validationコンポーネントの使い方
Validationコンポーネントは様々な形式をチェックするために、用途に応じたコンポーネントが複数用意されています。Validationのコンポーネントは条件に一致するものは、そのまま通過し、条件に一致しないものは例外を吐き出す動作となるため、フローの中で関所のような役割を果たします。
Validationから吐き出される例外については、Validation特有の例外となるため、エラー処理をする際は例外Typeを拾ってエラー処理をすることになります。
実際にValidationコンポーネントの一つである、Is Trueを使ってみましょう。
Is TrueコンポーネントはExpressionに設定した数式がTrueの場合はそのまま通過、Falseであれば「VALIDATION:INVALID_BOOLEAN」の例外を出すコンポーネントとなっています。どのコンポーネントがどのような例外を出すかはリファレンスを参考にしてください。I
また、Validationコンポーネントを使用の際はModule configurationを設定する必要がありますが、こちらはデフォルトの設定で問題ありません。
以下のようなフローを構築し、直前のPayloadの値に対しIs TrueのValidationをかけるようにします。
Is Trueは以下のようにPayloadに対してTrueかどうかをチェックする数式を設定します。s Treuコンポーネントに設定できるExpressionにはTrueやFalseを設定するオプションもありますが、こちらはほぼチェックとしての意味を成さないものになっていますので、実際に使用するのは実質Expression + 数式の形一択でしょう。変数等を使用する場合は動的な数式(#[]でくくる)を使用する必要があります。
これで実際に実行してみましょう。Is True手前のSet Payloadがtrueの場合は、このようにIs Trueが通過され、直後の「Payload is “Validation OK”」が実行されます。
逆にIs True手前のSet Payloadでtrue以外のものを設定した場合は、Is Trueコンポーネントにて「VALIDATION:INVALID_BOOLEAN」例外が吐き出され、エラー処理される形になります。
一例としてIs Trueのコンポーネントで紹介しましたが、他の用途でチェックをかける必要がある場合はその用途に応じたコンポーネントを使用しましょう。In (not) null、 Is (not) empty collection、Matches regex(正規表現のチェック)などがよく使用することがあるんじゃないかと思います。
複数のValidationを使用する場合は?
以上が単一のValidationを使用した使い方になります。次回は複数Validationを使用するときのスコープと組み合わせた使い方を取り上げていきたいと思います。
コメント