# HämtaAnvändarAttribut Skript- och diagramfunktion

Funktionen GetUserAttr() returnerar följande information för den användare som öppnar en applikation:

* E-postadress

* Ämne

* Grupper som användaren tillhör, t.ex. IdP-grupper (Identity provider) och anpassade grupper

* Önskat språk

* Tidszon

Använd funktionen GetUserAttr() direkt i laddningsskriptet eller i ett diagramuttryck. I båda fallen kan du använda funktionen för att lagra attribut i en variabel eller direkt utan variabel. Om du använder funktionen i För klienthanterat Qlik Sense kommer den bara att returnera tomma datavärden. Alltså kan du använda funktionen för att ta fram skript i För klienthanterat Qlik Sense utan att fel inträffar, i syfte att senare kunna läsa in applikationerna till Qlik Cloud.

Syntax:

GetUserAttr(name)

Returnerad datatyp: dual

Argument

| Argument | Beskrivning |
| --- | --- |
| name | Namn på det attribut som ska returneras. Ange som ett strängvärde i uttrycket. Det angivna strängvärdet är skiftlägeskänsligt. |

Använd funktionen för att läsa in användarattribut i din app. Funktionen kan returnera följande attribut:

Användarattribut som kan returneras av funktionen GetUserAttr()GetUserAttr()

