反復マクロを作成しよう!- 今日からはじめるAlteryx再入門アドベントカレンダー

2020.12.16

こんにちは。
Alteryx絶賛勉強中のshoです。

当エントリは2020年アドベントカレンダー『今日からはじめるAlteryx 再入門』の16日目のエントリになります。

このアドベントカレンダーの企画は、Developers.IOにてAlteryxの情報をお届けしてきたメンバーによるAlteryxを1から学べるシリーズになっています。Alteryx触ってみたい!という方の入門記事として、Alteryx使っているけど改めて基礎から学びたい!という方の再入門記事としてご活用いただければ幸いです。

16日目の今日は「反復マクロを作成しよう」をお届けします。

反復マクロとは?

マクロとは、同じ処理をワークフローに組み込む場合に、予めワークフローを作成し、そのワークフローをツールとして、別のワークフローに追加することができる機能になります。
これまで、2種類のマクロについてご紹介してきました。


今日紹介する反復マクロは、繰り返し同じ処理を実行した結果をワークフローに組み込みたい場合に使用します。
バッチマクロとの違いや反復マクロの詳細につきましては、以下のエントリをご参照ください。

反復マクロを作成しよう

今年ももう年末なので、年末のご挨拶も兼ねてAlteryxの各オフィスを巡りつつ、クラスメソッドのオフィスも巡る旅のルートを確認するというテーマで、反復マクロのワークフローを作成していきたいと思います。

Alteryxとクラスメソッドのオフィスを巡る旅

  • 移動手段:サンタさんのソリ(アドベントカレンダーにちなんで)
  • 出発地:クラスメソッド 秋葉原オフィス
  • 最終目的地:クラスメソッド 札幌オフィス
  • データソース

  • ルールその①:移動する際には常にいちばん近いオフィスに移動する
  • ルールその②:サンタさんのソリで空路にて移動する

ワークフローの処理の流れを考える

ワークフローを作成する前に処理の流れを考えていきたいと思います。

  1. 各社のオフィス情報のデータファイルを読み込む
  2. オフィス情報に含まれる緯度経度情報から空間ポイントを作成
  3. 最終目的地の札幌オフィスをデータから除外する
  4. 現在地からいちばん近いオフィス情報を割り出す
  5. 上記【4】の処理を繰り返し実行する
  6. 出発地の秋葉原オフィスと最終目的地の札幌オフィスをルートの最後に追加する
  7. すべてのオフィスを巡り終えたあと、回る順番で各オフィスを線で結ぶ

反復マクロに使用する部分を標準ワークフローで作成してみる

処理の流れを考えた際に、繰り返し実行する処理とそれ以外の処理の2つのパートに別れるため、まずは繰り返し実行する処理を標準ワークフローにて作成しました。
完成したワークフローがこちら。

データの1行目に現在地の情報が含まれるため、まずはサンプリングツールを使用して、データの1行目を出力するアウトプットと1行目をスキップするアウトプットを作成しました。

その後、空間分析の最寄り地点検索ツールを使用し、現在地と他のオフィスの空間ポイント情報から現在地にいちばん近いオフィスを出力しました。
その際、最大距離は念のため地球のいちばん長い円周を設定しました。

次に、必要となる項目のみを出力するため、セレクトツールを使用して不要な項目を除外しました。

ここから、次の目的地情報は今回の反復処理にて出力するアウトプットデータとなるため、そのまま閲覧ツールにつなぐとともに、最寄り地点検索ツールから割り出した次の目的地情報と上記の他のオフィスデータを結合し、残りのオフィス情報を割り出しました。

また、繰り返しの処理の対象となる次の目的地を検索するためのオフィス情報を出力するため、ユニオンツールにて最寄り地点検索ツールから割り出した次の目的地情報と残りのオフィス情報を出力し、そのまま閲覧ツールにつなぎました。
その際、次の目的地情報がデータの1列目に出力されるようにするため、出力順序も指定しました。

これにて反復マクロのベースとなるワークフローが完成しました。

標準ワークフローを反復マクロに切り替える

