GetSysAttr - スクリプトおよびチャート関数 このページ上
この関数は、選択したアプリのテナントとスペース ドメインの属性を返します。 これは、データ ロード スクリプトおよびチャート式の両方で使用できます。
GetSysAttr() 関数は、ロード スクリプト 内またはチャートの数式内で直接使用できます。いずれの場合も、関数を使用して変数内または変数なしで属性を保存できます。
この関数を Qlik Sense Client-Managed で使用すると、空のデータ値のみが返されます。よって、後ほど Qlik Cloud に app をアップロードする目的で、この関数を使用してエラーを発生させることなく Qlik Sense Client-Managed でスクリプトを開発できます。
構文:
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 Client-Managed で使用される場合、常に空の spaceId 値を返します。
Let vSpaceId = GetSysAttr('spaceId') =GetSysAttr('spaceId') spaceName スペースの名前。これは、共有スペースまたは管理スペース内のアプリのためにのみ定義されます。
情報メモ GetSysAttr() 関数が Qlik Cloud に空の spaceName 値を返した場合、これはアプリが個人スペースにあることを示します。
GetSysAttr() 関数は、Qlik Sense Client-Managed で使用される場合、常に空の spaceName 値を返します。
Let vSpaceName = GetSysAttr('spaceName') =GetSysAttr('spaceName') spaceType App が配置されているスペースの種類。これは、共有スペースまたは管理スペース内のアプリのためにのみ定義されます。
情報メモ GetSysAttr() 関数が Qlik Cloud に空の spaceType 値を返した場合、これはアプリが個人スペースにあることを示します。
GetSysAttr() 関数は、Qlik Sense Client-Managed で使用される場合、常に空の spaceType 値を返します。
Let vSpaceType = GetSysAttr('spaceType') =GetSysAttr('spaceType')
使用に適しているケース この関数は、異なる環境で移動させる可能性のある Qlik Sense アプリのスペースとテナント ID を簡素化します。関数により、作業中の特定の環境を識別しやすくなります。アプリのライフ サイクルの開発、テスト、承認、および実稼働 (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')
このヘルプ トピックの紹介にある属性テーブルの式を使用して、新しい行で他の属性のためにこれらのステップを繰り返します。