AppDNA

创建或编辑算法的 SQL 查询

Jun 04, 2018

高级用户可以使用“算法实现”对话框创建或编辑包含自定义报告中算法逻辑的原始 SQL 查询。

“算法实现”对话框水平分为两个:

  • 顶部部分 — 在其中创建和编辑 SQL 查询的文本编辑框。
  • 下半部分 — 单击测试 SQL 时显示查询的结果。

打开算法实现对话框

您可以在创建自己定义的新自定义报告算法时打开“算法实现”对话框:

  1. 在“自定义报告管理器”屏幕的左侧,找到要在其中创建新算法的算法组。
  2. 右键单击算法组,然后从快捷菜单中选择“新建算法”。
  3. 以正常方式完成“新建算法”向导。
  4. 在向导的第五页上,选择“高级”选项,然后单击“转到”。这将打开“算法实现”对话框。

对于使用“高级”选项创建的自定义报告算法,您可以打开“算法实现”对话框,如下所示:

  1. 在“自定义报告管理器”屏幕左侧找到算法。
  2. 右键单击并从快捷菜单中选择编辑实现。

注意:无法打开基于 Citrix 提供的算法的自定义报告算法的“算法实现”对话框。

规格

  • 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

警告:Citrix 无法保证您编写的查询能够在 AppDNA 的未来版本中起作用,因为数据库的结构可能会随版本发生变化。

示例

创建新算法时打开对话框时,对话框的顶部包含一个示例查询,如下所示:

pre codeblock 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 行 — 从给定别名 mf 的 dbo.msi_file 表中选择六个命名列。

第 3 行 — WHERE 子句定义一个筛选器,该筛选器将结果限制为满足以下条件的结果:

  • 第 6-12 行 — 语言列中的值与美国英语的语言代码不匹配,并且不是空白、零或空白。
  • 第 15 行 — 应用程序 ID 包含在运行时替换 {APP_IDS} 标签的当前选定应用程序 ID 列表中。
  • 第 16 行 — 按应用程序 ID 排序结果。

这个例子仅提供了一个起点,并不是指定性的。您可以使用 SQL Server Management Studio 浏览 AppDNA 数据库中的表。但是,请注意,Citrix 无法保证您编写的查询能够在 AppDNA 的未来版本中起作用,因为数据库的结构可能会随版本发生变化。

创建或编辑算法的 SQL 查询