このままでは、マクロとして使用できないため、標準ワークフローから反復マクロに切り替えます。
まず、データ入力ツールを右クリックし、マクロ入力に変更し、名称を“Advent Input”と設定しました。
同様に、閲覧ツールを右クリックし、マクロ出力に変更した上で、出力結果となるアウトプットの名称を“Route Result”、反復処理の実行対象となるアウトプットの名称を“Location Left”と設定しました。
この名称はこのあとの設定で使用するため、どのデータがどの名称なのかわかりやすい名称に設定しておくことをお勧めします。

次に、ワークフローの設定にて、ワークフローのタイプを反復マクロに切り替えます。

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

ここから、反復マクロに関する設定になります。
反復入力のデータと反復出力のデータを指定します。
今回は、入力データは1つなのでそのままの設定で、問題ありませんが、出力に対しては次の目的地のデータと反復処理に回す残りのオフィス情報のデータの2種類があるため、ドロップダウンから繰り返し実行する対象となる“Location Left”を指定します。

最大反復回数も設定することができますが、今回はこのまま回数を変更せずに処理をしていきたいと思います。
また、最大反復回数に達した際にどのような処理をするのか、出力をどのように実施するのかもオプション機能として設定が可能です。
これにて反復マクロの作成が完了しました。

標準ワークフローに作成した反復マクロを組み込む

反復マクロが完成したので、ワークフローで作成していきたいと思います。 改めてとなりますが、処理の流れは以下のようになります。

  1. 各社のオフィス情報のデータファイルを読み込む
  2. オフィス情報に含まれる緯度経度情報から空間ポイントを作成
  3. 最終目的地の札幌オフィスをデータから除外する
  4. 現在地からいちばん近いオフィス情報を最寄り地点ツールにて割り出す
  5. 上記【4】の処理を繰り返し実行する
  6. 出発地の秋葉原オフィスと最終目的地の札幌オフィスをルートの最後に追加する
  7. すべてのオフィスを巡り終えたあと、回る順番で各オフィスを線で結ぶ

完成したワークフローがこちらです。

実際に実行してみた結果以下のような旅路を行くことになりました。

【出発地から最終目的地までの経路】

クラスメソッド/秋葉原 本社→クラスメソッド/岩本町オフィス(ユニゾ岩本町ビル)→Alteryx/TOKYO REGIONAL OFFICE→クラスメソッド/上越オフィス→クラスメソッド/大阪オフィス→クラスメソッド/岡山オフィス→クラスメソッド/福岡オフィス→クラスメソッド/那覇オフィス→クラスメソッド/タイ バンコクオフィス→Alteryx/SINGAPORE REGIONAL OFFICE→クラスメソッド/インド グルガオンオフィス→Alteryx/MEA FZ LLC→Alteryx/KIEV/KYIV REGIONAL OFFICE→Alteryx/CZECH REPUBLIC REGIONAL OFFICE→クラスメソッド/ドイツ ベルリンオフィス→Alteryx/DACH REGIONAL OFFICE→Alteryx/PARIS REGIONAL OFFICE→Alteryx/EMEA REGIONAL OFFICE→Alteryx/BOSTON REGIONAL OFFICE→Alteryx/NEW YORK OFFICE - MANHATTAN→Alteryx/CANADIAN REGIONAL OFFICE→Alteryx/CHICAGO REGIONAL OFFICE→Alteryx/DALLAS REGIONAL OFFICE→Alteryx/BROOMFIELD TECHNOLOGY CENTER→Alteryx/Alteryx Headquarters→Alteryx/REDWOOD CITY REGIONAL OFFICE→クラスメソッド/カナダ バンクーバーオフィス→Alteryx/BRAZIL REGIONAL OFFICE→Alteryx/AUSTRALIA REGIONAL OFFICE→クラスメソッド/札幌オフィス

Alteryxのオフィスが18箇所に、クラスメソッドのオフィスが12か所にあるため、世界一周の旅になりそうです。
このルートを線で結んだ結果がこちらです。

まとめ

今回は、反復マクロの作成と、そのマクロをワークフローで使用する流れまでご紹介しました。
反復マクロは繰り返し実行したい、ループ処理を作成したいなどの用途に役立てることができます。
今日までにご紹介した標準マクロ・バッチマクロ・反復マクロとそれぞれ異なる用途で活用することができ、マクロとして作成しておくことで、別のワークフローにも活用できる便利な機能となりますのでこの機会にぜひご活用ください!
明日のテーマはマクロ作成のポイントなどをご紹介する総まとめをお送りする予定です!!お楽しみに!!