WeeklyAlteryxTips#15 アクションツールのアクションタイプについて

Alteryx

今回はインターフェースツールのアクションツールのTipsです。

アクションツールでは、アクションタイプをいくつからか選択することが可能です。画面としては以下のようになっています。

このオプションはアクションツールから接続する先のツールによって、異なったオプションが表示されますが、一般的には以下の3つのアクションはすべてのケースで表示され(るはず)ます。

  • フォーミュラで値を更新
  • フォーミュラで生XMLを更新
  • 値を更新

「フォーミュラで生XMLを更新」は複雑なケースでのみ利用を推奨します(つまり、他のオプションでできない時の最終手段です)。今回は、残りの2つのオプションのベストプラクティスについて見てみたいと思います。

それぞれのオプションの説明

単純なワークフローを例に見て行きましょう。以下のように、消費税率を可変にできる分析アプリを考えます。

ここで、フォーミュラツールの設定は以下のとおりです。

この数式の1.0の部分をアクションツールで書き換えます。

ここまでの設定はアクションタイプに関わらず同じです。

値を更新

このオプションは、上位のインターフェースツールから来たデータで、指定した値を上書きするオプションです。

そのため、今回のようなケースであれば、「1.0」の部分を書き換えるように設定を行います。

つまり、「特定の文字列を置換」にチェックを入れ、テキストボックスには、「1.0」と記載します。

これにより、実行時には、1.0の部分が書き換えられます。

例えば、消費税率10%であれば、1.1に書き換われば良いので、以下のように実行時に入力します。

注意点

アクションツールの書き換え先のフォーミュラツールですが、デバッグなどで式自体を以下のように書き換えたとします。

このとき、アクションツールは「1.0」という文字列を書き換える設定から変化しないため、フォーミュラツールの変更に合わせてアクションツール側も「1.1」に変更する必要があります。

ここがちょっとしたポイントで、アクションツールで「特定の文字列を置換」オプションを利用し、書き換える文字列を指定している場合は、フォーミュラツール側が変わったらその都度対応したものに書き換える必要があります。アクションツールの設定を変更しない場合は、値が変わらず意図しない結果となるのでご注意ください。

このようなケースでは、「特定の文字列を置換」オプションを利用せず「フォーミュラで値を更新」オプションを利用する方がミスは起こりにくいです。

なお、「特定の文字列を置換」オプションを使わず、更新する値を選択するだけで事足りるのであればこのアクションタイプを使うことは問題ありません。

フォーミュラで値を更新

次に、「フォーミュラで値を更新」オプションを見てみましょう。このアクションタイプでは、指定した値を書き換える際、数式で作った文字列でまるっと指定した項目を書き換えます。

このアクションタイプを選択すると、以下のように画面が変わります。

つまり、アクションタイプが「値を更新」にしている際は「特定の文字列を置換」オプションだったところが、「フォーミュラ」を記入する場所になります。

それでは設定してみましょう。フォーミュラの右端の三点ボタンをクリックすると、以下のように数式エディタが立ち上がります。

この式のところに書き変えたい文字列を作成していきます。

まず、数式エディタで、フォーミュラに設定した式をそのまま書いてみましょう。

見事にエラーになっています。これは数式そのものではあるのですが、ここで作成するのは書き換えるための文字列です。文字列なので、数式自体をクオテーションで囲ってみます。

これであればエラーは出ません。

しかしながら、このままだと常に本体価格に1を掛け算するだけの数式になってしまいます。ここで出てくるのが、上の「変数」タブの「#1」と書かれている部分です。

これは、アクションツールに入力されてくるデータのことを言っています。今回であれば、数値増減ツールが接続されているため、その値が#1として記載されています。ですので、今書き換えたい部分は「1.0」の部分なので、これを[#1]に置き換えましょう。

'[本体価格]*'+[#1]

このオプションであれば、まるっと項目の内容を作った数式で書き換えるため、書き換え先のフォーミュラがどのような設定になっていても強制的にここで作成した式で書き換えることができます。

まとめ

  • アクションツールで値を書き換える際のベストプラクティスをご紹介しました。
  • アクションツールで、値を書き換える際は、まるっと1項目を書き換える場合は「値を更新」が楽です。
  • 一方、項目内の特定の文字列だけ書き換えたい際は、「フォーミュラで値を更新」が後々トラブルがなくて良いです。

サンプルワークフローダウンロード

次回

次回は、リストボックスのTipsになります。

コメント

タイトルとURLをコピーしました