Product Documentation

アルゴリズム用のSQLクエリの作成または編集

Jul 08, 2016

上級ユーザーは[Algorithm Implementation]ダイアログボックスを使用して、カスタムレポートのアルゴリズムのロジックを構成するSQLクエリを直接作成または編集できます。

[Algorithm Implementation]ダイアログボックスは水平に分割されています。

  • 上部 - SQLクエリを作成し編集するテキスト編集ボックスです。
  • 下部[Test SQL]をクリックすると、クエリの結果が表示されます。

[Algorithm Implementation]ダイアログボックスを開く

独自に定義する新しいカスタムレポートのアルゴリズムを作成するときは、[Algorithm Implementation]ダイアログボックスを開きます。

  1. [Custom Reports Manager]画面の左側で、新しいアルゴリズムを作成するアルゴリズムグループを見つけます。
  2. アルゴリズムグループを右クリックして[New Algorithm]を選択します。
  3. アルゴリズム作成ウィザードを通常の方法で実行します。
  4. ウィザードの5番目のページで、[Advanced]をクリックし、[Go to]をクリックします。 [Algorithm Implementation]ダイアログボックスが開きます。

[Advanced]をクリックして作成したカスタムレポートアルゴリズムについては、次の手順に従って[Algorithm Implementation]ダイアログボックスを開くことができます。

  1. [Custom Reports Manager]画面左側のアルゴリズムを見つけます。
  2. 右クリックして[Edit Implementation]を選択します。
注:Citrixが提供するアルゴリズムに基づくカスタムレポートアルゴリズムについては、[Algorithm Implementation]ダイアログボックスを開くことはできません。

仕様

  • SQLクエリは、アルゴリズムをトリガーするアプリケーションに関連するデータを返す select権限 ステートメントである必要があります。
  • 結果セットの最初の列はアプリケーションIDである必要があります。
  • {APP_IDS} タグを含める必要があります。このタグは、実行時に、現在選択されているアプリケーションの一覧に置き換えられます。 通常、このタグは WHERE 句に含めます。
  • AS 構文を使用してテーブルまたは列に別名を付ける場合は、別名を角かっこ([ ])または二重引用符(" ")のどちらで囲むかにかかわらず、標準識別子の規則に従う必要があります。 たとえば、別名には空白またはアポストロフィ(')を含められません。 詳しくは、http://msdn.microsoft.com/en-us/library/aa223962(SQL.80).aspxを参照してください。

総合的な select権限 ステートメントのドキュメントについては、http://msdn.microsoft.com/en-us/library/aa259187(SQL.80).aspxを参照してください。

警告:データベースの構造はバージョン間で変更される可能性があるので、記述したクエリが将来のバージョンのAppDNAで動作することは保証できません。

新しいアルゴリズムを作成するときに[Algorithm Implementation]ダイアログボックスを開くと、ダイアログボックスの上部には次のようなサンプルクエリが表示されます。

1   SELECT mf.[application_id], mf.[long_filename] , mf.[target_path],  mf.[version], mf.[version_number], mf.language 2   FROM  [dbo].[msi_file] mf   3 4   WHERE        5   (  6     mf.[language] NOT LIKE '%1033%' 7     AND 8     (mf.[language] != '0' 9       AND 10      mf.[language] is NOT null 11      AND  12      mf.[language] != '' 13    ) 14  )  15  AND      mf.application_id IN ( {APP_IDS} ) 16  ORDER BY mf.[application_id] 

これにより、英語(米国)以外のファイルを含むすべてのアプリケーションが取得されます。

行1、2 - dbo.msi_file テーブルから名前付きの列を6つ選択します。このテーブルの別名を mfに設定します。

行3WHERE 句により、次の条件を満たすデータに結果を制限するフィルターを定義します。

  • 行6-12 - language列の値が英語(米国)の言語コードと一致せず、空白、0、またはnullでもありません。
  • 行15 – アプリケーションIDは、現在選択されているアプリケーションIDの一覧に含まれています。この一覧は、実行時に {APP_IDS} タグを置き換えます。
  • 行16 - 結果をアプリケーションIDで並べ替えます。

この例は開始点を提供するに過ぎず、手引きとして使用するように意図されているものではありません。 SQL Server Management Studioを使用して、AppDNAデータベース内のテーブルを参照できます。 ただし、データベースの構造はバージョン間で変更される可能性があるので、記述したクエリが将来のバージョンのAppDNAで動作することは保証できません。