相关文章推荐

Data Analytics

现代分析时代真正开始于 QlikView 的发布以及它所构建的颠覆性关联引擎。Windows 版 Qlik Sense Enterprise,基于相同的技术构建,支持企业级的全方位分析用例。

Windows 版 Qlik Sense

Windows 版 Qlik Sense

  • 面向用户的 Qlik Sense
  • 针对管理员的 Qlik Sense
  • 针对开发人员的 Qlik Sense
  • Qlik NPrinting
  • Connectors
  • Qlik GeoAnalytics
  • Qlik Alerting
  • QlikView

    QlikView

  • 面向用户和管理员的 QlikView
  • 针对开发人员的 QlikView
  • Qlik NPrinting
  • Connectors
  • Governance Dashboard
  • Data Integration

    Qlik Data Integration 通过自动化数据流 (CDC)、细化、编目和发布,使 DataOps 方法能够改善实时、分析就绪的数据的发现和可用性。

    Integration(之前称为 Attunity)

    Integration(之前称为 Attunity)

  • Qlik Replicate
  • Qlik Compose
  • Qlik Enterprise Manager
  • Qlik Gold Client
  • 企业数据目录

    企业数据目录

  • Qlik Catalog
  • NodeGraph (legacy)
  • On-demand 模板应用程序中的绑定表达式

    模板应用程序中的数据绑定指定使用相应选择应用程序中的哪些数据来构造将数据加载到 On-Demand 应用程序中时所发出的查询。

    绑定表达式的基本形式-- $(odag_FIELDNAME) --并非可用于绑定表达式的唯一方法。其他前缀可用于优化选择项并确保模板应用程序正确加载数据。

    警告注释 应更改最初使用 On-demand App Generation Qlik Sense 扩展创建的模板应用程序,以便使用下述方式来绑定字段中的大量选择项。

    可用的绑定前缀

    一般的前缀形式为 odag[s|o][n][cnt] ,其中:

  • s - 仅包括选择的值
  • o - 仅包括可选值
  • n - 选取数字版本,默认无引号
  • cnt - 插入值的数目而非实际值
  • 下表提供了所有可用绑定前缀版本的列表。这些示例假定一个名为 MyField 并以 1,2,3 作为选定值(绿色值)而以 4 作为可选选定值(白色值)。的字段。

    替换为选定(绿色)和可选(白色)值。选取值的数字版本。这是数字值的标准前缀。

    如果数据模型不能有字段的选定值或可选值,则必须在表达式中指定 noValue。例如, $(odagn_MyField){"noValue":"-99999"}

    有关更多信息,请参阅 更改值引号字符和分隔符字符

    $(odagn_MyField) 1,2,3,4 odagncnt_ 替换为相应 odagn_ 绑定中的值数。这用于优化查询。 $(odagncnt_MyField) odago_

    替换为可选(白色)值。选取值的文本版本。这用于优化查询。

    为大型数据库优化

    $(odago_MyField) odagocnt_ 替换为相应 odago_ 绑定中的值数。这用于优化查询。 $(odagocnt_MyField) odagon_

    替换为可选(白色)值。选取值的数字版本。这用于优化查询。

    为大型数据库优化

    $(odagon_MyField) odagoncnt_ 替换为相应 odagon_ 绑定中的值数。这用于优化查询。 $(odagoncnt_MyField) odags_

    替换为选定(绿色)值。选取值的文本版本。这用于优化查询。

    为大型数据库优化

    $(odags_MyField) '1','2','3' odagscnt_ 替换为相应 odags_ 绑定中的值数。这用于优化查询。 $(odagscnt_MyField) odagsn_

    替换为选定(绿色)值。选取值的数字版本。这用于优化查询。

    为大型数据库优化

    $(odagsn_MyField) 1,2,3 odagsncnt_ 替换为相应 odagsn_ 绑定中的值数。这用于优化查询。 $(odagsncnt_MyField)

    空值在文本版本中会被过滤掉。非数值和 NaN 值在数值版本中会被过滤掉。

    为大型数据库优化

    odags_ odagsn_ 前缀用于优化查询。当绑定字段中没有选择时, odag_ 包含所有值,而 odags_ 不包含值。在某些情况下,使用 odags_ odagscnt_ 前缀更有效。这使您能够测试值集是否为空。例如,在 MyField 中未进行选择时,以下操作比在 odag_MyField 中测试所有值更有效:

    WHERE ($(odagscnt_MyField)=0 OR MyColumn IN ($(odags_MyField)))

    当并非按需字段的选择应用程序中有一个备选字段时,不能使用 odags_ 。例如,如果用户在 CountryName 中进行选择,但绑定表达式在相关字段 CountryCode 上,则无法使用 odags_ 。在这些情况下,可改为使用 odago_ 。如果 odago_ 绑定中没有值,则可能意味着要么应包含所有值,要么不应包含任何值。

    在要绑定到 On-demand 应用程序的数据由数字(而非字符串)组成时,最好针对数值字段禁用加引号行为。例如,如果销售记录包括一个数值 DAY_OF_WEEK 列,您希望选择应用程序的用户选择 DAY_OF_WEEK 的任意组合,则可以增强用于加载选择应用程序的聚合查询,以便将 DAY_OF_WEEK 既包括在 SELECT 列表中又包括在 GROUP BY 列表中。如果在选择 DAY_OF_WEEK 值时在其两侧加引号,而且数据库不支持将字符串类型自动转换为数值,则可能会生成运行时查询错误。

    要处理这种情况,可以使用绑定表达式后缀的数字版本。这将强制字段绑定使用选择应用程序中的数值,而不是字符串值。有以下数字版本可用:

  • odagn_
  • odagon_
  • odagsn_

    通过使用数字版本,从存储选定值的双重值中的数字部分提取值,并且默认情况下这些值没有引号。

    需要一定数量的选择项

    在某些情况下,对于特定字段,可能必须要求 On-demand 应用程序查询中包含特定数量或特定范围的值。例如,如果 On-demand 应用程序的查询中包含 BETWEEN 子句(用来获取开始日期和结束日期之间的所有销售额),则 YEARQUARTER 字段的绑定表达式可以有一个后缀语法 [2] ,该语法将要求为 YEARQUARTER 正好选择两个值,如下所示:

    $(odag_YEARQUARTER)[2]

    选择应用程序上的 On-Demand 应用程序导航点将保持禁用状态,但前提是为 YEARQUARTER 选择的不是两个值。将显示一则消息来指示必须为 YEARQUARTER 正好选择两个值。

    选择数量约束会在选择应用程序和 On-Demand 应用程序之间创建一个先决条件链接。这不同于未使用数量约束的绑定表达式。例如,当模板应用程序的脚本中包含绑定表达式而不包含数量约束(如下所示)时:

    $(odag_MYFIELD)

    既不要求选择应用程序包含名为 MYFIELD 的字段,又不要求为该字段选择任何值(如果该字段存在的话)。如果选择应用程序不包含名为 MYFIELD 的字段,或者用户只是忘了从中做出任何选择,则 On-Demand 应用程序导航点仍可以在为了满足记录限制值条件而进行其他选择时变成启用状态。

    另一方面,如果绑定表达式为:

    $(odag_MYFIELD)[1+]

    现在会针对选择应用程序施加两个要求:

  • 选择应用程序必须包含一个名为 MYFIELD 的字段。
  • 用户必须至少为 MYFIELD 选择一个值。
  • 在使用这种类型的绑定表达式时必须格外小心,因为它会限制哪些选择应用程序可以与模板应用程序一起使用。 您不应当在模板应用程序的绑定上使用该数量限制,除非您确定自己希望将该选择数量要求应用在和该模板应用程序关联的所有选择应用程序上。

    为了执行数据绑定过程,On-Demand 应用程序服务使用对脚本中的注释不敏感的字符串替代方式。这意味着您不应在注释中使用绑定表达式,除非在应用程序生成后您希望这些注释包含绑定值列表。

    可能会施加其他数量约束。下表概述了选择数量约束的不同组合。

    选择项数量约束的不同组合
    信息注释 在应用程序生成过程期间执行了检查,确定是否达到模板应用程序中的所有数量限制。如果不符合数量限制,生成该应用程序的请求将被拒绝,并显示错误信息。

    更改值引号字符和分隔符字符

    将从选择应用程序选择的字段中的值列表插入到模板应用程序脚本中时,将使用单引号将值括起来并用逗号分隔。这些是引号和分隔符的默认字符。可在附加到每个字段的绑定语句的语法中更改这些值。例如:

    $(odag_ORIGIN){"quote": "|", "delimiter": ";"}

    然后,在构造来自选择应用程序的绑定值列表时,将使用这些新值。例如,如果所选值是一年的前三个月,则会将列表构造为:

    |January|;|February|;|March|

    引号字符和分隔符字符的默认值适用于大多数标准 SQL 数据库。但这些值可能不适用于某些 SQL 数据库,也不适用于许多动态数据源(例如, NoSQL REST )。对于这些源,需要附加此绑定表达式以更改引号字符和分隔符字符。

    下表概述了用于更改引号和分隔符字符的格式参数。

    处理单独值

    当需要单独处理字段值时,可以使用内联方法在变量 Values 中生成值,并使用 Replace 或其他函数执行任意处理。在下面的示例中, Replace 结合占位符值使用。

    MyTempBindingData: LOAD * INLINE [VAL $(odag_MyField){"quote": "", "delimiter": "\n"} _TempTable: LOAD Concat(chr(39) & Replace(text, from_str, to_str) & chr(39), ',') as CombinedData Resident MyTempBindingData; LET Values = Peek('CombinedData',0,'_TempTable'); drop table _TempTable; drop table MyTempBindingData;
     
    推荐文章