Alteryx Designerの結合ツールで結合できないレコードがあったときにエラーにする #Alteryx

2024.06.23

こんにちは、スズです。

Alteryx Designerの結合ツールで結合できないレコードがあった場合にエラーとし、ワークフローを停止する方法についてご紹介します。

執筆環境

  • Alteryx Designer 2024.1
  • Windows 10 Pro

ワークフローの全体像

今回使用するワークフローは以下のような構成になっています。テキスト入力ツールで用意した2つのデータセットを、結合ツールで結合し、結合したデータセット(Jの出力アンカー)をデータ出力ツールでCSVファイルに出力します。

結合ツールのRの出力アンカーにはメッセージツールを接続しています。もしRの出力アンカーからレコードが出力された場合は、メッセージツールによってエラーを出力するように設定しています。メッセージツールでは、メッセージタイプを「エラー」に設定し、メッセージ式にはエラー発生時に出力するメッセージを入力しています。

また、ワークフローの設定の[ランタイム]タブにて、「エラー時のワークフローの実行をキャンセルする」を有効にします。この設定を有効にすることで、メッセージツールでエラーが出力された場合に、ワークフローの実行を停止することができます。

全てのレコードが結合できた場合

まずはこちらのワークフローで、正常に結合できた場合の動作を確認しておきます。2つのテキスト入力ツールでは、以下のデータセットを用意しました。2つのデータセットは同じIDが用意されていますので、結合ツールでIDをキーに結合することで、全てのレコードが結合されます。

結合ツールのLの入力アンカーに接続したデータセット:

結合ツールのRの入力アンカーに接続したデータセット:

この場合、全てのレコードが結合されますので、ワークフローは正常に終了します。

結合できないレコードがあった場合

今度は、結合ツールのRの入力アンカーに接続している方のテキスト入力ツールで値を変更し、結合ツールのRの出力アンカーからレコードが出力される状態にします。

結合ツールのLの入力アンカーに接続したデータセット:

結合ツールのRの入力アンカーに接続したデータセット:

この状態でワークフローを実行しますと、結合ツールのRの出力アンカーからレコードが出力され、メッセージツールがエラーを出力、ワークフローの実行がキャンセルされます。

実行順序の制御

エラーが出力されたことでワークフローの実行はキャンセルされましたが、ワークフローの実行がキャンセルされる前にデータ出力ツールまで処理が到達している場合、データ出力ツールの出力先のフォルダにファイルが作成されている場合があります。今回使用している環境でも、出力先のフォルダに中身は空のCSVファイルが作成されていました。

このような動作を回避したい場合、コントロールコンテナツールを使ってツールの実行順序を制御する方法があります。メッセージツールとデータ出力ツールをそれぞれコントロールコンテナツール内に配置し、メッセージツールのコントロールコンテナツールからデータ出力ツールのコントロールコンテナツールを接続します。これにより、メッセージツールでの処理のあとにデータ出力ツールの処理が行われるようになり、先ほどの事象を回避することができます。

最後に

Alteryx Designerの結合ツールで結合できないレコードがあった場合にエラーとしてワークフローを停止する方法をご紹介しました。