GetSysAttr - 脚本和图表函数 在该页面上
此函数返回所选应用程序的租户和空间域属性。 此函数均可用于数据加载脚本和图表表达式。
GetSysAttr() 函数可以直接在加载脚本 或图表表达式中使用。在任何一种情况下,都可以使用函数将属性存储在变量中,也可以直接不使用变量。
如果在 Qlik Sense 客户端托管 中使用此函数,它将只返回空的数据值。因此,您可以使用该函数在 Qlik Sense 客户端托管 中开发脚本,而不会遇到错误,以便稍后将应用程序上载到 Qlik Cloud 。
语法:
GetSysAttr(name)
返回数据类型: 双
参数 name 要返回的属性的名称。在表达式中作为字符串值输入。输入的字符串值区分大小写。
您可以使用该函数将环境属性加载到您的应用程序 中。该函数可以返回以下属性:
GetSysAttr() 函数可以返回的环境属性$tenantid 租户 ID。Let vTenantID = GetSysAttr('tenantId') =GetSysAttr('tenantId') tenantName 组合的名称。 Let vTenantName = GetSysAttr('tenantName') =GetSysAttr('tenantName') tenantUrl 租户的默认 URL。 Let vTenantUrl = GetSysAttr('tenantUrl') =GetSysAttr('tenantUrl') tenantUrlAlias 已为租户定义的别名 URL。 Let vTenantUrlAlias = GetSysAttr('tenantUrlAlias') =GetSysAttr('tenantUrlAlias') tenantRegion 租户居住的区域。 Let vTenantRegion = GetSysAttr('tenantRegion') =GetSysAttr('tenantRegion') spaceId 空间 ID。这仅为共享 或托管空间 中的应用程序定义。
信息注释 如果 GetSysAttr() 函数在 Qlik Cloud 中返回一个空 spaceId 值,则表示该应用程序位于个人空间 中。
GetSysAttr() 函数在 Qlik Sense 客户端托管 中使用时总是返回一个空 spaceId 值。
Let vSpaceId = GetSysAttr('spaceId') =GetSysAttr('spaceId') spaceName 空间的名称。这仅为共享或托管空间中的应用程序定义。
信息注释 如果 GetSysAttr() 函数在 Qlik Cloud 中返回一个空 spaceName 值,则表示该应用程序位于个人空间中。
GetSysAttr() 函数在 Qlik Sense 客户端托管 中使用时总是返回一个空 spaceName 值。
Let vSpaceName = GetSysAttr('spaceName') =GetSysAttr('spaceName') spaceType 应用程序所在的空间类型。这仅为共享或托管空间中的应用程序定义。
信息注释 如果 GetSysAttr() 函数在 Qlik Cloud 中返回一个空 spaceType 值,则表示该应用程序位于个人空间中。
GetSysAttr() 函数在 Qlik Sense 客户端托管 中使用时总是返回一个空 spaceType 值。
Let vSpaceType = GetSysAttr('spaceType') =GetSysAttr('spaceType')
适用场景 此函数简化了可能在不同环境之间移动的 Qlik Sense 应用程序的空间和租户标识。此函数使您能够轻松识别所处的特定环境。这在应用程序生命周期的开发、测试、验收和生产 (DTAP) 阶段特别有用。
此函数可以在应用程序加载脚本中的加载语句中使用,也可以在图表表达式中使用,可以直接作为表达式或存储为变量的表达式使用。如果您预计您的应用程序在其生命周期内会在空间或租户之间移动,请使用图表表达式中的函数动态获取空间和租户信息,而无需重新加载应用程序。执行此操作时,请将函数表达式存储在加载脚本外部的变量中,或者直接在图表表达式中使用该函数。
示例 1 – 将环境属性存储为加载脚本变量 加载脚本和变量 在本例中,我们将定义一组脚本变量 ,这些变量可以在您创建的应用程序内容中使用。每次重新加载应用程序时,都将评估属性并将其添加到应用程序中。
执行以下操作:
在共享空间中创建新 Qlik Sense 应用。
打开 数据加载编辑器 。
将以下加载脚本粘贴到新选项卡中:
Transactions:
Load * inline [
id,date,amount
1,1/1/2023,500.67
2,1/2/2023,458.91
3,1/3/2023,12.34
4,1/4/2023,90.90
5,1/5/2023,256.30
6,1/6/2023,789.16
7,1/7/2023,501.25
8,1/8/2023,87.01
9,1/9/2023,161.16
10,1/10/2023,300.06
];
Let vTenantId = GetSysAttr('tenantId');
Let vTenantName = GetSysAttr('tenantName');
Let vTenantUrl = GetSysAttr('tenantUrl');
Let vTenantUrlAlias = GetSysAttr('tenantUrlAlias');
Let vTenantRegion = GetSysAttr('tenantRegion');
Let vSpaceId = GetSysAttr('spaceId');
Let vSpaceName = GetSysAttr('spaceName');
Let vSpaceType = GetSysAttr('spaceType');
此加载脚本包含以下内容:
加载数据并以高级编辑模式打开新工作表 。
创建一个表格 对象,并将以下表达式及其各自的标签添加为维度 :
=vTenantId ,带标签 Tenant ID
=vTenantName ,带标签 Tenant Name
=vTenantUrl ,带标签 Tenant URL (Default)
=vTenantUrlAlias ,带标签 Tenant URL (Alias)
=vTenantRegion ,带标签 Tenant Region
=vSpaceId ,带标签 Space ID
=vSpaceName ,带标签 Space Name
=vSpaceType ,带标签 Space Type
现在,您的应用程序中有一个表,可以动态显示每个可用的环境属性。导出应用程序并将其上载到不同的租户和空间将为新上载的应用程序版本提供这些属性。
示例 2 – 将环境属性存储为变量,并在图表表达式中使用它们 图表表达式和结果 在本例中,我们将在高级编辑模式下使用对话框定义多个变量,而不是在脚本中定义变量。然后可以在应用程序的图表表达式中使用这些变量。
执行以下操作:
在共享空间中创建新 Qlik Sense 应用。
在高级编辑模式下打开新的工作表。
单击 打开变量对话框。
单击新建 。
在名称 下,输入 vTenantId 。
在定义 下,输入 =GetSysAttr('tenantId') 。
单击创建 。
这将创建一个应用程序变量来显示租户的 ID。重复步骤 3 到 6,为其余每个属性创建一个变量。使用以下参数:
租户名称
租户 URL
租户 URL 别名
租户地区
空间 ID
空间名称
空间类型
创建一个表格 对象,并将以下每个表达式及其各自的标签添加为维度:
=vTenantId ,带标签 Tenant ID
=vTenantName ,带标签 Tenant Name
=vTenantUrl ,带标签 Tenant URL (Default)
=vTenantUrlAlias ,带标签 Tenant URL (Alias)
=vTenantRegion ,带标签 Tenant Region
=vSpaceId ,带标签 Space ID
=vSpaceName ,带标签 Space Name
=vSpaceType ,带标签 Space Type
现在,您的应用程序中有一个表,可以动态显示每个可用的环境属性。导出应用程序并将其上载到不同的租户和空间将为新上载的应用程序版本提供这些属性。
在图表表达式中使用该函数的主要好处是,无需重新加载应用程序即可刷新这些属性。这使得应用程序能够在租户和空间之间更顺畅地移动,成为应用程序生命周期的一部分。
示例 3 – 直接在加载脚本中使用函数 加载脚本和结果 你也可以在没有变量的情况下使用应用程序中的函数。这个示例演示了如何加载一个表,其中每个属性都作为一个单独的字段 。从这里,您可以在应用程序中创建可视化 以显示这些详细信息。
执行以下操作:
在共享空间中创建新 Qlik Sense 应用。
打开数据加载编辑器。
将以下加载脚本粘贴到新选项卡中:
Attributes:
Load RowNo() as Key,
GetSysAttr('tenantId') as TenantID,
GetSysAttr('tenantName') as TenantName,
GetSysAttr('tenantUrl') as TenantUrl,
GetSysAttr('tenantUrlAlias') as TenantUrlAlias,
GetSysAttr('tenantRegion') as TenantRegion,
GetSysAttr('spaceId') as SpaceID,
GetSysAttr('spaceName') as SpaceName,
GetSysAttr('spaceType') as SpaceType autogenerate 1;
加载数据。在数据模型中创建一个表,在各个字段中显示每个属性。
现在,您可以在可视化中使用属性字段,例如表或文本和图像对象。
示例 4 – 在图表表达式中直接使用函数 加载脚本和图表表达式 您可以在不使用变量的情况下将函数直接输入图表表达式。
在图表表达式中使用该函数的主要好处是,无需重新加载应用程序即可刷新这些属性。这使得应用程序能够在租户和空间之间更顺畅地移动,成为应用程序生命周期的一部分。
执行以下操作:
在共享空间中创建新 Qlik Sense 应用。
在高级编辑模式下打开新的工作表。
将文本和图像对象拖到工作表上。
在空白图表中单击以添加文本,然后键入:
租户 ID:
在属性 面板中,单击添加度量 。
输入以下表达式:
=GetSysAttr('tenantId')
使用本帮助主题介绍中的属性表中提供的表达式,对新行中的其他属性重复这些步骤。