Alteryxでメッセージ出力する

こんにちは、小澤です。

AlteryxではResultに処理状況の結果が表示されます。

この出力は各ツールでの処理内容を確認したり、エラーが発生した際にその内容を確認したりと色々状況を見るのに役立ちます。 また、このログは Options > Advanced Options > System Settings からの設定でLogging Directoryの値を設定しておくとその場所にファイルとして出力されます。

この設定によって、ワークフローの実行ログとして管理しておくことも可能になりますね。 さて、そうなってくるとやりたくなる"ログにどんな情報を残すか"を便利に扱うツールを紹介したいと思います。

Messageツール

それを実現するのがMessageツールとなります。

このツールをワークフロー上に配置して、以下のように設定します。

この状態でワークフローを実行すると、以下のように表示されます。

Messageツールの設定いろいろ

先ほど単純な固定値をMessageツールで出力しましたが、このツールは設定によって他にも様々なことが可能です。

メッセージの表示タイミング

「When To Send Message」ではメッセージを表示するタイミングを選択できます。 タイミングというと、イメージしづらいかもしれませんが、Messageツールの処理フローはタイミングの関係は以下のようになっています。

  1. Messageツールの処理開始
  2. 1行目のデータを読み込む
  3. Messageツールでその行のデータに対して処理をすることがあれば実行
  4. その行のデータを出力
  5. 2行目以降に対して2-4を繰り返す
  6. Messageツールの処理終了
  7. 後続の処理開始

Before First Recordを選択すると、このツールの実行開始時にメッセージが出力されます。 これは、Messageツールが最初の行のデータを読み込む前なので1のタイミングとなります。

Before Row When Expression is Trueを選択すると、データ中の各行が特定の条件を満たす際にメッセージ出力が行われます。 これは3のタイミングで実行されます。 "条件を満たす"の部分に関しては、この項目を選択した際にその下にFormula式を書くことで条件を指定できます。書き方はFilterツールと同等です。 2-5の処理はループ処理となっているので、条件を満たす行が複数ある場合、Messageツールは複数回出力を行います。 また、この3のタイミングで条件を満たさなかった場合、Messageの出力は行いませんが、4の出力の対象にはなります。

After Last Recordは全ての行に対しての処理が実行されたあとのタイミングになります。 処理の流れとしては6のタイミングとなります。

After All Down Stream Tools Have Completedは少し特殊なタイミングになっています。 これは、Messageツール実行時のタイミングではなく、後続の処理も全て終わったタイミングでメッセージ出力を行います。 先ほどのワークフローだと、一番最後の3つのBrowseツールが終了したのち、メッセージを出力します。

出力の種類と階層

続いて、Message TypeとMessage Priorityの設定では、出力のさせ方の設定が可能です。

Message Typeでは、出力の種類を指定できます。 一覧の項目を見ていただければ、内容はお分りいただけるかと思いますが以下のようになります。

項目 出力
Message 通常のログとして出力
Warning 警告として出力
Field Conversion Error 変換エラーとして出力
Error エラーとして出力
Error - And Stop Passing Records Throught This Tool エラー出力し、後続にデータを渡さない
File Input アイコンの部分をファイル入力のディレクトリマークにする
File Output アイコンの部分をファイル出力のフロッピーマークにする

Message Priorityはどの階層までエラーを出力するかという設定になります。 階層というと「?」となるかもしれません。これは要するにMessageツールをマクロ内で使用した際に、そのマクロを使ったワークフローでメッセージを表示するかの設定になります。

Normalにすると、表示されません。 Middleにすると直接利用しているマクロである場合のみ表示されます。 Highにするとマクロの中で使っているマクロなど階層が深くなっても一番手前のワークフローのメッセージとして表示してくれます。

メッセージ内容

一番最後の「Message Expression」で、表示するメッセージ内容を書きます。 この部分はFormula式で記述するため、単一のメッセージでも"メッセージを表示するよ!"のように「"」でくくる必要があります。 表示タイミングを「Before Row When Expression is True」にしてる場合などは、変数を使ってメッセージ中に含めることも可能です。 また、行番号など変数も用意されています。

また、通常のFormula式同様、関数なども利用可能です。

おわりに

今回は、AlteryxのMessageツールを紹介しました。 このツールの存在自体は、多くの場合でワークフロー内の処理に影響を与えないようなものになります。 ワークフローの実行状況の確認や定期実行されるワークフローのログ出力として確認できるものとして仕込んでおくといいでしょう。

また、「Error - And Stop Passing Records Throught This Tool」を選択することで任意の状況をエラーとして扱うことも可能です。

Alteryxの導入なら、クラスメソッドにおまかせください

日本初のAlteryxビジネスパートナーであるクラスメソッドが、Alteryxの導入から活用方法までサポートします。14日間の無料トライアルも実施中ですので、お気軽にご相談ください。

alteryx_960x400