# GetUserAttr Skript- und Diagrammfunktion

Die Funktion GetUserAttr() gibt die folgenden Informationen für den Benutzer zurück, der auf eine Anwendung zugreift:

* E-Mail-Adresse

* Antragsteller

* Gruppen, zu denen der Benutzer gehört, wie z. B. Identitätsanbietergruppen (IdP-Gruppen) und benutzerdefinierte Gruppen

* Bevorzugte Sprache

* Zeitzone

Verwenden Sie die Funktion GetUserAttr() direkt im Ladeskript oder in einer Diagrammformel. In beiden Fällen können Sie die Funktion verwenden, um Attribute in einer Variablen oder direkt ohne Variablen zu speichern. Wenn Sie diese Funktion in Qlik Sense clientverwaltet verwenden, werden nur leere Datenwerte zurückgegeben. Daher können Sie die Funktion zum Entwickeln von Skripten in Qlik Sense clientverwaltet verwenden, ohne dass Fehler auftreten, wenn Sie die Absicht haben, die Anwendungen später an Qlik Cloud hochzuladen.

Syntax:

GetUserAttr(name)

Rückgabe Datentyp: dual

Argumente

| Argument | Beschreibung |
| --- | --- |
| name | Der Name des Attributs, das zurückgegeben werden soll. Geben Sie ihn als Zeichenfolgenwert in die Formel ein. Beim eingegebenen Zeichenfolgenwert wird die Groß- und Kleinschreibung unterschieden. |

Verwenden Sie die Funktion zum Laden von Benutzerattributen in die Anwendung. Die Funktion kann die folgenden Attribute zurückgeben:

Benutzerattribute, die von der Funktion GetUserAttr()GetUserAttr() zurückgegeben werden können

