解析した結果をデータベースに残すことはできません。複数のツールを行ったり来たりする手間が非常に面倒くさいです。そんな時にはやはりPython!一つのインターフェースで様々な機能を実装できるのはすごく便利です。Spotfireからデータベースに書き込みをする。Serverに書き込んでみました。使うデータはBaseBallです。Serverのテーブルに書き込みましょう。実行イメージこのようにサラリーが高いのにホームランをあまり打っていなさそうな人を選択してDBに記録します。ServerにInsertして、処理内容をメッセージボックスで通知します。実行後のテーブルデータちゃんと4人分入っています。書き込み先のテーブルはBaseballRecordという名前で一カラムしかないのですが一応ソースはこちらです。[PRIMARY]GOPythonコードデータベースの接続情報は環境に合わせて変更してください。")挿入処理後にデータテーブルをリフレッシュスクリプトを少し改良しました。処理後にリロードをするようにしました。これでボタンを押した後に追加データを確認できます。スクリプトとしては最初と最後に数行追加したのみです。何回かにわたり記事を書いてきましたが、今回で一区切りです。今回は起動時にPythonを起動する方法をご紹介します。基準値の変更時にスクリプトを実行SpotfireのPythonは「ボタンを押す」「プロパティ変更時」などのタイミングで起動しますが、ファイルを開いたときに起動するオプションはありません。いくつかの機能を組み合わせることで実現可能です。前回プロパティからPythonを起動させました。起動時にプロパティを変更する事ができれば良いですね。起動時に実行可能なスクリプトとしてはTERRがあります。TERRからプロパティを変更する事ができるので、連携でPythonを実行します。<全体のイメージ図>TERRによるプロパティの更新まずはプロパティを設定します。curTimeというDatatime型のプロパティを作成し、メール送信スクリプトを設定しました。このプロパティが変更される度にPythonスクリプトが実行されます。TERRスクリプトは起動時に実行されるので、データロード時にチェック操作を行うことが可能です。データ関数の登録TERRスクリプトはデータ関数として登録します。Sys.time()sysdateを受け取って、OutCurTimeを返すスクリプトです。出力パラメータでOutCurTimeを設定します。右上のアイコンから実行します。実行パラメータTERRの引数と戻り値を設定します。入力のsysdateは引数として「式」でDateTimeNow()を指定します。これでシステム日付けを渡しています。出力はOutCurTimeを文章のプロパティでcurTimeとして受け取るよう設定します。「関数を自動的に更新」チェックボックスもONにしておいてくださいね。これでDXPファイルを開く時にスクリプトが実行されます。kiura前回の記事では基準値を設定して測定がそれをオーバーした際にPythonからメールを送信する例を紹介しました。条件判別のために都度ボタンを押す必要があり、いまいち利便性に欠けます。Spotfireではプロパティの変更をトリガーとしてPythonスクリプトを起動する事ができるのでこちらの設定をしてみましょう。この閾値を変更した際にPythonを実行したい。「編集」から「ドキュメントのプロパティ」を選択し「プロパティ」タブを開きます。ファイル内のプロパティ一覧が表示されています。3列目に「スクリプト」とあり、Pythonが設定されている場合はここに表示されます。今回はPTPara1MaxLimitというプロパティが変更された時にPythonを起動します。「スクリプト」ボタンを押して起動時の条件を設定します。この設定はボタンから実行する場合と同じです。これで閾値を変更した際にPythonが実行されるようになります。データ分析の結果、異常条件や閾値を判別できるようになります。同様の条件が発生した場合にアラートとしてメールで通知できると便利です。Pythonを使用したサンプルを作成してみました。外部ライブラリの取り込みPythonのsmtplibライブラリを使ってメール送信します。残念なことにSpotfireのironPythonには含まれていませんのでpythonを別途インストールしそちらのライブラリを読み込みます。手順は普通のPythonと同じです。pythonのバージョンですが、SpotfireのPythonと合わせるために2.5を使用しました。今回のサンプルではsmtpサーバーとしてgmailを使用しています。googleのアカウント情報からログインとセキュリティの「安全性の低いアプリの許可」を有効化する必要があります。ソースはこちら※ログイン情報はご自分の物に書き換えてください。theValueの値をプロパティなり計算式で設定してください。実際に使用する場合はSpotfireからデータを渡したり、Pythonの結果をSpotfireに戻したりする処理が必要になってくることが多いと思います。結果をプロパティで受け取りましょう。やりたい事まずこのようなグラフがあるとします。途中に大きな外れ値が発生しているようです。このようなイレギュラーなデータが発生した場合に何かの処理を追加します。プロパティの作成プロパティの作成は必須ではないですが、インタラクティブな操作と非常に相性がいいので使用頻度が多いです。ドキュメントプロパティを新規に作成して上限値を入力し、それを元に閾値のラインを引くようにしました。プロパティ名はULで5.2だとこの辺で、6.0だとここまでです。プロパティの作成は、テキストエリアの編集画面で「プロパティコントロールの挿入」で「入力フィールド」を選択します。新規作成で今回はULという名前のReal型プロパティを作成します。初期値は5にしておきます。これでテキストエリアで入力する事ができるようになります。カスタム演算式を選択して${UL}のプロパティを指定します。Pythonへのインプット閾値を超えている場合をPythonで判別して、テキストエリアの表示を変更しましょう。前回作成したPythonを流用します。ボタンとして埋め込まれているPythonをダブルクリックして編集します。パラメータ設定プロパティの渡し方まずはプロパティ変数として上限の閾値を設定します。名前は「upperLimit」値は「プロパティ」でULを指定します。これでSpotfireのULプロパティをPython側ではupperLimitとして扱えます。次は平均値を集計して渡します。名前はmaxValで、式は「式の編集」から入力する事ができます。こちらはカスタム演算式で設定します。メッセージボックスで表示する内容を変更してみました。パラメータとして渡されているulvalとmaxValを使用しています。Pythonへの入力はパラメータを使用しますが、出力はこちらではできません。今回は新規プロパティを作成し、それをPythonで書き換えましょう。プロパティを変更する事ができれば、計算カラムやカスタム演算式の内容や、テキストエリアの中身など様々な変更が可能になります。結果プロパティの作成テキストエリアの編集から「プロパティの作成」でラベルを選択します。pythonOutputという名前のString型のプロパティを作成しました。初期値は”デフォルト”にしてみました。作成すると”デフォルト”というラベルがテキストエリアに表示されています。‘変更したい内容’というAPIを使用します。今回は分岐で上限値を超えている場合は’閾値オーバー’を表示します。outputStr結果です。今回は閾値に引っかかったので、閾値オーバーになっています。閾値をオーバーしない場合の実行結果です。次回は閾値を超えた時にメール送信するようにしてみます。kiuraPython連携初歩の初歩Python連携に関してPyrhonとは汎用のインタプリタ言語で、Spotfireだけで無く、多くのプラットフォームで動作します。日本ではそれほどメジャーではないかもしれませんが、多くのライブラリを持っており、データ分析をお手軽に実装するのにはかなり便利な言語です。Spotfireに搭載されているPythonはironPythonというWindowsと親和性の高いディストリビューションになっております。Pythonを使用することにより、ライブラリを使用した解析や、外部ツールとの連携など、Spotfireの分析をより有効活用できます。Pythonの実装それではテキストエリアのボタンにPythonを実装して見ましょう。Python”というメッセージボックスを表示するのが今回のゴールです。新規のテキストエリアを作成します。右クリックし、テキストエリアを編集。Pythonスクリプトは「アクションコントロール」というカテゴリになりますので、アクションコントロールの挿入アイコンをクリックします。表示テキストにはボタンに表示したい文言を記載します。左の選択項目から「スクリプト」を選択し「新規」をクリックしてください。他のページへ移動するボタンなども作成する事ができます。「アクション」を選択した場合はページ移動や、ブックマークの実行を指定できます。スクリプトを記載していきます。「スクリプト名」に”helloPython”「スクリプト」には下記のスクリプトを記載してください。Python")最初の3行はWindowsのメッセージボックスを表示するのに必要な設定です。逆に言うとこれらの設定を色々することでWindowsの機能や他のライブラリの機能が簡単に実装できるようになっています。ちなみに超見ずらいですが「出力」の右の隠れたボタンをクリックするとこの場で動作させることが可能です。日本語に翻訳した際にレイアウト崩れたのでしょうか?これでスクリプトは完成したので、保存して編集画面を閉じます。Python”とメッセージウインドウが表示されました。今回はさわりですが、次回からPythonとの入出力や、他のライブラリを使用した例を紹介していきたいと思います。その他Spotfireで登録したPythonはDXPファイル内に保存されています。「文書のプロパティ」から「スクリプト」で一覧を確認できますので、こちらから編集することも可能です。テキストエリア以外にもPythonを設定する事が可能です。グラフィカルテーブルの軸や、文書のプロパティに設定する事ができますので、プロパティの値が変更されたときに自動的にスクリプトを実行することもできます。Reserved.ツールバーへスキップログイン。