【Alteryx】複数に分かれたAlteryxフローをコマンドラインで一括実行する方法

【Alteryx】複数に分かれたAlteryxフローをコマンドラインで一括実行する方法 | Tableau-id Press -タブロイド-
batch_thumbnail

はじめに

こんにちは、Yukoです!とても久しぶりの投稿になってしまいました…

Alteryxであるあるな方もいるかもしれませんが、開発していて気づいたらフローの数がすごいになっていた…
なんてことはありませんか?
これ、一つ一つ開いて実行していくのは大変ですよね。

 

Crew Macroの一つで、複数のフローを一括実行するのにとても便利なRunner macroについては、
以前こちらの記事で紹介しました。

細分化されたAlteryxワークフローを一度に回してくれるRunnerマクロを使ってみた
#Alteryx #20 | Alteryx Advent Calendar 2016
https://blog.truestar.co.jp/alteryx/20161220/978/

 

ただしRunner macroはAlteryxのデフォルトの機能ではなく、サードパーティー製になります。
2021年6月現在、Designer2021.2のリリースノートにはCrewマクロを回そうとすると
エラーになってしまう、ということが既知の問題となっています。

Designer2021.2 リリースノート

https://help.alteryx.com/ja/release-notes/designer/designer-20212-release-notes

 

今後リリースされる新しいバージョンでこの問題に対応してくれるのを期待したいのですが、
一方で安定的に一括実行できるものが欲しいですよね。

前置きが長くなりましたが、そこで今回は複数に分かれたAlteryxフローを一括実行するWindows バッチについて紹介したいと思います。

 

前提

実行コマンドはAlteryxEngineCmd.exeで、Alteryxをインストールした際のbinディレクトリにあり、
既定のパスはC:\Program Files\Alteryx\binになります。
また、実行するにはエンジンAPIライセンスが必要になります。

コマンドラインでワークフローを実行
https://help.alteryx.com/ja/current/designer/run-workflows-command-line

AlteryxDesignerだと、Automation Add-on のライセンスがあれば付随しているので実行できました。

実際にやってみる

以下のような階層のうち、00 Alteryx配下にあるフロー1~3を上から順番に実行していきます。

一括実行.batファイルの中身は以下です。

@echo off

echo フロー1.yxmd 開始

"C:\Program Files\Alteryx\bin\AlteryxEngineCmd.exe" ".\00 Alteryx\フロー1.yxmd" >log\log.txt
if %ERRORLEVEL% == 2 (
	echo エラー発生
	goto end
)

echo フロー1.yxmd 終了

echo フロー2.yxmd 開始

"C:\Program Files\Alteryx\bin\AlteryxEngineCmd.exe" ".\00 Alteryx\フロー2.yxmd" >log\log.txt
if %ERRORLEVEL% == 2 (
	echo エラー発生
	goto end
)

echo フロー2.yxmd 終了

echo フロー3.yxmd 開始

"C:\Program Files\Alteryx\bin\AlteryxEngineCmd.exe" ".\00 Alteryx\フロー3.yxmd" >log\log.txt
if %ERRORLEVEL% == 2 (
	echo エラー発生
	goto end
)

echo フロー3.yxmd 終了
echo 正常終了

:end

pause

構成としては以下のような感じになります。

logは適宜logのフォルダ内にlog.txtのテキストファイルを用意してあげると
logをコマンド上に表示させず、echoで指定した文言だけをスッキリ表示させることができます。

batファイルをダブルクリックし、上から順に実行できました!

まとめと次回予告(?)

今回は複数に分かれたフローを順番に一括で実行してくれるものを紹介しました。

本来であれば1つのフローの中に全部集約できれば一回の実行で済むけれど…
なんでもかんでも一つにまとめると何かのエラーの際、大きなフローから原因を探らなくてはならないのでそれも大変ですよね。

というわけで次回はAlteryxのワークフローの理想形を目指せ☆ということで、
フローのリファクタリングの観点をまとめてご紹介できればと思います。

乞うご期待!