| Attribut | Beschreibung | Beispiel einer Ladeskriptvariablen | Beispiel einer Diagrammformel (keine Variable) | Beispiel für Diagrammformelergebnisse |
| --- | --- | --- | --- | --- |
| userEmail | Die E-Mail des aktuellen Benutzers | `Let vUserEmail = GetUserAttr('userEmail')` | `=GetUserAttr('userEmail')` | `john.doe@company.com` |
| userSubject | Der Betreff des aktuellen Benutzers | `Let vUserSubject = GetUserAttr('userSubject')` | `=GetUserAttr('userSubject')` | `00uss7ra3dk9doJln0x7` |
| userGroups | Die Gruppen (IdP, benutzerdefiniert oder beide), denen der aktuelle Benutzer angehört. Gibt eine kommagetrennte Liste der Gruppen in einem String zurück. Standardmäßig gibt `GetUserAttr` IdP-Gruppen zurück, es sei denn, die Systemvariable `QlikCloudGroupMode` ist in einer load-Anweisung des Skripts festgelegt.<br><br>[QlikCloudGroupMode](https://help.qlik.com/de-DE/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/SystemVariables/QlikCloudGroupMode.htm). | `Let vUserGroups = GetUserAttr('userGroups')` | `=GetUserAttr('userGroups')` | `Sales,Product-Lead,OKTA-Github-RnD` |
| userLocale | Die bevorzugte Sprache des Benutzers, die in den Einstellungen des Benutzers festgelegt ist.<br><br>[Verwaltung Ihrer persönlichen Einstellungen](https://help.qlik.com/de-DE/cloud-services/Subsystems/Hub/Content/Sense_Hub/Introduction/profile-settings.htm) | `Let vUserLocale = GetUserAttr('userLocale')` | `=GetUserAttr('userLocale')` | `en` |
| userZoneinfo | Die Zeitzone des Benutzers, die in den Einstellungen des Benutzers festgelegt ist.<br><br>[Verwaltung Ihrer persönlichen Einstellungen](https://help.qlik.com/de-DE/cloud-services/Subsystems/Hub/Content/Sense_Hub/Introduction/profile-settings.htm) | `Let vUserLanguage = GetUserAttr('userZoneinfo')` | `=GetUserAttr('userZoneinfo')` | `Europe/London` |

## Verwendung von GetUserAttr

Diese Funktion gibt Benutzereigenschaften und Gruppen für den aktuellen Benutzer der Anwendung zurück. Damit können Sie Lösungen erstellen, die den angezeigten Inhalt je nach Benutzer anpassen. In einer globalen Vertriebsanwendung können Sie beispielsweise produktspezifische Arbeitsblätter nur denjenigen Vertriebsmitarbeitern zeigen, die für eine bestimmte Produktgruppe zuständig sind. Diese Funktion kann in load-Anweisungen im Ladeskript der Anwendung oder in Diagrammformeln verwendet werden, entweder direkt als Formel oder in einer als Variable gespeicherten Formel.

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

## Beispiel – Speichern von Benutzerattributen als Variablen im Skript

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

#### Ladeskriptvariablen und Diagrammformeln

In diesem Beispiel wird eine Reihe von Skriptvariablen definiert, die in den von Ihnen erstellten Anwendungsinhalten verwendet werden können. Bei jedem Laden der Anwendung werden die Attribute ausgewertet und zur Anwendung hinzugefügt.

Gehen Sie folgendermaßen vor:

1. Erstellen Sie eine neue Qlik Sense Anwendung.

2. Öffnen Sie den Dateneditor und fügen Sie das Ladeskript unten in einen neuen Abschnitt ein. Das Ladeskript umfasst:

   * Eine neue Tabelle mit dem Namen `Transactions` mit Beispieltransaktionsdaten. Sie kann durch beliebige Daten ersetzt werden und wird als Platzhalter hinzugefügt.

   * Eine Skript-Anweisung, die die Systemvariable `QlikCloudGroupMode` auf `2` festlegt. Das Attribut `userGroups` gibt sowohl die IdP- als auch die benutzerdefinierten Gruppen zurück, zu denen der Benutzer gehört.

   * Eine Reihe von Skriptvariablendefinitionen für die verfügbaren Attribute, die von der Funktion GetUserAttr() zurückgegeben werden können.

     ```
     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. Laden Sie die Daten und öffnen Sie ein neues Arbeitsblatt im erweiterten Bearbeitungsmodus.

4. Erstellen Sie eine Tabelle und fügen Sie die folgenden Ausdrücke als Dimensionen hinzu:

   * `=vUserEmail`

   * `=vUserSubject`

   * `=vUserGroups` – gibt eine kommagetrennte Liste in einem String zurück

   * `=vUserLocale`

   * `=vUserZoneinfo`

TipphinweisSie können zur besseren Lesbarkeit bei der Erstellung der Dimension eine Dimensionsbezeichnung hinzufügen, z. B. Benutzer-E-Mail.

Die Ausgabe in der Tabelle zeigt die verfügbaren Benutzerattribute dynamisch an. Die folgende Tabelle zeigt ein Beispiel für die Ergebnisse, die von der Funktion `GetUserAttr` zurückgegeben werden.

Ergebnistabelle

| =vUserEmail | =vUserSubject | =vUserGroups | =vUserLocale | =vUserZoneinfo |
| --- | --- | --- | --- | --- |
| john.doe@company.com | 00uss7ra3dk9doJln0x7 | Sales,Product-Lead,OKTA-Github-RnD | en | Amerika/Toronto |

## Beispiel – Speichern von Benutzerattributen als Variablen und Verwendung der Variablen in Diagrammformeln

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

#### Variablen und Diagrammformeln

In diesem Beispiel werden Variablen nicht im Ladeskript, sondern in der Anwendung definiert. Diese Variablen können dann in Diagrammformeln in der Anwendung verwendet werden. Der Hauptvorteil beim Verwenden der Funktion in Diagrammformeln besteht darin, dass die Attribute automatisch aktualisiert werden, ohne dass die Anwendung geladen werden muss. Dies ermöglicht ein einfacheres Verschieben von Anwendungen zwischen Benutzern als Teil des Anwendungs-Lebenszyklus.

Gehen Sie folgendermaßen vor:

1. Erstellen Sie eine neue Qlik Sense Anwendung.

2. Öffnen Sie ein neues Arbeitsblatt im erweiterten Bearbeitungsmodus.

3. Öffnen Sie das Dialogfeld „Variablen“.

4. Wählen Sie Neu erstellen aus und gehen Sie dann wie folgt vor:

   * Geben Sie unter NamevUserEmail ein.

   * Geben Sie unter Definition =GetUserAttr('userEmail') ein.

   * Wählen Sie Erstellen aus.

   Es wird eine Anwendungsvariable erstellt, um die E-Mail-Adresse des Benutzers anzuzeigen. Wiederholen Sie diesen Schritt, um eine Variable für die übrigen Attribute mit den folgenden Parametern zu erstellen:

   * Benutzerbetreff

     * Name: vUserSubject

     * Definition: =GetUserAttr('userSubject')

   * Benutzergruppen

     * Name: vUserGroups

     * Definition: =GetUserAttr('userGroups')

   * Gebietsschema des Benutzers

     * Name: vUserLocale

     * Definition: =GetUserAttr('userLocale')

   * Zoneninformationen des Benutzers

     * Name: vUserZoneinfo

     * Definition: =GetUserAttr('userZoneinfo')

5. Erstellen Sie eine Tabelle und fügen Sie die folgenden Ausdrücke als Dimensionen hinzu:

   * `=vUserEmail`

   * `=vUserSubject`

   * `=vUserGroups` (gibt eine kommagetrennte Liste in einem String zurück)

   * `=vUserLocale`

   * `=vUserZoneinfo`

TipphinweisSie können zur besseren Lesbarkeit bei der Erstellung der Dimension eine Dimensionsbezeichnung hinzufügen, z. B. Benutzer-E-Mail.

Die Ausgabe in der neuen Tabelle zeigt die verfügbaren Benutzerattribute dynamisch an. Die folgende Tabelle zeigt ein Beispiel für die Ergebnisse, die von der Funktion `GetUserAttr` zurückgegeben werden.

Ergebnistabelle

| =vUserEmail | =vUserSubject | =vUserGroups | =vUserLocale | =vUserZoneinfo |
| --- | --- | --- | --- | --- |
| john.doe@company.com | 00uss7ra3dk9doJln0x7 | Sales,Product-Lead,OKTA-Github-RnD | en | Amerika/Toronto |

InformationshinweisDie Funktion `GetUserAttr('userGroups')` gibt standardmäßig die IdP-Gruppen für den Benutzer zurück. Sie können auswählen, welche Gruppen zurückgegeben werden, indem Sie die Systemvariable `QlikCloudGroupMode` in einer Skript-Anweisung festlegen. `Set QlikCloudGroupMode = 2` gibt beispielsweise sowohl IdP- als auch benutzerdefinierte Gruppen zurück. Weitere Informationen finden Sie unter [QlikCloudGroupMode](https://help.qlik.com/de-DE/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/SystemVariables/QlikCloudGroupMode.htm).

## Beispiel – Verwenden der Funktion GetUserAttr im Ladeskript

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

#### Ladeskript

Sie können die Funktion in Ihren Anwendungen auch ohne Variable verwenden. Dieses Beispiel zeigt, wie Sie eine Tabelle mit jedem Attribut als einzelnes Feld laden können. Von hier aus können Sie Visualisierungen in der Anwendung erstellen, um diese Details anzuzeigen.

Gehen Sie folgendermaßen vor:

1. Erstellen Sie eine neue Qlik Sense Anwendung.

2. Öffnen Sie den Dateneditor und fügen Sie das Ladeskript unten in einen neuen Abschnitt ein. Das Ladeskript umfasst:

   * Eine neue Tabelle mit dem Namen `Attributes`, die jedes Attribut als Feld enthält.

   * Eine Skript-Anweisung, die die Systemvariable `QlikCloudGroupMode` für benutzerdefinierte Gruppen auf `1` festlegt. Das Attribut `userGroups` gibt nur die benutzerdefinierten Gruppen zurück, zu denen der Benutzer gehört.

   ```
   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. Laden Sie die Daten. Im Datenmodell wird eine Tabelle erstellt, die jedes der Attribute als einzelnes Feld anzeigt.

   Jetzt können Sie die Attributfelder in Visualisierungen wie Tabellen oder „Text und Bild“-Objekten verwenden.

## Beispiel – Verwenden der Funktion GetUserAttr in Diagrammformeln

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

#### Diagrammformeln

Sie können die Funktion direkt in Diagrammformeln eingeben, ohne eine Variable zu verwenden. Die Benutzerattribute werden aktualisiert, ohne die Anwendung neu laden zu müssen. Dies ermöglicht ein einfacheres Verschieben von Anwendungen zwischen Benutzern als Teil des Anwendungs-Lebenszyklus.

Gehen Sie folgendermaßen vor:

1. Erstellen Sie eine neue Qlik Sense Anwendung.

2. Öffnen Sie ein neues Arbeitsblatt im erweiterten Bearbeitungsmodus.

3. Ziehen Sie ein „Text und Bild“-Objekt auf das Arbeitsblatt.

4. Klicken Sie in das leere Diagramm und geben Sie die folgende Beschriftung ein:

   Benutzer-E-Mail:

5. Wählen Sie im Eigenschaftsfenster Kennzahl hinzufügen aus.

6. Geben Sie die folgende Formel ein:

   * =GetUserAttr('userEmail')

7. Fügen Sie Bezeichnungen und Kennzahlen für die anderen Attribute in neuen Zeilen hinzu. Verwenden Sie die folgenden Formeln für jedes Attribut:

   * =GetUserAttr('userSubject') für den Benutzerbetreff

   * =GetUserAttr('userGroups) für Benutzergruppen

   * =GetUserAttr('userLocale') für Gebietsschema des Benutzers

   * =GetUserAttr('userZoneinfo') für Zoneninformationen des Benutzers​

InformationshinweisDie Funktion `GetUserAttr('userGroups')` gibt standardmäßig die IdP-Gruppen für den Benutzer zurück. Sie können auswählen, welche Gruppen zurückgegeben werden, indem Sie die Systemvariable `QlikCloudGroupMode` in einer Skript-Anweisung festlegen. `Set QlikCloudGroupMode = 2` gibt beispielsweise sowohl IdP- als auch benutzerdefinierte Gruppen zurück. Weitere Informationen finden Sie unter [QlikCloudGroupMode](https://help.qlik.com/de-DE/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/SystemVariables/QlikCloudGroupMode.htm).

## Beispiel – Bedingtes Ausblenden einer Spalte mithilfe einer Diagrammformel

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

#### Diagrammformeln

Übersicht

Dieses Beispiel zeigt eine Spalte in einer Tabelle an oder blendet sie aus, basierend auf der Domäne der E-Mail-Adresse des Benutzers.

Gehen Sie folgendermaßen vor:

1. Erstellen Sie eine neue Qlik Sense Anwendung.

2. Öffnen Sie den Dateneditor und fügen Sie das Ladeskript unten in einen neuen Abschnitt ein. Das Ladeskript umfasst:

   * Datensatz, der in eine Tabelle namens `Transactions` geladen wird

   * Die folgenden Felder in der Datentabelle:

     * `ID`

     * `Date`

     * `Amount`

     Ladeskript

     ```
     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. Laden Sie die Daten und öffnen Sie ein Arbeitsblatt. Erstellen Sie eine neue Tabelle und fügen Sie die folgenden Felder als Dimensionen hinzu:

   * `ID`

   * `Date`

   * `Amount`

   Fügen Sie die folgende Formell als dynamische Dimension hinzu:

   * `=WildMatch(GetUserAttr('userEmail'),'*@qlik.com')>0`, um zu überprüfen, ob die E-Mail-Domäne des Benutzers mit `@qlik.com` übereinstimmt.

4. Fügen Sie im Eigenschaftsfenster der Dimension `Amount` unter Spalte anzeigen, wenn die folgende Formel hinzu:

   * `=WildMatch(GetUserAttr('userEmail'),'*@qlik.com')>0`, um die Spalte „Amount“ anzuzeigen, wenn die E-Mail des Benutzers mit der Domäne `qlik.com` übereinstimmt.

   Die Formel zeigt die Spalte `Amount` nur für die Benutzer an, deren E-Mail-Adressdomäne `@qlik.com` enthält. Die Spalte wird für Benutzer mit anderen Domänennamen ausgeblendet.

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 |

In diesem Beispiel können Sie sehen, wie die Funktion `GetUserAttr` verwendet wird, um eine bestimmte Spalte bedingt ein- oder auszublenden. Die Spalte `Amount` wird in der ersten Tabelle angezeigt, weil die E-Mail-Adresse des Benutzers, der die Anwendung anzeigt, die Domäne `@qlik.com` enthält und die Dimensionsformel in Spalte 4 `-1` zurückgibt. Die Spalte `Amount` ist aus den Ergebnissen der zweiten Tabelle ausgeblendet, da der Benutzer keine E-Mail-Adresse mit der Domäne `qlik.com` hat.