| Attribut | Beskrivning | Exempel på variabel i inläsningsskript | Exempel på diagramuttryck (ingen variabel) | Exempel på diagramuttrycksresultat |
| --- | --- | --- | --- | --- |
| userEmail | E-postadressen för aktuell användare. | `Let vUserEmail = GetUserAttr('userEmail')` | `=GetUserAttr('userEmail')` | `john.doe@company.com` |
| userSubject | Ämnet för aktuell användare. | `Let vUserSubject = GetUserAttr('userSubject')` | `=GetUserAttr('userSubject')` | `00uss7ra3dk9doJln0x7` |
| userGroups | De grupper (IdP, anpassade eller båda) som den aktuella användaren tillhör. Returnerar en kommaseparerad lista över grupper i en sträng. `GetUserAttr` returnerar IdP-grupper som standard, om inte systemvariabeln `QlikCloudGroupMode` har angetts i en laddningsskriptsats.<br><br>[QlikCloudGroupMode](https://help.qlik.com/sv-SE/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/SystemVariables/QlikCloudGroupMode.htm). | `Let vUserGroups = GetUserAttr('userGroups')` | `=GetUserAttr('userGroups')` | `Sales,Product-Lead,OKTA-Github-RnD` |
| userLocale | Det språk som användaren föredrar, vilket anges i användarens Inställningar.<br><br>[Hantera dina personliga inställningar](https://help.qlik.com/sv-SE/cloud-services/Subsystems/Hub/Content/Sense_Hub/Introduction/profile-settings.htm) | `Let vUserLocale = GetUserAttr('userLocale')` | `=GetUserAttr('userLocale')` | `en` |
| userZoneinfo | Användarens tidszon, vilket anges i användarens inställningar.<br><br>[Hantera dina personliga inställningar](https://help.qlik.com/sv-SE/cloud-services/Subsystems/Hub/Content/Sense_Hub/Introduction/profile-settings.htm) | `Let vUserLanguage = GetUserAttr('userZoneinfo')` | `=GetUserAttr('userZoneinfo')` | `Europe/London` |

## När ska du använda GetUserAttr

Denna funktion returnerar användaregenskaper och grupper för den aktuella användaren av applikationen. Detta gör att du kan bygga lösningar som anpassar innehållet som visas för dina användare. I en global försäljningsapplikation kan du t.ex. visa produktspecifika ark för endast de säljare som är ansvariga för en viss produktgrupp. Använd funktionen i load-satser i appens laddningsskript eller i diagramuttryck, antingen direkt som ett uttryck eller i ett uttryck som har lagrats som en variabel.

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

## Exempel – Lagra användarattribut som variabler i skriptet

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

#### Laddningsskriptsvariabler och diagramuttryck

Det här exemplet definierar en uppsättning skript-variabler som kan användas i appinnehåll som du skapar. Varje gång applikationen läses in utvärderas attributen och läggs till i applikationen.

Gör följande:

1. Skapa en ny Qlik Sense applikation.

2. Öppna dataladdningsredigeraren och lägg till laddningsskriptet nedan i ett nytt delavsnitt. Laddningsskriptet innehåller:

   * En ny tabell, som heter `Transactions`, innehåller exempeltransaktionsdata. Den kan ersättas med vilka data som helst och läggs till som en platshållare.

   * Ett skript som ställer in systemvariabeln `QlikCloudGroupMode` till `2`. Attributet `userGroups` returnerar både IdP och de anpassade grupper som användaren tillhör.

   * En serie definitioner av skriptvariabler för tillgängliga attribut som funktionen GetUserAttr kan returnera.

     ```
     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. Läs in dina data och öppna ett nytt ark i avancerat redigeringsläge.

4. Skapa en tabell och lägg till följande uttryck som dimensioner:

   * `=vUserEmail`

   * `=vUserSubject`

   * `=vUserGroups` returnerar en kommaseparerad lista i en sträng

   * `=vUserLocale`

   * `=vUserZoneinfo`

Anteckning om tipsDu kan lägga till en dimensionsetikett, t.ex. User Email, för att förbättra läsbarheten när du skapar dimensionen.

Utdata i tabellen visar dynamiskt de tillgängliga användarattributen. Följande tabell visar ett exempel på resultat som returneras med hjälp av funktionen `GetUserAttr`.

Resultattabell

| =vUserEmail | =vUserSubject | =vUserGroups | =vUserLocale | =vUserZoneinfo |
| --- | --- | --- | --- | --- |
| john.doe@company.com | 00uss7ra3dk9doJln0x7 | Försäljning,Produktansvarig,OKTA-Github-FoU | sv | Amerika/Toronto |

## Exempel – Lagra användarattribut som variabler och använda dem i diagramuttryck

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

#### Variabler och diagramuttryck

I det här exemplet definieras variabler i applikationen istället för att definieras i laddningsskriptet. När variablerna har definierats kan de användas i diagramuttryck i applikationen. Den största fördelen med att använda funktionen i diagramuttryck är att attributen uppdateras automatiskt utan att behöva ladda om applikationen. Detta möjliggör smidigare förflyttning av applikationer mellan användare som en del av applikationslivscykeln.

Gör följande:

1. Skapa en ny Qlik Sense applikation.

2. Öppna ett nytt ark i avancerat redigeringsläge.

3. Öppna dialogrutan variabler.

4. Välj Skapa ny och gör sedan följande:

   * Under Namn skriver du vUserEmail.

   * Under Definition skriver du =GetUserAttr('userEmail').

   * Välj Skapa.

   En applikationsvariabel skapas för att visa användarens e-postadress. Upprepa detta steg för att skapa en variabel för de återstående attributen med hjälp av följande parametrar:

   * Användare Ämne

     * Namn: vUserSubject

     * Definition: =GetUserAttr('userSubject')

   * Användargrupper

     * Namn: vUserGroups

     * Definition: =GetUserAttr('userSubject')

   * Användarens plats

     * Namn: vUserLocale

     * Definition: =GetUserAttr('userLocale')

   * Zoninfo användare

     * Namn: vUserZoneinfo

     * Definition: =GetUserAttr('userZoneinfo')

5. Skapa en tabell och lägg till följande uttryck som dimensioner:

   * `=vUserEmail`

   * `=vUserSubject`

   * `=vUserGroups` (returnerar en kommaseparerad lista i en sträng)

   * `=vUserLocale`

   * `=vUserZoneinfo`

Anteckning om tipsDu kan lägga till en dimensionsetikett, t.ex. User Email, för att förbättra läsbarheten när du skapar dimensionen.

Utdata i den nya tabellen visar de tillgängliga användarattributen dynamiskt. Följande tabell visar ett exempel på resultat som returneras med hjälp av funktionen `GetUserAttr`.

Resultattabell

| =vUserEmail | =vUserSubject | =vUserGroups | =vUserLocale | =vUserZoneinfo |
| --- | --- | --- | --- | --- |
| john.doe@company.com | 00uss7ra3dk9doJln0x7 | Försäljning,Produktansvarig,OKTA-Github-FoU | sv | Amerika/Toronto |

Anteckning om informationFunktionen `GetUserAttr('userGroups')`returnerar IdP-grupperna för användaren som standard. Du kan välja vilka grupper som ska returneras genom att ställa in systemvariabeln `QlikCloudGroupMode` i en skriptsats, t.ex. `Set QlikCloudGroupMode = 2` returnerar både IdP och anpassade grupper. Mer information finns i [QlikCloudGroupMode](https://help.qlik.com/sv-SE/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/SystemVariables/QlikCloudGroupMode.htm).

## Exempel – Använda funktionen GetUserAttr direkt i laddningsskriptet

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

#### Laddningsskript

Du kan även använda funktionen i dina applikationer utan en variabel. I det här exemplet ser du hur du kan läsa in en tabell med vart och ett av attributen som enskilt fält. Utifrån detta kan du skapa visualiseringar i applikationen för att visa dessa detaljer.

Gör följande:

1. Skapa en ny Qlik Sense applikation.

2. Öppna dataladdningsredigeraren och lägg till laddningsskriptet nedan i ett nytt delavsnitt. Laddningsskriptet innehåller:

   * En ny tabell som heter `Attributes`, som innehåller varje attribut som ett fält.

   * En skriptsats som ställer in systemvariabeln `QlikCloudGroupMode` till `1` för anpassade grupper. Attributet `userGroups` returnerar enbart anpassade grupper som användaren tillhör.

   ```
   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. Ladda data. En tabell skapas i datamodellen och visar vart och ett av attributen i enskilda fält.

   Nu kan du använda attributfälten i visualiseringar, som tabeller eller text- och bildobjekt.

## Exempel – Använda GetUserAttr-funktionen direkt i diagramuttryck

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

#### Diagramuttryck

Du kan ange funktionen direkt i diagramuttryck utan att använda någon variabel. Användarattributen uppdateras utan att behöva ladda om applikationen. Detta möjliggör smidigare förflyttning av applikationer mellan användare som en del av applikationens livscykel.

Gör följande:

1. Skapa en ny Qlik Sense applikation.

2. Öppna ett nytt ark i avancerat redigeringsläge.

3. Dra ett text- och bildobjekt till arket.

4. Klicka inuti det tomma diagrammet och ange följande etikett:

   Användarens e-post:

5. Välj lägg till mått i egenskaps-panelen.

6. Ange följande uttryck:

   * =GetUserAttr('userEmail')

7. Lägg till etiketter och mått för de andra attributen på nya rader. Använd följande uttryck för varje attribut:

   * =GetUserAttr('userSubject'), för användarens ämne

   * =GetUserAttr('userGroups'), för användargrupper

   * =GetUserAttr('userLocale'), för användarens plats

   * =GetUserAttr('userZoneinfo'), för uppgifter om användarens zon​

Anteckning om informationFunktionen `GetUserAttr('userGroups')`returnerar IdP-grupperna för användaren som standard. Du kan välja vilka grupper som ska returneras genom att ställa in systemvariabeln `QlikCloudGroupMode` i en skriptsats, t.ex. `Set QlikCloudGroupMode = 2` returnerar både IdP och anpassade grupper. Mer information finns i [QlikCloudGroupMode](https://help.qlik.com/sv-SE/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/SystemVariables/QlikCloudGroupMode.htm).

## Exempel – Dölja en kolumn villkorligt med hjälp av ett diagramuttryck

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

#### Diagramuttryck

Översikt

I det här exemplet visas eller döljs en kolumn i en tabell baserat på domänen för användarens e-postadress.

Gör följande:

1. Skapa en ny Qlik Sense applikation.

2. Öppna dataladdningsredigeraren och lägg till laddningsskriptet nedan i ett nytt delavsnitt. Laddningsskriptet innehåller:

   * En datauppsättning läses in i en tabell som heter `Transactions`.

   * Följande fält i datatabellen:

     * `ID`

     * `Date`

     * `Amount`

     Laddningsskript

     ```
     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. Ladda data och öppna ett ark. Skapa en ny tabell och lägg till dessa fält som dimensioner:

   * `ID`

   * `Date`

   * `Amount`

   Lägg till följande uttryck som en beräknad dimension:

   * `=WildMatch(GetUserAttr('userEmail'),'*@qlik.com')>0`, för att kontrollera om användarens e-postdomän matchar `@qlik.com`.

4. I egenskapspanelen för dimensionen `Amount`, under Visa kolumn om, lägger du till följande uttryck:

   * `=WildMatch(GetUserAttr('userEmail'),'*@qlik.com')>0`, för att visa kolumnen Belopp om användarens e-postadress matchar domänen `qlik.com`.

   Uttrycket kommer endast att visa kolumnen `Amount` för de användare med en e-postadressdomän innehåller `@qlik.com`. Kolumnen kommer att vara dold för användare med andra domännamn.

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 |

I det här exemplet kan du se hur funktionen `GetUserAttr` används för att villkorligt dölja eller visa en viss kolumn. Kolumnen `Amount` visas i den första tabellen eftersom e-postadressen för den användare som visar applikationen innehåller domänen `@qlik.com`, och uttrycket för dimensionen i kolumn 4 returnerar `-1`. Kolumnen `Amount` är dold från resultaten i den andra tabellen eftersom användaren inte har någon e-postadress med domänen `qlik.com`.