Alteryxで出力ファイルをZIPファイルにイベント機能を使って圧縮する方法
Alteryxは標準で出力ファイルをZIP形式にまとめる機能がありません。コマンド実行ツールやイベント機能を使って外部ツールで実現することになります。別の記事ではコマンド実行ツールを用いた方法をご紹介しましたが、今回はイベント機能を使ってバッチファイルで行う方法をご紹介します。
おさらい
- Alteryxで出力ファイルをZIPファイルにまとめて圧縮する場合は、外部ツールを使う
- 外部ツールは7zipなどを使う方法が有名ですが、Windows標準機能のPowerShellでCompressArchiveコマンドを使う方法がある
- フォルダ構成は以下のイメージ
- 別の記事にて、コマンド実行ツールを使ってワークフロー内部で実行する方法をご紹介しています
前提条件
バッチファイルの内容が、ワークフローを実行するたびに変わる場合は、今回の方法ではなくワークフロー内でコマンド実行ツールで実行したほうが手っ取り早いです(もちろん、ワークフロー内部でバッチファイルを作成し、そのバッチファイルを実行することも可能です)。
イベント機能の使い方
※前提として、バッチファイルを使う場合の記事を読んでおいていただけると幸いです。本記事では、ZIPするためのバッチファイルの作成については記載しておりません
Designerには、ワークフローの設定の「イベント」タブでコマンドを実行したりメールを送信したりする機能があります。
ここで追加を押すと以下のようにメール送信とコマンド実行が選べるので、今回は「コマンド実行」を選択しましょう。
コマンド実行の設定画面がでます。
以下のように設定します。
- 以下の場合にイベントを実行
- 「実行後」とします。「エラーなしで実行した後」にすると、「警告」などが発生している場合に実行されません。
- コマンド
- バッチファイルのファイル名を記載します
これにより以下のように登録されます。
実行すると以下のような形で結果ウィンドウに表示されます。
なお、ここでは、以下のようなバッチファイルを作成しています。作り方は別の記事を参照願います。
powershell compress-archive -Force zip output
del /Q zip\
この方法を使う利点
コマンド実行ツールを使い、ワークフロー内部でファイルを圧縮するという方法を取る際、どうしてもファイルを保存する前にZIP圧縮が先に実行されてしまうというケースが発生することがあります(複雑なワークフローになるとこれが発生するケースがあるようです)。
このような場合は、イベント機能を使うことで、ワークフロー内の処理が全て終わってからバッチファイルが実行されるため、確実にワークフローの内部処理が終わってから実行できる方法となります。
まとめ
- ワークフロー実行後に、イベント機能を使い、バッチファイルを実行する方法を紹介しました
サンプルワークフロー
SampleWF_イベント機能利用 fa-download
※Alteryx Designer バージョン2021.4.1.04899時点の情報です