# GetUserAttr funkcja skryptu i funkcja wykresu

Funkcja GetUserAttr() zwraca następujące informacje dotyczące użytkownika uzyskującego dostęp do aplikacji:

* Adres e-mail

* Podmiot

* Grupy, do których należy użytkownik, takie jak grupy dostawcy tożsamości (IdP) i grupy niestandardowe.

* Preferowany język

* Strefa czasowa

Funkcji GetUserAttr() można używać bezpośrednio w skrypcie ładowania lub w wyrażeniu wykresu. W obu przypadkach możesz używać tej funkcji do przechowywania atrybutów w zmiennej lub bezpośrednio bez zmiennej. Jeśli użyjesz tej funkcji w Qlik Sense zarządzany przez klienta, zwróci ona tylko puste wartości danych. W związku z tym możesz używać tej funkcji do opracowywania skryptów w Qlik Sense zarządzany przez klienta bez napotykania błędów, z zamiarem późniejszego przesłania aplikacji do Qlik Cloud.

Składnia:

GetUserAttr(name)

Typ zwracanych danych: wartość podwójna

Argumenty

| Argument | Opis |
| --- | --- |
| name | Nazwa atrybutu, który ma zostać zwrócony. Wprowadź jako wartość ciągu w wyrażeniu. We wprowadzanej wartości ciągu rozróżniana jest wielkość liter. |

Użyj funkcji, aby załadować atrybuty użytkownika do swojej aplikacji. Funkcja ta może zwracać następujące atrybuty:

Atrybuty użytkownika, które może zwrócić funkcja GetUserAttr()GetUserAttr().

