Alteryxでにマクロの使い方、特に受け渡しの際の注意について
Alteryxで作ったマクロを含むワークフローを他の人に渡した際に、マクロが行方不明になったことはないでしょうか?
本記事では、マクロを使用する際の注意事項について解説していきたいと思います。
Alteryxのマクロとは?
Alteryxのマクロ機能は、一度作った処理を再利用したり、繰り返し同じ処理を行ったり、どうしてもマクロじゃないとできない処理があったり、と様々な用途に便利に使うことができます。マクロを活用することで高度なワークフローを作成したり、ワークフローを作成する効率を上げることができます。
また、Alteryxで利用できるツール(アイコン)ですが、実はAlteryxマクロで作成されたものが混じっています。
たとえば、データクレンジング。
右クリックメニューからマクロを開くことができます。
マクロの中身が見れます。比較的シンプルなマクロでしょうか。
自作マクロを使うためには
このようにマクロは便利なので自作したくなってくると思いますが、マクロ用のフォルダを作り指定しておくと便利です。指定しておくことで、標準のツールと同じように上部ツールバーからドラッグ&ドロップできるようになります。
マクロ用フォルダの指定の方法
ユーザー設定にてマクロ用のフォルダを指定する方法です。
1.ユーザー設定を開く
メニューバーの[オプション]から[ユーザー設定]-[ユーザー設定の編集]をクリックします。
2.マクロタブからフォルダを設定
ユーザー設定ウィンドウにて、「マクロ」タブを選択します。右の方にある+アイコンでフォルダを登録できます。
3.マクロの検索パスの追加
「マクロの検索パスを追加する」ウィンドウにて、「カテゴリ名」は登録するタブの名称、「検索パス」は、マクロを格納するためのフォルダとなります。
実は右クリックメニューからマクロを追加することもできます
マクロを利用する際に、ツールバーに登録されたマクロをドラッグ&ドロップすることでワークフロー上で利用することができますが、実はキャンバス上で右クリックメニューからマクロファイル(yxmcファイル)を直接指定してワークフローに挿入する方法もあります。
※この方法はパターンによってはワークフローの配布先でマクロを認識できなくなることがあるためご注意ください(後ほど解説)
マクロの配布について
このように、マクロを登録して使ったり、直接ファイル指定して使ったり、といくつか方法があることがわかりました。
今度は、マクロを使って作成したワークフローを配布するとします。配布の方法としては2つあります。
- パッケージドワークフローで配布
- マクロとワークフローをまとめてZip形式などで圧縮し配布
1のパッケージドワークフローについては別記事を参照ください。
2の方法ですが、通常ワークフローと同じフォルダにあるマクロは自動的にAlteryxが認識し、エラーなくワークフローを実行することができます。そのため2のやり方がよく行われます(マクロ登録フォルダを設定し、ツールバーからドラッグ&ドロップしている場合)。
しかしながら、右クリックメニューからマクロを挿入しているワークフローの場合、マクロを認識できなくなるケースがあります。
この理由として、右クリックメニューでマクロを挿入した場合、ワークフローにはマクロへの相対パスが書き込まれます。
例えば、「C:\AlteryxWF\WF.yxmd」というワークフローがあり、右クリックメニューから「C:\macro\test.yxmc」にあるマクロを挿入すると、ワークフローには「..\macro\test.yxmc」と書き込まれます。
この場合、「WF.yxmd」と「test.yxmc」を一緒に配布し、同じフォルダに保存し実行しようとしても、マクロが行方不明になってしまいます。また、受け取った側が「test.yxmc」をマクロ登録フォルダに移動してもマクロを認識しません。これは相対パスで記録されているため、マクロ登録フォルダの一つ上の階層にあるmacroというフォルダの中の「test.yxmc」を見に行こうとしてしまうためです。この対処法としては、パスを作成時と同じ構成にする必要があります。
右クリックメニューからマクロを挿入する場合は、ワークフローと同じフォルダにマクロを保存するのが一番良いです。もしくは、パスの構成が崩れないように、ワークフローと同じフォルダの中にサブフォルダを作り、そこにマクロを保存することでしょうか(ワークフローが保存されているフォルダ内のサブフォルダであれば、まとめて圧縮できるため配布しやすいです)。
もちろん、マクロ登録フォルダで運用すれば、このようなトラブルは起こりにくいです(マクロ登録フォルダ内にさらにサブフォルダを作成し、その中に保存すると似たようなトラブルが発生しますが)。
マクロフォルダを登録し、配布用のフォルダでマクロを編集した際の注意点
次は、配布したワークフローにバグがあったとします。配布側の人がマクロとワークフローを同じフォルダにまとめており、そこで右クリックからマクロを開いてマクロの修正作業を行ったとします。
※前提条件として、マクロ登録フォルダにもマクロを置いている状況を想定しています
この場合、ワークフローと同じフォルダにあるファイルが書き換えられます。マクロ登録フォルダにあるファイルは書き換わりません。
例えば、そのマクロを別のワークフローでも使っており、マクロ登録フォルダのマクロが書き換わったと安心していると思わぬミスに繋がってしまいます。
なお、ツールバーからマクロを開いた時は、ちゃんとマクロ登録フォルダのマクロが開かれます。
つまり、これはワークフローと同じフォルダにあるマクロが優先的に実行されている、ということですので、マクロ登録フォルダを利用されている方はご注意ください。自分がどのマクロを編集しているのか常に意識する必要があります。
まとめ
- 配布前提のワークフロー作成の場合、マクロの保存場所には注意が必要
- マクロの場所は相対パスで記載される
- マクロ登録フォルダを利用するのが運用しやすい
- 特に右クリックメニューからマクロを挿入する場合は、ワークフローと同じフォルダかサブフォルダにマクロを保存しておくと運用しやすい
※Alteryx Designer 2019.4.8.22007時点の情報です