Community Spring Cleaning week is here! Join your fellow Maveryx in digging through your old posts and marking comments on them as solved. Learn more here!
Free Trial

ディスカッション

答えを見つけ、質問し、Alteryx の専門知識を共有してください。
解決済み

数式エディタに排他的論理和(XOR)を実装する

gawa
15 - Aurora
15 - Aurora

数式エディタでは、論理積(AND)と論理和(OR)は使えますが、デフォルトでは排他的論理和(XOR)が使えません。XORが使えないと、IF分がごちゃっとして、ぱっと見でXORであることが分かりにくいです。

gawa_0-1675400733811.png

なので、👇のカスタム関数を使ってXORの機能を実装してみます

https://help.alteryx.com/ja/developer-help/build-custom-formula-functions

以下のようなxmlファイルを作って所定のフォルダに保存するだけです。ヘルプに従って書いていけば、それほど難しくありません。<Category>タグには、何かしらの既存のカテゴリー名をいれてあげないと、数式エディタで表示されないので、そこだけ注意です。

gawa_1-1675400922704.png

 

無事に認識されました

gawa_3-1675401175970.pnggawa_4-1675401192525.png

 

本当は、ANDやORのように演算子としてXORを定義したかったのですが、ヘルプにやり方が無かったため、関数で実装しました。

カスタム関数なので、他人とWFを共有する際はちょっと不便ですが・・・いつか、Designerのデフォルトで実装されるといいなと、密かに楽しみにしてます。

 

作ったxmlファイルを置いておきますので、ご自由にお使いください。

 

8件の返信8
AkimasaKajitani
17 - Castor
17 - Castor

@gawa さん

 

Ideaに投稿されてみてはいかがでしょうか?

https://community.alteryx.com/t5/Alteryx-Designer-Ideas/idb-p/product-ideas

 

gawa
15 - Aurora
15 - Aurora

@AkimasaKajitani さん、アイディア投稿できるんですね、知りませんでした。ちょっと投稿してみます!

Yoshiro_Fujimori
オーロラ

@gawa さん 

カスタム関数をXMLで作れるとは知りませんでした。情報共有ありがとうございます。

 

> カスタム関数なので、他人とWFを共有する際はちょっと不便ですが

 

たしかに、カスタム関数のヘルプを見ると

 「XMLファイルを C:\Program Files\Alteryx\bin\RuntimeData\FormulaAddIn に保存しなさい」

と書いてありますが

Package a Tool を見ると このFormulaAddInのパスはインストール対象になっていないので

開発したワークフローと一緒にユーザーに展開するのは難しそうです。

なにか他の方法があるのでしょうかね。。

AkimasaKajitani
17 - Castor
17 - Castor

@Yoshiro_Fujimori さん @gawa さん

 

カスタム関数の配布は難しそうですね・・・

CrewMacroみたいにyxwzでインストーラ(ファイルをコピーするような)を作るくらいしか思いつきません。

 

ちなみに、Alteryx Formula Add Ins と呼ばれるカスタム関数パッケージが配布されていますが、やはり手動でコピーなどしてインストールせよ、となっています。

https://jdunkerley.co.uk/2016/05/15/alteryx-formula-add-ins-v1-1/

 

 

gawa
15 - Aurora
15 - Aurora

@Yoshiro_Fujimori さん、@AkimasaKajitaniさん 

Alteryx Serverだと、Serverのホスト上の似たようなフォルダにカスタムXMLを置くと、使えるのかなと想像したりしますが、稼働中のサーバに不具合起きたらと思うと怖くて手が出せないです。。。

共有の煩雑さを考えると、この手のよく使う処理はマクロ化してyxzpとかで共有しましょう、が第一選択になるのでしょうね。

 

返信いただいてありがとうございました!

AkimasaKajitani
17 - Castor
17 - Castor

@gawa さん

 

一応SDKという形で正式サポートしているはずなので、サーバーでも動くと思います。

 

Yoshiro_Fujimori
オーロラ

@AkimasaKajitaniさん @gawaさん

 

ヘルプページの構造から、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を作ってフォルダに置いておく手軽さと比べるとハードルが高いですね。

AkimasaKajitani
17 - Castor
17 - Castor

@Yoshiro_Fujimori さん

 

さすがにAMP ONオンリーだとしんどいですね・・・。だいぶんAMPも良くなってきましたが・・・。

いずれにしても、個別にインストールしないといけない感じがするので、手軽にワークフローといっしょに配布、というにはハードルが高そうです・・・。