# GetSysAttr 指令碼與圖表函數

GetSysAttr() 函數用於傳回應用程式所在租用戶和空間的資訊。使用 GetSysAttr() 函數，您可以評估租用戶 ID 和名稱、空間 ID 和名稱以及有關應用程式所在環境的其他詳細資訊。此函數簡化可能會在不同環境之間移動的 Qlik Sense 應用程式的空間和租用戶識別。該函數可用來輕鬆識別您工作所在的特定環境。在應用程式生命週期的開發、測試、接受和生產 (DTAP) 階段期間，這特別實用。

此函數可用於應用程式載入指令碼或圖表運算式，可直接作為運算式使用，或在運算式中儲存為變數使用。若您預期應用程式會在生命週期期間於空間或租用戶之間移動，請在圖表運算式中使用該函數，以動態取得空間和租用戶資訊，而不必載入應用程式。若這麼做，請在載入指令碼以外的變數中儲存該函數運算式，或直接在圖表運算式中使用該函數。

使用 GetSysAttr() 確定有關應用程式的以下資訊：

* 應用程式所在租用戶的 ID。

* 應用程式所在租用戶的名稱。

* 應用程式所在租用戶的 URL。

* 已為包含應用程式的租用戶定義的別名 URL。

* 包含應用程式的租用戶區域。

* 應用程式所在空間的 ID。

* 應用程式所在空間的名稱。

* 應用程式所在空間的類型 (共用或受管理)。

可以直接在載入指令碼或圖表運算式中使用 GetSysAttr() 函數。在任一種情況下，您可以使用該函數儲存變數中的屬性，或以沒有變數的方式直接使用。

若您在 Qlik Sense 用戶端管理 中使用此函數，只會傳回空的資料值。因此，您可以使用函數在 Qlik Sense 用戶端管理 中開發指令碼，而不會遇到錯誤，之後再將應用程式上傳至 Qlik Cloud。

語法：

GetSysAttr(name)

傳回的資料類型： 雙值

引數

| 引數 | 描述 |
| --- | --- |
| name | 要傳回的屬性名稱。作為運算式中的字串值輸入。輸入的字串值區分大小寫。 |

您可以使用函數將環境屬性載入到您的應用程式中。該函數可以傳回下列屬性：

可由 GetSysAttr()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。這僅為位於共用或受管理空間中的應用程式定義。<br><br>資訊備註<br><br>若 GetSysAttr() 函數在 Qlik Cloud 中傳回空的 `spaceId` 值，這指示應用程式位於 個人空間 中。<br><br>GetSysAttr() 函數用於 Qlik Sense 用戶端管理，永遠會傳回空的 `spaceId` 值。 | Let vSpaceId = GetSysAttr('spaceId') | =GetSysAttr('spaceId') |
| spaceName | 空間名稱。這僅為共用或受管理空間中的應用程式定義。<br><br>資訊備註<br><br>若 GetSysAttr() 函數在 Qlik Cloud 中傳回空的 `spaceName` 值，這指示應用程式位於個人空間中。<br><br>GetSysAttr() 函數用於 Qlik Sense 用戶端管理，永遠會傳回空的 `spaceName` 值。 | Let vSpaceName = GetSysAttr('spaceName') | =GetSysAttr('spaceName') |
| spaceType | 應用程式所在空間的類型。這僅為共用或受管理空間中的應用程式定義。<br><br>資訊備註<br><br>若 GetSysAttr() 函數在 Qlik Cloud 中傳回空的 `spaceType` 值，這指示應用程式位於個人空間中。<br><br>GetSysAttr() 函數用於 Qlik Sense 用戶端管理，永遠會傳回空的 `spaceType` 值。 | Let vSpaceType = GetSysAttr('spaceType') | =GetSysAttr('spaceType') |

## 範例 1 – 儲存環境屬性作為載入指令碼變數

[](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/SystemFunctions/GetSysAttr.htm)

#### 載入指令碼和變數

在此範例中，我們定義一組指令碼變數，這可用於您建立的應用程式內容。每次重新載入應用程式時，都會評估屬性並新增至應用程式。

請執行下列動作：