| Atrybut | Opis | Przykład zmiennej skryptu ładowania | Przykład wyrażenia wykresu (bez zmiennej) | Przykład wyników wyrażenia wykresu |
| --- | --- | --- | --- | --- |
| userEmail | Adres e-mail bieżącego użytkownika. | `Let vUserEmail = GetUserAttr('userEmail')` | `=GetUserAttr('userEmail')` | `john.doe@company.com` |
| userSubject | Podmiot bieżącego użytkownika. | `Let vUserSubject = GetUserAttr('userSubject')` | `=GetUserAttr('userSubject')` | `00uss7ra3dk9doJln0x7` |
| userGroups | Grupy (IdP, niestandardowe lub obie), do których należy bieżący użytkownik. Zwraca listę grup w ciągu znaków rozdzielonych przecinkami. `GetUserAttr` zwraca domyślnie grupy IdP, chyba że zmienna systemowa `QlikCloudGroupMode` jest ustawiona w skrypcie ładowania.<br><br>[QlikCloudGroupMode](https://help.qlik.com/pl-PL/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/SystemVariables/QlikCloudGroupMode.htm). | `Let vUserGroups = GetUserAttr('userGroups')` | `=GetUserAttr('userGroups')` | `Sales,Product-Lead,OKTA-Github-RnD` |
| userLocale | Preferowany język użytkownika, który jest ustawiony w Ustawieniach użytkownika.<br><br>[Zarządzanie ustawieniami osobistymi](https://help.qlik.com/pl-PL/cloud-services/Subsystems/Hub/Content/Sense_Hub/Introduction/profile-settings.htm) | `Let vUserLocale = GetUserAttr('userLocale')` | `=GetUserAttr('userLocale')` | `en` |
| userZoneinfo | Strefa czasowa użytkownika, która jest ustawiona w ustawieniach użytkownika.<br><br>[Zarządzanie ustawieniami osobistymi](https://help.qlik.com/pl-PL/cloud-services/Subsystems/Hub/Content/Sense_Hub/Introduction/profile-settings.htm) | `Let vUserLanguage = GetUserAttr('userZoneinfo')` | `=GetUserAttr('userZoneinfo')` | `Europe/London` |

## Kiedy używać GetUserAttr

Ta funkcja zwraca właściwości i grupy użytkownika dla bieżącego użytkownika aplikacji. Pozwala to tworzyć rozwiązania, które dostosowują zawartość wyświetlaną użytkownikom. Na przykład w globalnej aplikacji sprzedażowej można wyświetlać arkusze dotyczące konkretnych produktów tylko tym przedstawicielom handlowym, którzy są odpowiedzialni za daną grupę produktów. Użyj funkcji w instrukcjach ładowania w skrypcie ładowania aplikacji lub w wyrażeniach wykresu, bezpośrednio jako wyrażenia lub w wyrażeniu przechowywanym jako zmienna.

[Dynamic titles based on user language using the GetUserAttr function](https://play.vidyard.com/bozy96G13YU5YrBjnqNNDF)

## Przykład — przechowywanie atrybutów użytkownika jako zmiennych w skrypcie

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

#### Zmienne skryptu ładowania i wyrażenia wykresu

Ten przykład definiuje zestaw zmiennych skryptu, których można użyć w tworzonej zawartości aplikacji. Za każdym razem, gdy aplikacja zostanie przeładowana, atrybuty są oceniane i dodawane do aplikacji.

Wykonaj następujące czynności:

1. Utwórz nową aplikację Qlik Sense.

2. Otwórz Edytor ładowania danych i poniżej dodaj skrypt ładowania do nowej sekcji. Skrypt ładowania zawiera:

   * Nowa tabela o nazwie `Transactions` z przykładowymi danymi transakcji. Można to zastąpić dowolnymi danymi i jest to dodawane jako tekst zastępczy.

   * Instrukcja skryptu, która ustawia zmienną systemową `QlikCloudGroupMode` na `2`. Atrybut `userGroups` zwróci zarówno grupy IdP, jak i grupy niestandardowe, do których należy użytkownik.

   * Seria definicji zmiennych skryptu dla dostępnych atrybutów, które może zwrócić funkcja GetUserAttr.

     ```
     Set QlikCloudGroupMode = 2;
     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 vUserEmail = GetUserAttr('userEmail');
     Let vUserSubject = GetUserAttr('userSubject');
     Let vUserGroups = GetUserAttr('userGroups');
     Let vUserLocale = GetUserAttr('userLocale');
     Let vUserZoneinfo = GetUserAttr('userZoneinfo');
     ```

3. Załaduj dane i otwórz nowy arkusz w zaawansowanym trybie edycji.

4. Utwórz tabelę i dodaj poniższe wyrażenia jako wymiary:

   * `=vUserEmail`

   * `=vUserSubject`

   * `=vUserGroups` — zwraca to listę w postaci ciągu znaków rozdzieloną przecinkami

   * `=vUserLocale`

   * `=vUserZoneinfo`

WskazówkaMożna dodać etykietę wymiaru, taką jak E-mail użytkownika, aby zwiększyć czytelność podczas tworzenia wymiaru.

Dane wyjściowe w tabeli dynamicznie wyświetlają dostępne atrybuty użytkownika. Poniższa tabela przedstawia przykład wyników zwróconych przy użyciu funkcji `GetUserAttr`.

Tabela wynikowa

| =vUserEmail | =vUserSubject | =vUserGroups | =vUserLocale | =vUserZoneinfo |
| --- | --- | --- | --- | --- |
| john.doe@company.com | 00uss7ra3dk9doJln0x7 | Sprzedaż,Lider produktu,OKTA-Github-RnD | en | America/Toronto |

## Przykład — przechowywanie atrybutów użytkownika jako zmiennych i używanie ich w wyrażeniach wykresu

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

#### Zmienne i wyrażenia wykresu

W tym przykładzie, zamiast definiować zmienne w skrypcie ładowania, zmienne są definiowane w aplikacji. Po zdefiniowaniu zmiennych można ich używać w wyrażeniach wykresów w aplikacji. Główną zaletą używania funkcji w wyrażeniach wykresów jest to, że atrybuty odświeżają się automatycznie bez konieczności ponownego ładowania aplikacji. Umożliwia to płynniejsze przenoszenie aplikacji między użytkownikami w ramach cyklu życia aplikacji.

Wykonaj następujące czynności:

1. Utwórz nową Qlik Sense aplikację.

2. Otwórz nowy arkusz w zaawansowanym trybie edycji.

3. Otwórz okno dialogowe zmiennych.

4. Wybierz opcję Utwórz nowy, a następnie wykonaj poniższe czynności:

   * W polu Nazwa wpisz vUserEmail.

   * W polu Definicja wpisz =GetUserAttr('userEmail').

   * Wybierz Utwórz.

   Zmienna aplikacji zostaje utworzona w celu wyświetlenia adresu e-mail użytkownika. Powtórz ten krok, aby utworzyć zmienną dla pozostałych atrybutów, używając następujących parametrów:

   * Podmiot użytkownika

     * Nazwa: vUserSubject

     * Definicja: =GetUserAttr('userSubject')

   * Grupy użytkownika

     * Nazwa: vUserGroups

     * Definicja: =GetUserAttr('userGroups')

   * Ustawienia regionalne użytkownika

     * Nazwa: vUserLocale

     * Definicja: =GetUserAttr('userLocale')

   * Informacje o strefie użytkownika

     * Nazwa: vUserZoneinfo

     * Definicja: =GetUserAttr('userZoneinfo')

5. Utwórz tabelę i dodaj poniższe wyrażenia jako wymiary:

   * `=vUserEmail`

   * `=vUserSubject`

   * `=vUserGroups` (zwraca to listę w postaci ciągu znaków rozdzieloną przecinkami)

   * `=vUserLocale`

   * `=vUserZoneinfo`

WskazówkaMożna dodać etykietę wymiaru, taką jak E-mail użytkownika, aby zwiększyć czytelność podczas tworzenia wymiaru.

Dane wyjściowe w tabeli dynamicznie wyświetlają dostępne atrybuty użytkownika. Poniższa tabela przedstawia przykład wyników zwróconych z funkcji `GetUserAttr`.

Tabela wynikowa

| =vUserEmail | =vUserSubject | =vUserGroups | =vUserLocale | =vUserZoneinfo |
| --- | --- | --- | --- | --- |
| john.doe@company.com | 00uss7ra3dk9doJln0x7 | Sprzedaż,Lider produktu,OKTA-Github-RnD | en | America/Toronto |

InformacjaFunkcja `GetUserAttr('userGroups')` domyślnie zwraca grupy IdP użytkownika. Można wybrać zwracane grupy, ustawiając zmienną systemową `QlikCloudGroupMode` w instrukcji skryptu — na przykład `Set QlikCloudGroupMode = 2` zwraca grupy zarówno IdP, jak i niestandardowe. Więcej informacji zawiera temat [QlikCloudGroupMode](https://help.qlik.com/pl-PL/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/SystemVariables/QlikCloudGroupMode.htm).

## Przykład 3 — używanie funkcji GetUserAttr bezpośrednio w skrypcie ładowania

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

#### Skrypt ładowania

Możesz także użyć tej funkcji w swoich aplikacjach bez zmiennej. Ten przykład pokazuje, jak załadować tabelę z każdym atrybutem jako osobnymi polem. Stąd możesz tworzyć wizualizacje w aplikacji, aby wyświetlić te szczegóły.

Wykonaj następujące czynności:

1. Utwórz nową Qlik Sense aplikację.

2. Otwórz Edytor ładowania danych i poniżej dodaj skrypt ładowania do nowej sekcji. Skrypt ładowania zawiera:

   * Nowa tabela o nazwie `Attributes`, która zawiera każdy atrybut jako pole.

   * Instrukcja skryptu, która ustawia zmienną systemową `QlikCloudGroupMode` na `1` dla grup niestandardowych. Atrybut `userGroups` zwróci tylko grupy niestandardowe, do których należy użytkownik.

   ```
   Set QlikCloudGroupMode = 1;
   Attributes:
   Load RowNo() as Key,
   GetUserAttr('userEmail') as UserEmail,
   GetUserAttr('userSubject') as UserSubject,
   GetUserAttr('userLocale') as UserLocale,
   GetUserAttr('userZoneinfo') as UserZoneinfo,
   GetUserAttr('userGroups') as UserGroups autogenerate 1;
   ```

3. Załadowanie danych. W modelu danych zostanie utworzona tabela wyświetlająca każdy z atrybutów w poszczególnych polach.

   Teraz możesz używać pól atrybutów w wizualizacjach, takich jak tabele lub obiekty tekstowe i graficzne.

## Przykład 4 — używanie funkcji GetUserAttr bezpośrednio w wyrażeniach wykresu

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

#### Wyrażenia wykresu

Funkcję można wprowadzić bezpośrednio do wyrażeń wykresu bez użycia zmiennej. Atrybuty użytkownika zostaną odświeżone bez konieczności ponownego ładowania aplikacji. Umożliwia to płynniejsze przenoszenie aplikacji między użytkownikami w ramach cyklu życia aplikacji.

Wykonaj następujące czynności:

1. Utwórz nową Qlik Sense aplikację.

2. Otwórz nowy arkusz w zaawansowanym trybie edycji.

3. Przeciągnij obiekt tekstu i grafiki na arkusz.

4. Kliknij wewnątrz pustego wykresu i wprowadź następującą etykietę:

   E-mail użytkownika:

5. W panelu właściwości wybierz Dodaj miarę.

6. Wprowadź następujące wyrażenie:

   * =GetUserAttr('userEmail')

7. Dodaj etykiety i miary dla pozostałych atrybutów w nowych wierszach. Dla każdego atrybutu użyj następujących wyrażeń:

   * =GetUserAttr('userSubject'), dla podmiotu użytkownika

   * =GetUserAttr('userGroups'), dla grup użytkownika

   * =GetUserAttr('userLocale'), dla ustawień regionalnych użytkownika

   * =GetUserAttr('userZoneinfo'), dla informacji o strefie użytkownika

InformacjaFunkcja `GetUserAttr('userGroups')` domyślnie zwraca grupy IdP użytkownika. Można wybrać zwracane grupy, ustawiając zmienną systemową `QlikCloudGroupMode` w instrukcji skryptu — na przykład `Set QlikCloudGroupMode = 2` zwraca grupy zarówno IdP, jak i niestandardowe. Więcej informacji zawiera temat [QlikCloudGroupMode](https://help.qlik.com/pl-PL/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/SystemVariables/QlikCloudGroupMode.htm).

## Przykład — warunkowe ukrywanie kolumny przy użyciu wyrażenia wykresu

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

#### Wyrażenia wykresu

Przegląd

W tym przykładzie kolumna z tabeli jest pokazywana lub ukrywana na podstawie domeny adresu e-mail użytkownika.

Wykonaj następujące czynności:

1. Utwórz nową Qlik Sense aplikację.

2. Otwórz Edytor ładowania danych i poniżej dodaj skrypt ładowania do nowej sekcji. Skrypt ładowania zawiera:

   * Zestaw danych załadowany do tabeli o nazwie `Transactions`.

   * Tabela zawiera następujące pola:

     * `ID`

     * `Date`

     * `Amount`

     Skrypt ładowania

     ```
     Transactions:
     Load * inline [
     ID, Date, Amount
     1, 1/1/2023, 500.67
     2, 1/2/2023, 458.91
     3, 1/3/2023, 12.34
     ];
     ```

3. Załaduj dane i otwórz arkusz. Utwórz nową tabelę i dodaj te pola jako wymiary:

   * `ID`

   * `Date`

   * `Amount`

   Dodaj następujące wyrażenie jako wymiar wyliczany:

   * `=WildMatch(GetUserAttr('userEmail'),'*@qlik.com')>0` w celu sprawdzenia, czy domena e-mail użytkownika jest zgodna z `@qlik.com`.

4. W panelu właściwości wymiaru `Amount` w sekcji Pokaż kolumnę, jeśli dodaj następujące wyrażenie:

   * `=WildMatch(GetUserAttr('userEmail'),'*@qlik.com')>0`, aby wyświetlić kolumnę Amount, jeśli adres e-mail użytkownika będzie zgodny z domeną `qlik.com`.

   Wyrażenie wyświetli kolumnę `Amount` tylko w przypadku tych użytkowników, których domena adresu e-mail zawiera `@qlik.com`. Kolumna będzie ukryta w przypadku użytkowników z innymi nazwami domen.

Results table 1 - User with email address: `user@qlik.com`user@qlik.com

| ID | Date | Amount | WildMatch(GetUserAttr('userEmail'),'\*@qlik.com')&gt;0 |
| --- | --- | --- | --- |
| 1 | 1/1/2023 | 500.67 | -1 |
| 2 | 1/2/2023 | 458.91 | -1 |
| 3 | 1/3/2023 | 12.34 | -1 |

Results table 2 - User with email address: `user@gmail.com`user@gmail.com

| ID | Date | WildMatch(GetUserAttr('userEmail'),'\*@qlik.com')&gt;0 |
| --- | --- | --- |
| 1 | 1/1/2023 | 0 |
| 2 | 1/2/2023 | 0 |
| 3 | 1/3/2023 | 0 |

W tym przykładzie można zobaczyć, jak funkcja `GetUserAttr` jest używana do warunkowego ukrywania lub pokazywania określonej kolumny. Kolumna `Amount` jest wyświetlana w pierwszej tabeli, ponieważ adres e-mail użytkownika przeglądającego aplikację zawiera domenę `@qlik.com`, a wyrażenie wymiaru w kolumnie 4 zwraca `-1`. Kolumna `Amount` jest ukryta w wynikach w drugiej tabeli, ponieważ użytkownik nie ma adresu e-mail z domeną `qlik.com`.