跳到主要内容

创建 On-demand 模板应用程序

在该页面上

创建 On-demand 模板应用程序

On-demand 模板应用程序和常规的 Qlik Sense 应用程序有一个重要的差别:其加载脚本包含数据绑定表达式,用于构造在数据源上进行的查询。在生成 On-demand 应用程序时,会使用这些数据绑定表达式,从选择应用程序的选择状态读取值,并将这些值绑定到模板应用程序脚本,以便所生成的应用程序将使用一个数据子集来加载,该子集可以由用户进行控制。

模板应用程序通常作为选择应用程序连接到同一个数据源。选择应用程序的加载脚本通常会加载聚合数据以减少数据量,同时仍提供重要维度和度量的交互式可视化。模板应用程序的加载脚本使用查询来加载更精细的受控制数据子集。

备注: On-Demand 模板应用程序不直接加载数据。模板应用程序连接必须有效,但是要测试连接是否正常作用,您必须生成 On-demand 应用程序。在生成 On-demand 应用程序之后,将通过 On-Demand 应用程序服务修改加载脚本,以加载 On-demand 选择应用程序的选择状态。如果 On-Demand 应用程序没有错误地生成,则可以确定模板应用程序中的连接可正常作用。

模板应用程序的结构

模板应用程序使用 On-Demand 应用程序导航链接来链接到选择应用程序。应用程序导航链接包括用来控制在使用数据加载 On-demand 应用程序时所查询的记录数的属性。模板应用程序的加载脚本包含数据绑定表达式,这些表达式指定使用选择应用程序中的哪些字段数据来构造将数据加载到 On-demand 应用程序中时所发出的查询。

备注: Qlik Sense Enterprise on Windows 安装中包括有示例的 On-Demand 模板应用程序,位置为 ProgramData\Qlik\Examples\OnDemandApp\sample
备注:

在 June 2020 中引入了数据绑定表达式的新语法。之前的语法和前缀 od_ods_odo_odso_odb_ 的表现和之前一样,包括数量限制、_n 后缀以及格式规范。如果您的应用程序应该在 June 2020 之前的 Qlik Sense 版本上运行,请使用旧语法。对于旧语法,请参阅创建 On-demand 模板应用程序(旧版)

当使用新前缀时,_n 后缀不受支持。

基本数据绑定表达式的形式如下:

$(odag_FIELDNAME)

odag_ 前缀用于将选择应用程序的选择状态绑定到 On-demand 应用程序的加载脚本(通过复制模板应用程序创建)。数据绑定表达式中位于 odag 前缀后面的部分必须是与选择应用程序中的字段相匹配的名称。生成 On-demand 应用程序时,选择应用程序的当前选择状态用于获取要针对每个字段绑定的所需值。生成 On-demand 应用程序时,选择应用程序的当前选择项状态用于获取要针对每个字段绑定的所需值。 在新创建的 On-demand 应用程序的加载脚本中,$(odag_FIELDNAME) 表达式的每个实例都替换为针对选择应用程序的选择状态中的相应字段选择的值列表。

还提供了用于更专门化数据绑定的其他前缀。要了解有关特殊情况的裁剪和优化加载语句的更多信息,请参见On-demand 模板应用程序中的绑定表达式

On-demand 绑定可以直接插入加载脚本中的 SELECTWHERE 语句中。当您将绑定直接添加到 WHERE 语句中时,很容易将它们与语句中的其他条件结合起来。

在创建加载脚本时,可以添加占位符变量 $(odagActive)。这使您能够将示例数据加载到模板应用程序中,以便可以在不加载所有数据的情况下创建动态视图的主图表。

下面的示例演示了 On-demand 模板加载脚本示例。

Example: 添加一些样本数据

此示例添加示例值,以便即使绑定未完成也可以加载应用程序。


IF '$(odagActive)'='' THEN
trace ODAG variables not inserted! Loading sample data.;
SET 'odag_Origin Code' = '''LAX''';
SET 'odag_Destination Code' = '''JFK''';
SET odagn_Year = 2015;
SET odag_Quarter = '''1''';
SET 'odag_Ticket Carrier Code' = '''CA''';
SET 'odag_Fare Class' = '''X''';
END IF;

Example: 在模板应用程序中加载数据

下面是一个示例加载脚本,用于加载示例数据并使用生成的 odag_FIELDNAME 绑定对其进行筛选。odagn_<Field Name> 绑定选择双重值中的数字,默认情况下不没有引号。


SQL SELECT *
FROM FlightDB.Flights
WHERE "Origin Code" IN ($(odag_Origin Code))
AND "Destination Code" IN ($(odag_Destination Code))
AND "Year" IN ($(odagn_Year))
AND "Quarter" IN ($(odag_Quarter))
AND "Ticket Carrier Code" IN ($(odag_Ticket Carrier Code))
AND "Fare Class" IN ($(odag_Fare Class));

单点登录 (SSO)

On-Demand 应用程序可将 single sign-on (SSO) 用于支持 SSO 的数据源。必须配置引擎和数据源以允许 SSO

有关更多信息,请参阅使用 Qlik Sense 配置 SAP HANA for SAML 单点登录 (仅提供英文版本)以及为单点登录配置 Cloudera Impala (仅提供英文版本)

一旦为 SSO 配置了引擎和数据源,则必须通过将以下语法添加至模板应用程序脚本来启用 SSO

///!ODAG_SSO

在生成了 On-Demand 应用程序并每次重新载入该程序时,On-Demand App Service 解析脚本。

当通过 SSO 加载 On-Demand 应用程序时,会将最终用户的身份发送至数据源。最终用户必须具有在模板应用程序的数据连接中使用的源的访问权限。仅会载入这些源中用户有访问权限的数据,即使选择了更大的数据集。

警告: 无法发布使用 single sign-on (SSO) 的通过模板应用程序生成的 On-Demand 应用程序。

加载模板应用程序的节点

管理员可控制多节点环境中在何处通过在模板应用程序上设置加载平衡规则加载 On-demand 应用程序。在设置了负载均衡规则之后,通过指向模板应用程序的链接生成的所有应用程序将根据适用于模板应用程序的规则加载。有关更多信息,请参阅管理 On-Demand 应用程序 (仅提供英文版本)