# GetSysAttr Функция скрипта и диаграммы

Функция GetSysAttr() используется для получения информации о клиенте и пространстве, в котором находится приложение. С помощью функции GetSysAttr() можно оценить идентификатор и имя клиента, идентификатор и имя пространства и другие сведения о среде, в которой находится приложение. Эта функция упрощает идентификацию пространства и клиента в приложении Qlik Sense, которое может перемещаться между разными средами. Эта функция позволяет легко идентифицировать конкретную среду, в которой работает пользователь. Это особенно полезно на этапах разработки, тестирования, приемки и производства (DTAP) жизненного цикла приложения.

Эту функцию можно использовать в скрипте загрузки приложения или в выражениях диаграммы, напрямую в виде выражения или в выражении, сохраненном в качестве переменной. Если в течение жизненного цикла приложения ожидается его перемещение между пространствами или клиентами, используйте функцию в выражении диаграммы, чтобы динамически получать информацию о пространстве и клиенте, не перезагружая приложение. В таком случае сохраните выражение функции в переменной за пределами скрипта загрузки или используйте функцию непосредственно в выражении диаграммы.

Используйте GetSysAttr(), чтобы определить следующую информацию о приложении:

* Идентификатор клиента, в котором находится приложение.

* Имя клиента, в котором находится приложение.

* URL клиента, в котором находится приложение.

* URL псевдонима, определенный для клиента, в котором находится приложение.

* Регион клиента, в котором находится приложение.

* Идентификатор пространства, в котором находится приложение.

* Имя пространства, в котором находится приложение.

* Тип пространства (общее или управляемое), в котором находится приложение.

Функцию GetSysAttr() можно использовать непосредственно в скрипте загрузки или в выражении диаграммы. В любом случае с помощью этой функции можно сохранять атрибуты в переменной или напрямую (без переменной).

При использовании в Qlik Sense под управлением клиента эта функция возвращает только пустые значения данных. Таким образом, эту функцию можно использовать для разработки скриптов в Qlik Sense под управлением клиента, не сталкиваясь с ошибками, впоследствии приложения можно будет загрузить в Qlik Cloud.

Синтаксис:

GetSysAttr(name)

Возвращаемые типы данных: двойное значение

Аргументы

| Аргумент | Описание |
| --- | --- |
| name | Имя атрибута, который должен быть возвращен. Вводится как строковое значение в выражении. Строковое значение вводится с учетом регистра. |

С помощью функции можно загружать атрибуты среды в приложение. Эта функция может возвращать следующие атрибуты:

Атрибуты среды, которые может возвращать функция GetSysAttr()GetSysAttr()

| Атрибут | Описание | Имя переменной скрипта загрузки | Пример выражения диаграммы (без переменной) |
| --- | --- | --- | --- |
| tenantId | Идентификатор клиента. | Пусть vTenantID = GetSysAttr('идентификатор клиента') | =GetSysAttr('идентификатор клиента') |
| tenantName | Имя клиента. | Пусть vTenantName = GetSysAttr('имя клиента') | =GetSysAttr('имя клиента') |
| tenantUrl | URL по умолчанию для клиента. | Пусть vTenantUrl = GetSysAttr('URL-адрес клиента') | =GetSysAttr('tenantUrl') |
| tenantUrlAlias | Псевдоним URL, определенный для клиента. | Let vTenantUrlAlias = GetSysAttr('tenantUrlAlias') | =GetSysAttr('tenantUrlAlias') |
| tenantRegion | Регион, в котором находится клиент. | Let vTenantRegion = GetSysAttr('tenantRegion') | =GetSysAttr('tenantRegion') |
| spaceId | Идентификатор пространства. Определяется только для приложения в общем или управляемом пространстве.<br><br>Примечание к информации<br><br>Если функция GetSysAttr() возвращает пустое значение `spaceId` в Qlik Cloud, это указывает на то, что приложение находится в личном пространстве.<br><br>Функция GetSysAttr() всегда возвращает пустое значение `spaceId` при использовании в Qlik Sense под управлением клиента. | Пусть vSpaceId = GetSysAttr('spaceId') | =GetSysAttr('spaceId') |
| spaceName | Имя пространства. Определяется только для приложения в общем или управляемом пространстве.<br><br>Примечание к информации<br><br>Если функция GetSysAttr() возвращает пустое значение `spaceName` в Qlik Cloud, это указывает на то, что приложение находится в личном пространстве.<br><br>Функция GetSysAttr() всегда возвращает пустое значение `spaceName` при использовании в Qlik Sense под управлением клиента. | Пусть vSpaceName = GetSysAttr('spaceName') | =GetSysAttr('spaceName') |
| spaceType | Тип пространства, в котором находится приложение. Определяется только для приложения в общем или управляемом пространстве.<br><br>Примечание к информации<br><br>Если функция GetSysAttr() возвращает пустое значение `spaceType` в Qlik Cloud, это указывает на то, что приложение находится в личном пространстве.<br><br>Функция GetSysAttr() всегда возвращает пустое значение `spaceType` при использовании в Qlik Sense под управлением клиента. | Пусть 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. Нажмите Создать.

Будет создана переменная приложения для отображения идентификатора клиента. Повторите действия 3-6, чтобы создать переменные для оставшихся атрибутов. Используйте следующие параметры:

* Имя клиента

  * Имя: vTenantName

  * Определение: =GetSysAttr('tenantName')

* URL-адрес клиента

  * Имя: vTenantUrl

  * Определение: =GetSysAttr('tenantUrl')

* Псевдоним URL клиента

  * Имя: vTenantUrlAlias

  * Определение: =GetSysAttr('tenantUrlAlias')

* Регион клиента

  * Имя: vTenantRegion

  * Определение: =GetSysAttr('tenantRegion')

* Идентификатор пространства

  * Имя: 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. Щелкните внутри пустой диаграммы, чтобы добавить текст, и введите следующее:

   Идентификатор клиента:

5. На панели свойств щелкните Добавить меру.

6. Введите следующее выражение:

   =GetSysAttr('идентификатор клиента')

7. Повторите эти действия для других атрибутов в новых строках, используя выражения, приведенные в таблице атрибутов в начале этого раздела справки.