Query Scriptingを使用する

|
PentahoレポートデザイナーではQuery Scriptを使用し、Static Queryの結果であるデータオブジェクトを加工することができます。使用可能なQuery言語はGroovy、ECMA Scriptの2つです。

ここではGroovyを使用し、Query Scriptingの使用方法をご説明します。

1.新規レポートの場合は、Data>Add Datasource>JDBCより、すでにJDBCデータソースをレポートに追加している場合は、データタブから「JDBC:接続名」をダブルクリックし、JDBCデータソースダイアログを開きます。

2.Query ScriptingタブをクリックしScripting LanguageにGroovyを選択します。

3.「Template」ボタンを押下すると、呼び出されるメソッドのテンプレートが入力されます。
入力が完了すれば以下のよになります。
Query Scriptingの使用方法.PNG

4.必要なタイミングで呼び出されるメソッド内に、必要な処理を追記します。

def initQuery()
{
  //すべての初期化ロジックをここに配置します。これは準備するのに最適な空間です
  //複雑なルックアップテーブルまたはこのスクリプトのグローバル変数を埋める。
  //このメソッドは、初期化中に一度呼び出されます。この機能は、
  //関連するクエリが使用されている場合にのみ呼び出されます。
}

def shutdownQuery()
{
  //すべてのシャットダウンロジックをここに配置します。永続的なリソースを使用する場合
  //ファイルや接続のように、ここで閉じてください。
  //このメソッドは、データソースのシャットダウン中に一度呼び出されます。それ
  //関連するクエリが発生した場合にのみ呼び出されます。
}


def computeQuery(query、queryName、dataRow)
{
  //データソースのクエリに使用されるクエリ文字列を計算します。
  //クエリには静的に定義されたクエリ(MQL-text)が含まれています。
  // queryNameは、設計時に与えられたこのクエリの論理名です
  // dataRowには、クエリを実行するために使用されるすべてのパラメータが含まれています

  return query;
}

def computeQueryFields(query、queryName)
{
  //キャッシュに影響を与える可能性のある追加フィールドを返します。書き換えた場合
  // 'computeQuery'関数で動的にクエリを実行し、すべてのフィールドを含める
  //クエリやクエリの計算に含めることができます。
  //
  //キャッシュを必要としない場合は、<null>を返します。
  return new String[0];
}

def postProcessResult(query、queryName、dataRow、tableModel)
{
  //オプションでクエリ結果を後処理します。通常、あなたはしません
  //与えられたテーブルモデルを直接操作しますが、コピーすることもできます
  //データを新しいモデルに入れたり、カスタムテーブルモデルでラップすることができます
  //独自の作成の実装。

  //プロセス内で元の表モデルを破棄した場合は、
  //適切に閉じるか、リソースがリークする可能性があります。
  return tableModel;
}

2018年2月

        1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28      

月別 アーカイブ