# GetSysAttr スクリプトおよびチャート関数

GetSysAttr() 関数は、アプリケーションが配置されているテナントとスペースに関する情報を返すために使用されます。GetSysAttr() 関数を使用すると、テナント ID と名前、スペース ID と名前、アプリケーションが存在する環境に関するその他の詳細を評価できます。この関数は、異なる環境で移動させる可能性のある Qlik Sense アプリケーションのスペースとテナント ID を簡素化します。関数により、作業中の特定の環境を識別しやすくなります。アプリケーションのライフ サイクルの開発、テスト、承認、および実稼働 (DTAP) 段階で特に有用です。

この関数は、式として直接、または変数として保存された式として、アプリケーションのロード スクリプトまたはチャートの数式で使用できます。アプリケーションのライフ サイクルの間にスペースまたはテナント間でアプリケーションを移動する予定がある場合は、チャートの数式内でこの関数を使用して、アプリケーションをリロードすることなくスペースとテナントの情報を動的に入手できます。これを実行する場合は、ロード スクリプト外部の変数に関数式を保存するか、関数を直接チャートの数式内で使用します。

GetSysAttr() を使用して、アプリケーションに関する以下の情報を確認します。

* アプリケーションが配置されているテナントの ID。

* アプリケーションが配置されているテナントの名前。

* アプリケーションが配置されているテナントの URL。

* アプリケーションを含むテナントに対して定義されているエイリアス URL。

* アプリケーションが含まれるテナントのリージョン。

* アプリケーションが配置されているスペースの ID。

* アプリケーションが配置されているスペースの名前。

* アプリケーションが配置されているスペースの種類 (共有または管理)。

GetSysAttr() 関数は、ロード スクリプト内またはチャートの数式内で直接使用できます。いずれの場合も、関数を使用して変数内または変数なしで属性を保存できます。

この関数を Qlik Sense Client-Managed で使用すると、空のデータ値のみが返されます。よって、後ほど Qlik Cloud にアプリケーションをアップロードする目的で、この関数を使用してエラーを発生させることなく Qlik Sense Client-Managed でスクリプトを開発できます。

構文:

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 Client-Managed で使用される場合、常に空の `spaceId` 値を返します。 | Let vSpaceId = GetSysAttr('spaceId') | =GetSysAttr('spaceId') |
| spaceName | スペースの名前。これは、共有スペースまたは管理スペース内のアプリケーションのためにのみ定義されます。<br><br>情報メモ<br><br>GetSysAttr() 関数が Qlik Cloud に空の `spaceName`値を返した場合、これはアプリケーションが個人スペースにあることを示します。<br><br>GetSysAttr() 関数は、Qlik Sense Client-Managed で使用される場合、常に空の `spaceName` 値を返します。 | Let vSpaceName = GetSysAttr('spaceName') | =GetSysAttr('spaceName') |
| spaceType | アプリケーションが配置されているスペースの種類。これは、共有スペースまたは管理スペース内のアプリケーションのためにのみ定義されます。<br><br>情報メモ<br><br>GetSysAttr() 関数が Qlik Cloud に空の `spaceType`値を返した場合、これはアプリケーションが個人スペースにあることを示します。<br><br>GetSysAttr() 関数は、Qlik Sense Client-Managed で使用される場合、常に空の `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. このヘルプ トピックの紹介にある属性テーブルの式を使用して、新しい行で他の属性のためにこれらのステップを繰り返します。