【Alteryx】ファイルのバックアップを取ってからワークフローを実行する

【Alteryx】ファイルのバックアップを取ってからワークフローを実行する | Tableau-id Press -タブロイド-
Alteryx

今回はAlteryxのイベント機能を利用して、ファイルのバックアップを自動で取ってからフローを実行する方法をご紹介します!

ワークフロー

Excelデータを加工してyxdbで出力、という単純なフローです。
Outputで出力している「SampleOutput.yxdb」のバックアップをとってからフローを実行、Outputの上書きをしたいです。

バッチファイル

バックアップフォルダの作成、ファイルをコピーするバッチファイル「file_copy.bat」を作成します。

・file_copy.bat サンプル

rem backupフォルダ内にシステム日付(yyyyMMdd)でフォルダを作成
If not exist C:\work\BeforeRunEventSample\output\backup\%DATE:/=% mkdir C:\work\BeforeRunEventSample\output\backup\%DATE:/=%

rem 日付フォルダにファイルコピー、既にある場合は上書きする
copy /y C:\work\BeforeRunEventSample\output\SampleOutput.yxdb C:\work\BeforeRunEventSample\output\backup\%DATE:/=%\SampleOutput.yxdb

backupフォルダ内にシステム日付(yyyyMMdd形式)でフォルダを作成し、ファイルをコピーします。
既にファイルがある場合は強制的に上書きします。

イベント登録

ワークフローの設定にて、Events(イベント)タブを開きます。

Add > Run Commandを選択すると、イベント編集画面が開くので次のように設定します。

・Run Event When(イベント実行時)
いつイベント実行したいかを指定します。今回はフロー実行前にバックアップを取りたいため、Before Run(実行前)を選択します。

・Command(コマンド)
作成したfile_copy.batを指定します。

・Command Arguments(コマンド引数)、Working Directory(作業ディレクトリ)
今回は空欄でOKです。この2つは任意設定で、必要時に設定します。

・Timeout(タイムアウト)
タイムアウトまでの時間をで指定します。時間内に完了しない場合、コマンドの実行は停止します。
デフォルトは30秒ですが、ちょっと短いので300秒にします。

設定が終わったらOKを押しイベントを適用します。

フロー実行

バックアップが期待通り取れているか確認するため、Outputのタイムスタンプを控えておきます。

フローを実行します。Outputが上書きされました。

バックアップフォルダ内を確認します

本日の日付でフォルダが作成されています。
さらに、フロー実行前のタイムスタンプのOutputファイルがコピーされており、バックアップに成功しました!


【おわりに】
何か問題があったときのために、ファイルのバックアップはあると安心ですよね。自動化しておけば取り忘れもなく楽なのでお試しください!

イベントを使えば、Alteryxの機能ではできないことも外部プログラムに任せ、前処理や後処理をすることもできます。Alteryxを使って実現できることの幅が広がりますので、ぜひ使ってみてください。