Spotfire® ユーザー ガイド

データ関数をデバッグする

Spotfire® Enterprise Runtime for R (別名 TERR™) または Python データ関数を使用してデータ関数を記述する場合は、Spotfire の組み込みデバッグ機能を使用して出力デバッグ ログを調べて、Spotfire 環境内から直接データ関数の問題を探して修正できます。

このタスクについて

データ関数のデバッグを有効にしたり、データ関数を実行したり、デバッグ出力を確認したりできます。
ヒント: 単純なデータ関数にエラーを導入し、出力を再確認することで、Spotfire がデータ関数の問題をどのように報告するかを学ぶことができます。下記の例 2 を参照してください。

始める前に

データ関数は、インストール済みクライアントを使用して作成する必要があります。下記の手順で使用する例は、トピック「データ関数をオーサリングする」の例 1 の手順に従ってデータ関数「Temperature converter」を作成し、ライブラリーに保存したことを前提としていますが、この手順を確認すれば、データ関数を含むあらゆる分析で同様の手順を使用することができます。

手順

  1. インストール済み Spotfire クライアントで、[ツール > オプション] を選択します。
  2. [データ関数] ページに移動します。
  3. [データ関数のデバッグを有効化] を選択します。
  4. [OK] をクリックして、変更を受け入れます。

タスクの結果

実行するすべてのデータ関数に対して、Spotfire はデバッグの print 出力および発生したすべてのエラーを取得して表示します。下記の例では、デバッグが有効になっていることを前提としています。

例 1

この例では、ライブラリーからのデータ関数の実行、デバッグ出力の表示、そして通知の解除を行う手順について説明します。手順を実行する前に、(少なくとも 1 つの数値カラムを含む) データをいくつか開いておく必要があります。

手順

  1. オーサリング バーで、[ファイルとデータ] をクリックします。
  2. [ファイルとデータ] フライアウトで、Spotfire ライブラリーを参照 (または検索を使用) し、データ関数 Temperature converter を見つけて開きます。
  3. 入力カラムを指定して [OK] をクリックし、次の手順で [OK] をクリックして、出力カラムを計算カラムとして追加します。
    Spotfire アプリケーションの右上隅に、通知 (ポップアップまたは単なるアイコン上の情報通知) が表示されます。
  4. [通知] をクリックします。


  5. デバッグの詳細を確認するには、通知メッセージをクリックします。
    メッセージには、ログに記録されたすべての出力が表示されます。
  6. 必要に応じて、デバッグ出力をクリップボードにコピーし、テキスト エディタに貼り付けることができます。
  7. 出力を確認したら、詳細ダイアログを閉じ、通知パネルで [消去] をクリックしてメッセージを消去します。

例 2

次の例に、データ関数にエラーを導入し、デバッグ通知に結果を表示する方法を示します。例 1 で使用した分析で作業を続けます。

手順

  1. オーサリング バーで、[データ キャンバス] をクリックします。
  2. データ キャンバスのサイドバーにあるデータ関数のリストから、Temperature converter を選択します。
  3. データ関数 (「Temperature converter」) ノードで、[スクリプトの編集] をクリックします。
  4. 4 行目のコード行を z*(9/5) + 32 に変更します。
    つまり、xz に変更します。この変更により、スクリプトにエラーが導入されます。
  5. エラーを含むスクリプトを保存して閉じます。
  6. データ キャンバスの上部にある [更新] をクリックします。
    [通知] アイコンがエラー アイコンに変わり、通知には新たに 2 つのメッセージ (エラーと情報メッセージ) が表示されます。
  7. エラー通知をクリックして詳細を表示します。
    エラー メッセージが、エラーが発生した場所を示していることに注意してください:
    Spotfire Enterprise Runtime for R returned an error
    
    The data function 'Temperature converter' could not be executed.
    
    Error in convertTemperature(x) : object 'z' not found
        eval(script, envir = .GlobalEnv)
        eval(script, envir = .GlobalEnv)
        withCallingHandlers({
        convertTemperature(x)
    また、デバッグ情報通知をクリックすると、デバッグ出力を確認できます。例 1 で示されたデバッグ出力と比較すると、このデバッグ出力はエラーなしで途切れた状態になっていますので注意してください。
  8. すべてのダイアログを閉じ、[通知] パネルで [すべてを消去] をクリックして、メッセージをすべて消去します。分析結果を保存する場合は、分析を閉じる前に必ず、途切れているスクリプトを修正してください。