1. 在共用空間中建立新的 Qlik Sense 應用程式。

2. 開啟 資料載入編輯器。

3. 在新的索引標籤中貼上以下載入指令碼：

   ```
   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');
   ```

此載入指令碼包含下列內容：

* 稱為 `Transactions` 的新表格，包含交易資料樣本。這可以替換為任何資料，並新增為預留位置。

* 一系列的指令碼變數定義，用於可透過 GetSysAttr() 擷取的可用屬性。

在進階編輯模式中載入資料並開啟新的工作表。

建立表格並新增下列運算式作為維度，以及使用各自的標籤：

* `=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 – 儲存環境屬性作為變數並在圖表運算式中使用

[](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/SystemFunctions/GetSysAttr.htm)

#### 圖表運算式和結果

在此範例中，並不是在指令碼中定義變數，而是在進階編輯模式下使用對話方塊定義幾個變數。然後可以在應用程式的圖表運算式中使用變數。

請執行下列動作：

1. 在共用空間中建立新的 Qlik Sense 應用程式。

2. 在進階編輯模式中開啟新的工作表。

3. 按一下 the 變數 icon 以開啟變數對話方塊。

4. 按一下新建。

5. 在名稱之下，輸入 vTenantId。

6. 在定義之下，輸入 =GetSysAttr('tenantId')。

7. 按一下建立。

這會建立應用程式變數，以顯示租用戶的 ID。重複步驟 3 至 6 以建立每個剩餘屬性的變數。使用下列參數：

* 租用戶名稱

  * 名稱： vTenantName

  * 定義： =GetSysAttr('tenantName')

* 租用戶 URL

  * 名稱： vTenantUrl

  * 定義： =GetSysAttr('tenantUrl')

* 租用戶 URL 別名

  * 名稱： vTenantUrlAlias

  * 定義： =GetSysAttr('tenantUrlAlias')

* 租用戶區域

  * 名稱： vTenantRegion

  * 定義： =GetSysAttr('tenantRegion')

* 空間 ID

  * 名稱： vSpaceId

  * 定義： =GetSysAttr('spaceId')

* 空間名稱

  * 名稱： vSpaceName

  * 定義： =GetSysAttr('spaceName')

* 空間類型

  * 名稱： 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`

您現在於應用程式中有表格，動態顯示每個可用環境屬性。匯出應用程式並上傳至不同的租用戶和空間會針對新上傳的應用程式版本向您提供這些屬性。

在圖表運算式中使用函數的主要優點是不需要為了重新整理這些屬性而載入應用程式。這可以在租用戶和空間之間更順暢地移動應用程式，作為應用程式生命週期的一部分。

## 範例 3 – 直接在載入指令碼中使用函數

[](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/SystemFunctions/GetSysAttr.htm)

#### 載入指令碼和結果

您也可以在應用程式中使用函數而沒有變數。此範例呈現如何載入表格，其中以每個屬性作為個別欄位。由此，您可以在應用程式中建立視覺化以顯示這些詳細資訊。

請執行下列動作：

1. 在共用空間中建立新的 Qlik Sense 應用程式。

2. 開啟資料載入編輯器。

3. 在新的索引標籤中貼上以下載入指令碼：

   ```
   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 – 直接在圖表運算式中使用函數

[](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/SystemFunctions/GetSysAttr.htm)

#### 載入指令碼和圖表運算式

您可以直接在圖表運算式中輸入函數，而不使用變數。

在圖表運算式中使用函數的主要優點是，應用程式不需要為了重新整理這些屬性而重新載入。這可以在租用戶和空間之間更順暢地移動應用程式，作為應用程式生命週期的一部分。

請執行下列動作：

1. 在共用空間中建立新的 Qlik Sense 應用程式。

2. 在進階編輯模式中開啟新的工作表。

3. 將文字和影像物件拖曳到工作表。

4. 按一下空白圖表的內部以新增文字，並輸入：

   租用戶 ID：

5. 在屬性面板中，按一下新增量值。

6. 輸入下列運算式：

   =GetSysAttr('tenantId')

7. 在新行對其他屬性重複這些步驟，使用此說明主題簡介的屬性表格中呈現的運算式。