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) 階段期間,這特別實用。
此函數可用於應用程式載入指令碼或圖表運算式中的 Load 陳述式,可直接作為運算式使用,或在運算式中儲存為變數使用。若您預期應用程式會在生命週期期間於空間或租用戶之間移動,請在圖表運算式中使用該函數,以動態取得空間和租用戶資訊,而不必載入應用程式。若這麼做,請在載入指令碼以外的變數中儲存該函數運算式,或直接在圖表運算式中使用該函數。
範例 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')
在新行對其他屬性重複這些步驟,使用此說明主題簡介的屬性表格中呈現的運算式。