数式エディタでは、論理積(AND)と論理和(OR)は使えますが、デフォルトでは排他的論理和(XOR)が使えません。XORが使えないと、IF分がごちゃっとして、ぱっと見でXORであることが分かりにくいです。
なので、👇のカスタム関数を使ってXORの機能を実装してみます
https://help.alteryx.com/ja/developer-help/build-custom-formula-functions
以下のようなxmlファイルを作って所定のフォルダに保存するだけです。ヘルプに従って書いていけば、それほど難しくありません。<Category>タグには、何かしらの既存のカテゴリー名をいれてあげないと、数式エディタで表示されないので、そこだけ注意です。
無事に認識されました
本当は、ANDやORのように演算子としてXORを定義したかったのですが、ヘルプにやり方が無かったため、関数で実装しました。
カスタム関数なので、他人とWFを共有する際はちょっと不便ですが・・・いつか、Designerのデフォルトで実装されるといいなと、密かに楽しみにしてます。
作ったxmlファイルを置いておきますので、ご自由にお使いください。
解決済! 解決策の投稿を見る。
@gawa さん
Ideaに投稿されてみてはいかがでしょうか?
https://community.alteryx.com/t5/Alteryx-Designer-Ideas/idb-p/product-ideas
@AkimasaKajitani さん、アイディア投稿できるんですね、知りませんでした。ちょっと投稿してみます!
@gawa さん
カスタム関数をXMLで作れるとは知りませんでした。情報共有ありがとうございます。
> カスタム関数なので、他人とWFを共有する際はちょっと不便ですが
たしかに、カスタム関数のヘルプを見ると
「XMLファイルを C:\Program Files\Alteryx\bin\RuntimeData\FormulaAddIn に保存しなさい」
と書いてありますが
Package a Tool を見ると このFormulaAddInのパスはインストール対象になっていないので
開発したワークフローと一緒にユーザーに展開するのは難しそうです。
なにか他の方法があるのでしょうかね。。
@Yoshiro_Fujimori さん @gawa さん
カスタム関数の配布は難しそうですね・・・
CrewMacroみたいにyxwzでインストーラ(ファイルをコピーするような)を作るくらいしか思いつきません。
ちなみに、Alteryx Formula Add Ins と呼ばれるカスタム関数パッケージが配布されていますが、やはり手動でコピーなどしてインストールせよ、となっています。
https://jdunkerley.co.uk/2016/05/15/alteryx-formula-add-ins-v1-1/
@Yoshiro_Fujimori さん、@AkimasaKajitaniさん
Alteryx Serverだと、Serverのホスト上の似たようなフォルダにカスタムXMLを置くと、使えるのかなと想像したりしますが、稼働中のサーバに不具合起きたらと思うと怖くて手が出せないです。。。
共有の煩雑さを考えると、この手のよく使う処理はマクロ化してyxzpとかで共有しましょう、が第一選択になるのでしょうね。
返信いただいてありがとうございました!
ヘルプページの構造から、Custom Formulaは"Legacy SDKs"に含まれるようで、拡張性には限界があるよ、と書いてありますね。
These Legacy SDKs use outdated technology that limits your extension opportunities.
We've built a new Platform SDK using Python and the latest open-source technology to deliver a vastly improved development experience.
Go to Platform SDK to get started!
ではそのLegacyでない"Platform SDK"はというと
Configuration WindowのUIはReact ( AYX UI SDK )、内部LogicはPython ( AYX Python SDK.) で開発し、
開発したパッケージは専用のCommand Line Interface (AYX Plugin CLI, Pythonベース) で管理しなさいね
と書いてあります。
ちなみにこれらを使うためには AMP Engine を有効にする必要があるようです。
自前のツールを開発・保守するには、結構 本気で取り組む必要がありそうです。
まあそうかもしれませんが、XMLを作ってフォルダに置いておく手軽さと比べるとハードルが高いですね。
さすがにAMP ONオンリーだとしんどいですね・・・。だいぶんAMPも良くなってきましたが・・・。
いずれにしても、個別にインストールしないといけない感じがするので、手軽にワークフローといっしょに配布、というにはハードルが高そうです・・・。