Alteryxで特定の条件を満たすときだけ設定を置き換える
こんにちは、小澤です。
AlteryxでAnalytic Appやマクロを利用する際にはインターフェースツールを使ってツール設定値を置き換えることが可能です。 その際、複雑な処理を行うような仕組みの場合、設定値によって処理を分岐させるなどが発生するかもしれません。
Detourツールやコンテナ有効無効切り替えによってワークフローのどの部分が実行されるかを切り替えることが可能、というは過去の記事で紹介しました。
しかし、場合によっては「特定の箇所の設定変更をデフォルト値を設定したい」や「ほかの設定によって変える場所は同じだけど反映させる対象の設定値は変えたい」ということもあるかもしれません。
今回は、そんなときに利用可能な"特定の条件を満たすときだけインターフェースの設定を反映させる"という方法を見ていきたいと思います。
設定値が特定の条件を満たすかを判断するConditionツール
さて、この仕組みを実現するためにConditionツールというものを利用します。
ConditionツールはActionツールのように他のインターフェースツールから縦につなげます。
この状態で、Conditionツールの設定は以下のようになっています。
この画面では、ブール値を返すFormula式を記述できます。 そのため、Filterツールのようなものだと思ってください。
また、FormulaツールやFilterツールのようにインターフェースツールから取得した値をコネクション名を使って利用可能になっています。
上記設定画面の画像では、Text Boxツールから接続したConditionツールの例です。 実行時に設定値として"ビール"が入力されているかを判定しています。
ここで判定された結果はどのように利用するのでしょうか? 以下のようなワークフローを例に見ていきたいと思います。
左側の「これに」は通常のText Boxの使い方と同様、入力された値でText Inputの値を書き換えています。
Text Inputの内容は以下のようになっており、この値を書き換える設定となっています。
ここで、いつもと違うのはActionツールの右上にCondtionツールがつながっている部分となります。
このワークフローをAnalytic Appとして実行すると以下のようになります。
上部の「変える」というチェックボックスがConditionツールにつながったもので、下部の「これに」が左上のText Boxに対応しています。
チェックを入れていない状態で「これに」に適当な文字列を入れて実行結果を確認してみます。
値が書き換えられていないことがわかります。 一方、チェックを入れた状態にすると以下のような結果になります。
こちらは、Text Boxに入力した値で結果が置き換わっているのが確認できます。
これがConditionツールによる動きの変更となります。 Conditionツールは以下のように設定しており、Check Boxツールの入力値はそのままブール値として利用できるため、チェックが入っているときのみ、Condtionツールの「T」側の出力へのActionツールでの変更を受け付ける状態になっています。
条件によって対象となる設定を変える
続いては、これの応用例を見ていきましょう。 以下のようなワークフローを使います。
先ほどとの変更点は「やっぱこっち」というText Boxツールを1つ追加したのみです。 こちらのText BoxツールからつながるActionツールでもText Inputツールの変更対象は「これに」側と同じ部分にしています。 2つのActionツールはどちらも同じ設定で同じツールにつながっているため、このままでは設定が競合してしまいます。
これを解決するために、CondtionツールにつながったCheck Boxツールの出番となります。
先ほどのワークフローとの違いは、Condtionツールの出力の「F」側に「やっぱこっち」のActionツールを接続している点になります。
そのため、チェックの有無によってどちらの値で置き換わるかが決定します。
- チェックを入れた場合
- チェックを入れなかった場合
このようにCondtionツールを使うことで他の設定項目の内容に応じて対象となる設定値を変えるということが可能になります。
設定値がおかしいときはエラーにしたい
さて、Condtionツールを使うと、かなり複雑な設定も可能になります。 そうなってくると、どのような設定をするとどのような動きをするのかが実行する側にとって「複雑だなぁ」と感じてくるかもしれません。
そういった際の補助機能として、設定として正しくない場合はワークフローを実行せずにエラーとしてしまうことも可能です。 それを実現するためのツールがErrorツールとなります。
最初のワークフローにErrorツールを仕込んで以下のようにしてみました。
Errorツールの設定はCondtionツールとほぼ同じです。
上2つまではCondtionツールと同じです。 コネクション名で設定値を受け取れるので、実行時に設定された内容で エラーになる条件 を指定します。
3つ目の「If Expression is true, display error message」ではエラーとなった際に出力するメッセージを設定します。
チェックが入っている際に値を置き換えるというワークフローになっているため、チェックされているのに値が入力されていない場合はエラーとなるようにしています。
実際にチェックを入れて「これに」を空のまま実行すると以下のようなエラーが発生します。
適切なエラーメッセージを設定することで、Analytic Appやマクロを使う側の人にとって予期せぬ値でエラーが発生するよりも、何が起こってエラーになったのかを判断しやすくなるでしょう。
おわりに
今回は、Condtionツールを使うことでAlteryxのAnalytic Appやマクロで設定値の利用に関する条件を指定する方法を紹介しました。 また、Errorツールに関しては必ずしもConditionツールと組み合わせる必要はなく、単体で利用することも可能ですので、単純なワークフローでも利用するといいかと思います。
Alteryxの導入なら、クラスメソッドにおまかせください
日本初のAlteryxビジネスパートナーであるクラスメソッドが、Alteryxの導入から活用方法までサポートします。14日間の無料トライアルも実施中ですので、お気軽にご相談ください。