Alteryxで繰り返し処理!バッチマクロを使ってみよう

『今日からはじめるAlteryx再入門』アドベントカレンダー15日目
2020.12.15

こんにちは、スズです。

本エントリは2020年アドベントカレンダー『今日からはじめるAlteryx再入門』の15日目のエントリです。

本日15日目は『Alteryxで繰り返し処理!バッチマクロを使ってみよう』をお届けします。

執筆環境

本エントリの執筆環境は以下の通りです。

  • Alteryx Designer 2020.4.5.12471 Non-Admin
  • Windows 10 Pro

バッチマクロって何だろう?

バッチマクロは、Alteryx Designerで処理を繰り返し実行したいときに使用するマクロです。コントロールパラメーターというツールを使用して、そのツールに入力されたデータのレコードの数だけ処理を繰り返し実行します。

例えば、以下の図ではバッチマクロに2つの入力アンカーが用意されています。下の入力アンカーには標準マクロと同じように使用し、上の入力アンカーに入力したデータは「元のデータ」に対して「レコードの数だけ処理を繰り返す」のに使用します。以下の図の場合、バッチマクロ内では「元のデータ」に新しい列を作成し、上の入力アンカーから取得したデータを出力する、という処理を行っています。上の入力アンカーのデータには4レコードありますので、処理が4回繰り返された結果が出力されています。

バッチマクロってどうやって使うの?

バッチマクロの作り方と使い方をご紹介していきます。

処理を繰り返す、コントロールパラメーター

バッチマクロの繰り返しの処理には、コントロールパラメーターツールを使用します。

以下の標準ワークフローを用意しました。この標準ワークフローを使って、コントロールパラメーターツールを紹介していきます。

コントロールパラメーターツールをキャンバスに配置すると、自動的にワークフローのタイプがバッチマクロとして認識されます。

キャンバスの方を見ると、先に配置されているツールの上に入力アンカーが表示されています。これがコントロールパラメーターツールの接続先になります。

今回はコントロールパラメーターツールからフォーミュラツールに接続してみます。フォーミュラツールの入力アンカーには左側のQのアンカーと右側の雷のようなマークのアンカーがあります。どちらに接続するかによって動作が異なります。

まずは左側のQの入力アンカーに接続してみます。接続すると、接続線に「#1」と表示されています。この「#1」は、接続先のフォーミュラツールで使用できる変数になっています。コントロールパラメーターツールで受け取ったデータを「#1」の変数で使用できます。

 

続いて右側の雷の入力アンカーに接続してみます。接続すると、コントロールパラメーターツールとフォーミュラツールの間に、自動的に別のツールがが挿入されます。これはアクションツールといって、接続先のツールの設定内容を更新することができます。

 

バッチマクロをワークフローに配置すると、逆疑問符(逆さまの?マーク)の入力アンカーが表示されます。この逆疑問符の入力アンカーが、コントロールパラメーターツールが担う部分になります。

このバッチマクロにはコントロールパラメーターツールのみ配置しているため、逆疑問符の入力アンカーのみ表示されています。繰り返し処理する以外のデータと組み合わせて使いたいという場合には、マクロ入力ツールを使用します。また、バッチマクロの後にデータの出力先が必要な場合には、マクロ出力ツールを使用します。標準マクロと同じく、バッチマクロの入力/出力アンカーの数は、バッチマクロを作成する際に自在に設定できます。

バッチマクロのグループ化

作成したバッチマクロを使ってみようとしたとき、バッチマクロの設定にグループ化質問が表示される場合があります。ここでは、バッチマクロをグループ化して処理した場合の動作を見てみます。

 

以下のバッチマクロでは、コントロールパラメーターツールから受け取ったデータを新しい列に出力する、という処理を行っています。

以下の2つのデータを用意しました。左のデータをコントロールパラメーターツールの入力アンカーに、右のデータをマクロ入力の入力アンカーに接続します。

 

グループ化に「ID」列、質問に「名前」列を選択して、実行します。

 

結果を確認すると、以下のようなデータが出力されました。「ID」列のレコードにしたがってデータをグループ化した上で、処理が繰り返し実行されています。

インターフェースデザイナーの設定

バッチマクロを作成する際、キャンバス上での設定以外に、インターフェースデザイナーにも設定があります。インターフェースデザイナーのプロパティには、以下の設定があります。

  • すべての反復は同じ出力スキーマを持ちます(異なる場合はエラー)
  • 名前による自動設定(すべての反復が実行されるまで待機)
  • 位置による自動設定(すべての反復が実行されるまで待機)

ここでは、名前による自動設定を選択している場合の動作を見てみます。名前による自動設定では、バッチマクロに入力されたデータの列名によって、レコードの出力先を自動的に設定します。以下のように、データ入力ツールを使ったバッチマクロで動作を見てみます。

テキスト入力ツールとバッチマクロを接続します。テキスト入力ツールには、バッチマクロで読み込むファイルパスを記載しています。今回は2つのファイルパスを記載しています。

 

2つのファイルにはそれぞれ以下のデータが用意されています。「ID」という共通の名前の列がありますが、「Name」と「Full Name」は列名が異なっています。

 

結果を確認すると、「ID」は1つの列に集約されていますが、「Name」と「Full Name」は異なる列として扱われています。

バッチマクロから標準ワークフローに戻したいとき

コントロールパラメーターツールをキャンバスに配置すると自動的にバッチマクロに変更されますが、反対に標準ワークフローに戻したい場合はコントロールパラメーターツールを削除するだけでは標準ワークフローには戻りません。インターフェースカテゴリのツールをキャンバスから削除した上で、ワークフローの設定を標準ワークフローに切り替える必要があります。

さいごに

今日から始めるAlteryx再入門アドベントカレンダー15日目『Alteryxで繰り返し処理!バッチマクロを使ってみよう』をお届けしました。

明日16日目はshoによる『反復マクロを作成しよう(仮)』を予定しています。明日もお楽しみに!