今回は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を使って実現できることの幅が広がりますので、ぜひ使ってみてください。