Alteryx SDKの設定ファイル

こんにちは、小澤です。

今回は、Alteryx SDKのうち、作成したプログラムをツールとして認識させるための設定ファイルについて解説させていただきます。

設定ファイルの内容

設定ファイルには以下の項目を記述します。

  • プログラムのファイルに関する設定
  • インターフェースに関する設定
  • ツールの情報に関する設定

これらをXMLファイルとして記述します。 XMLファイルの大枠は以下のようになります。

<?xml version="1.0"?>
<AlteryxJavaScriptPlugin>
  <EngineSettings/><!-- プログラムのファイルに関する設定を記述するタグ -->
  <GuiSettings>
    <!-- インターフェースに関する設定をこの中に記述していく -->
  </GuiSettings>
  <Properties>
    <MetaInfo>
      <!--ツールの情報に関する設定をこの中に記述していく -->
    </MetaInfo>
  </Properties>
</AlteryxJavaScriptPlugin>

ルート要素はAlteryxJavaScriptPluginとなります。 この部分はマクロだろうが、Pythonだろうが必ずAlteryx"JavaScript"Pluginタグです。

XMLのファイル名にも決まりがあります。 ファイル名は「<ツール名>Config.xml」とする必要があります。 例えばツール名が「Drink Beer」の場合、「Drink BeerConfig.xml」となります。

設定方法を見ていく

では、各パーツの設定方法を順に見ていきましょう。

プログラムのファイルに関する設定

プログラムのファイルに関する設定は、EngineSettingsタグの属性として記述していきます。

設定する属性は以下の3つになります。

  • EngineDll
  • EngineDllEntryPoint
  • SDKVersion

EngineDll

EngineDllに記述する内容は、ツールをどの言語で作るかによって異なります。 現状、この設定ファイルを記述してツールを作るための言語としては、以下の4つがあります。

  • yxiファイルのマクロ
  • C++
  • HTML+JavaScript
  • Python

それぞれの言語とその際に指定する値は以下のようになります。

言語 設定値
マクロ Macro
C++ DLLのファイル名
HTML+JavaScript HTML
Python Python

EngineDllEnteryPoint

こちらは実際に利用するHTMLやPythonファイル、マクロのファイル名を指定します。 これらのファイルはツールとして利用する際のパスはこの設定ファイルが含まれるフォルダからの相対パスで記述します。

SDKVersion

こちらの属性は必須ではありません。 指定する場合は、固定値で"10.1"としておけばいいでしょう。

インターフェースに関する設定

インターフェースに関する設定はインターフェースそのものの設定と、入出力コネクションの設定の2つに分かれます。

インターフェースそのものの設定はGuiSettingsの属性として記述します。 設定項目は以下のようになります。

属性 設定する値 必須
Html インターフェースの定義をしたHMLTファイル yes
Icon ツールのアイコン no
Help ツールのヘルプファイルのパス no

コネクションの設定は、GuiSettingsの子要素としてInputConnectionsとOutputConnectionsタグを配置します。 さらにそれらの要素の子要素としてConnectionタグを設置し属性値として設定項目を記載します。

Connectionタグは、必要な数だけ記載します。 例えば、入力のコネクションが2つあるようなツールですと、InputConnections配下のConnectionタグは2つになります。 また、出力がないようなツールであればOutputConnections配下には1つもConnectionタグを記述しません。

Connectionタグの属性には以下の値を設定します。

属性 設定する値 必須
Name コネクション名 yes
AllowMultiple True/False 複数の入力を受け付ける(Unionツールみたいなの) no
Optional True/False 任意入力にする no
Type 固定値で"Connections" no
Label ツールのコネクション部分に表示されるラベル no

この辺りはMacro Input/Outputツールの該当する項目と似たような感じですね。

ツールの情報に関する設定

PropertiesのMataInfoの子要素としてツールの情報に関する設定を行います。 この項目は通常マクロを作る際のMata Infoに相当する項目となります。

要素 使い方
NameIsFileName 属性値valueにTrue/Falseを設定
Name 要素内に値として記述
Description 要素内に値として記述
DescriptionLink 属性値としてactual(実際のURL)とdisplay(表示される値)を記述
RootToolName 要素内に値として記述
ToolVersion 要素内に値として記述
ToolInDB 属性値valueにTrue/Falseを設定
CategoryName 要素内に値として記述
SearchTags 要素内に値として「,」区切りで記述
Author 要素内に値として記述
Company 要素内に値として記述
Copyright 要素内に値として記述

各要素は、Meta Info内の項目と対応しているため、説明については割愛します。 Alteryxのyxiファイルを作るなどもご参照ください。

また、2018/02/09現在、設定項目としてはありますがSDKはIn-DBのツールのは対応していないようです。 そのため、yxiファイルでマクロを提供する際のみの利用になります。

全体像

さて、ではこれらの要素を含めた設定ファイルの例を見て見ましょう。

<?xml version="1.0"?>
<AlteryxJavaScriptPlugin>
  <EngineSettings EngineDllEntryPoint="sdk_testEngine.html" EngineDll="HTML" SDKVersion="10.1"/>
  <Properties>
    <MetaInfo>
      <NameIsFileName value="True"/>
      <Name>sdk_test</Name>
      <Description>test tool</Description>
      <RootToolName>sdk_test</RootToolName>
      <ToolVersion>1</ToolVersion>
      <ToolInDB value="false"/>
      <CategoryName>Preparation</CategoryName>
      <SearchTags/>
      <Author>John Smith</Author>
      <Company>Classmethod, Inc.</Company>
      <Copyright>2018</Copyright>
      <DescriptionLink actual="" display=""/>
    </MetaInfo>
  </Properties>
  <GuiSettings Help="" Html="sdk_testGui.html" Icon="sdk_testIcon.png" SDKVersion="10.1">
    <InputConnections>
      <Connection Name="Input X" AllowMultiple="False" Optional="False" Type="Connection" Label="X"/>
      <Connection Name="Input Y" AllowMultiple="False" Optional="True" Type="Connection" Label="Y"/>
    </InputConnections>
    <OutputConnections>
      <Connection Name="Output W" AllowMultiple="False" Optional="False" Type="Connection"/>
    </OutputConnections>
  </GuiSettings>
</AlteryxJavaScriptPlugin>

sdk_testEngine.htmlが処理内容を記載したファイル、sdk_testGui.htmlがインターフェースを定義したファイルとなります(現段階では設定ファイルしか紹介していないので中身はありません)。

この設定では、入力のコネクションが2つでそのうち1つが任意(接続しなくてもいい)となっており、出力は1つです。

おわりに

今回は、Alteryx SDKの作成方法のうち設定ファイルの記述方法について解説しました。

これでツールとして利用するための準備はできたので次からはいよいよプログラムやインターフェースの書き方を解説してきます。

Alteryxの導入なら、クラスメソッドにおまかせください

日本初のAlteryxビジネスパートナーであるクラスメソッドが、Alteryxの導入から活用方法までサポートします。14日間の無料トライアルも実施中ですので、お気軽にご相談ください。

alteryx_960x400