Alteryxでインプットファイルのチェックを自動化する方法をご紹介します
Alteryxワークフローを実行してエラーになるので調べてみたら、単純にインプットファイルを間違えていた…という事があります。非常に単純なミスですので気づきやすいですが、インプットファイルが正しいか確認するチェック機能を付けて自動化しておくと、ワークフローの中身を追う必要もなくなるため、結果的に時間短縮に繋がります。
また、ワークフローを作った人と別の人がワークフローの実行を行うような場合は特に有効な手段です。
今回は、インプットファイルのチェックを行うのに便利な、メッセージツールとフィールド情報ツールを使ったエラートラップについてご紹介します。
インプットファイルのチェック機能をつけてみよう
簡単なワークフローでエラー発生時の動きを考える
インプットファイルのフィールド名で、正しいファイルか判断するチェック機能を作ってみます。
下図の例で見ていきます。
インプットにエクセルシートを読み込んで、「日付」「曜日」「時間」列をグループ化して出力するという簡単なワークフローになっています。
このフローで、フィールド名を間違えたファイルを読み込んでみます(「日付」→「Date」)。
「日付」列を「Date」とフィールド名を変えて読み込むと、サマライズツールで「フィールド "日付" はレコードに含まれていません。」というエラーが出て止まりました。インプットファイルに必要なフィールドが含まれていなかったためです。
今回は単純なワークフローを開いて実行しているので、インプットファイルに問題があるとすぐにわかりました。しかし、これが複雑なフローだったり、分析アプリのGUI画面から実行していた場合、原因に気付くのに時間がかかります。
こんな時、インプットファイルのチェック機能をつけておくと、一目でインプットファイルが原因とわかり、エラー原因追求の時間短縮に繋がります。
チェック機能をつける
それではこのフローに、インプットファイルに必要なフィールドが存在するか確認するチェック機構をつけてみます。フローは下のようになります。
まず、フィールド情報ツールでインプットファイルのフィールド名を取得します。次に、あらかじめ必要なフィールド名をテキスト入力に記載しておき、先ほど取得したフィールド名とジョインツールで結合します。
ジョインツールの J 出力からは一致したフィールド名が、R 出力からはインプットファイルに足りないフィールド名が出力されます。この R に出力された足りないフィールド名をレコードカウントツールでカウントし、メッセージツールでカウントが0ではない場合(フィールドが足りない場合)にメッセージを出力するように設定します。
では、実際にフィールド名が間違っているファイルを使って実行してみます。
エラーメッセージが表示され、インプットファイルに問題があることが一目でわかるようになりました。
テキスト入力ツールにフィールドタイプやサイズも設定すれば、フィールド名以外もチェックできるようになります。また、メッセージツールでエラーにするのか、メッセージを出力するだけにするのかなども設定できます。
チェック機能で問題がなかった場合のみ次の処理へ進ませる
今度は、チェック機能を利用して、インプットファイルに問題があればエラーやメッセージを出力、問題がない場合は次の処理へ進むというフローにしてみます。
フローは下のようになります。
チェック機能のメッセージツールは、インプットファイルに問題がなければ「Count」列に 0 の値、問題があれば 1 以上の値が入っています。この「Count」列をフィールド付加ですべてのレコードに付与し、メッセージツールで値が 0 ではない場合(ファイルチェックで問題があった場合)にエラーを出すように設定します。
設定方法を、下で2つご紹介します。
① メッセージツールでレコードを停止する
エラーが発生した際に、メッセージツールより先にデータを流さないようにするためには、メッセージタイプを「エラー - ツールを通過するレコードを停止する」に設定します。
この設定ではエラーになった場合、メッセージツールでレコードが止まりますが、ワークフロー自体は最後まで回ります。インプットファイルが違っていてもフローは最後までは回したいという場合は、この設定がおすすめです。
実際に必要なフィールドが足りないインプットで実行すると、下のようになります。
② ワークフローの実行をキャンセルする
エラーが発生した際に、その時点でワークフローの実行を止めるためには、メッセージツールでエラーを出すようにしておき、ワークフローの設定(Configuration)ウィンドウの ランタイム(Runtime)タブから「エラー時のワークフローの実行をキャンセルする」を設定します。
この設定にすると、エラーになった場合ワークフローの実行自体がキャンセルされます。
インプットファイルを間違えている場合は即座に処理を中止したいという場合は、こちらのこの設定がおすすめです(様々な重いファイルを読み込んでいる場合には、なるべく早い段階で止めた方が効率が良いです)。
実際に必要なフィールドが足りないインプットで実行すると、下のようになります。
まとめ
インプットファイルを動的にチェックする方法をご紹介しました。
さらに応用していけばエラーになっているフィールド名などをメッセージで出力することも可能です。
用途によって使い分けることで、エラーが出てしまった際も無駄な処理をキャンセルし、いち早く原因がわかるようになります。ぜひ使ってみてください。
サンプルワークフローダウンロード
Input_check_sample fa-download
※Alteryx Designer 2019.1.6.58192時点の情報です