# GetUserAttr Fonction de script et de graphique

La fonction GetUserAttr() renvoie les informations suivantes pour l'utilisateur qui accède à une application :

* Adresse e-mail

* Objet

* Groupes auxquels l'utilisateur appartient, tels que les groupes de fournisseurs d'identité (IdP) et les groupes personnalisés

* Langue préférée

* Fuseau horaire

Utilisez la fonction GetSysAttr() directement dans le script de chargement ou dans une expression de graphique. Dans l'un ou l'autre cas, vous pouvez utiliser la fonction pour stocker des attributs dans une variable ou directement sans variable. Si vous utilisez cette fonction dans Qlik Sense Client-Managed, elle renvoie uniquement des valeurs de données vides. Par conséquent, vous pouvez utiliser la fonction pour développer des scripts dans Qlik Sense Client-Managed sans rencontrer d'erreurs, dans l'intention de charger ultérieurement les applications dans Qlik Cloud.

Syntaxe :

GetUserAttr(name)

Type de données renvoyé : double

Arguments

| Argument | Description |
| --- | --- |
| name | Nom de l'attribut à renvoyer. Saisissez cette valeur sous forme de chaîne dans l'expression. La valeur de chaîne saisie est sensible à la casse. |

Utilisez la fonction pour charger des attributs utilisateur dans votre application. La fonction peut renvoyer les attributs suivants :

Attributs utilisateur susceptibles d'être renvoyés par la fonction GetUserAttr()GetUserAttr()

| Attribut | Description | Exemple de variable de script de chargement | Exemple d'expression de graphique (sans variable) | Exemple de résultats d'expression de graphique |
| --- | --- | --- | --- | --- |
| userEmail | E-mail de l'utilisateur actif. | `Let vUserEmail = GetUserAttr('userEmail')` | `=GetUserAttr('userEmail')` | `john.doe@company.com` |
| userSubject | Objet de l'utilisateur actif. | `Let vUserSubject = GetUserAttr('userSubject')` | `=GetUserAttr('userSubject')` | `00uss7ra3dk9doJln0x7` |
| userGroups | Groupes (d'IdP et/ou personnalisés) auxquels appartient l'utilisateur actif. Renvoie une liste de groupes séparés par des virgules dans une chaîne. Par défaut, `GetUserAttr` renvoie les groupes d'IdP, sauf si la variable système `QlikCloudGroupMode` est définie dans une instruction de script de chargement.<br><br>[QlikCloudGroupMode](https://help.qlik.com/fr-FR/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/SystemVariables/QlikCloudGroupMode.htm). | `Let vUserGroups = GetUserAttr('userGroups')` | `=GetUserAttr('userGroups')` | `Sales,Product-Lead,OKTA-Github-RnD` |
| userLocale | Langue préférée de l'utilisateur, qui est définie dans les Paramètres de l'utilisateur.<br><br>[Gestion de vos paramètres personnels](https://help.qlik.com/fr-FR/cloud-services/Subsystems/Hub/Content/Sense_Hub/Introduction/profile-settings.htm) | `Let vUserLocale = GetUserAttr('userLocale')` | `=GetUserAttr('userLocale')` | `en` |
| userZoneinfo | Fuseau horaire de l'utilisateur, qui est défini dans les Paramètres de l'utilisateur.<br><br>[Gestion de vos paramètres personnels](https://help.qlik.com/fr-FR/cloud-services/Subsystems/Hub/Content/Sense_Hub/Introduction/profile-settings.htm) | `Let vUserLanguage = GetUserAttr('userZoneinfo')` | `=GetUserAttr('userZoneinfo')` | `Europe/London` |

## Cas d'utilisation de GetUserAttr

Cette fonction renvoie les propriétés et les groupes d'utilisateurs de l'utilisateur actuel de l'application. Cela vous permet de créer des solutions qui personnalisent le contenu qui apparaît pour vos utilisateurs. Par exemple, dans une application commerciale globale, vous pouvez afficher des feuilles spécifiques à des produits aux seuls représentants commerciaux chargés d'un groupe de produits en particulier. Utilisez la fonction dans des instructions LOAD dans le script de chargement de l'application ou dans des expressions de graphique, soit directement sous forme d'expression, soit dans une expression stockée sous forme de variable.

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

## Exemple - Stockage des attributs utilisateur sous forme de variables dans le script

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

#### Expressions de graphique et variables de script de chargement

Cet exemple définit un ensemble de variables de script qui peuvent être utilisées dans le contenu de l'application que vous créez. À chaque chargement de l'application, les attributs sont évalués et ajoutés à l'application.

Procédez comme suit :

1. Créez une nouvelle application Qlik Sense.

2. Ouvrez l'éditeur de chargement de données et ajoutez le script de chargement ci-dessous à une nouvelle section. Le script de chargement contient :

   * Nouvelle table, appelée `Transactions`, avec des échantillons de données de transaction. Elles peuvent être remplacées par n'importe quelles données et sont ajoutées comme paramètres fictifs.

   * Instruction de script qui attribue la valeur `2` à la variable système `QlikCloudGroupMode`. L'attribut `userGroups` renverra les groupes d'IdP et les groupes personnalisés auxquels appartient l'utilisateur.

   * Série de définitions de variable de script, pour les attributs disponibles que la fonction GetUserAttr peut renvoyer.

     ```
     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. Chargez les données et ouvrez une nouvelle feuille en mode d'édition avancé.

4. Créez une table et ajoutez les expressions suivantes sous forme de dimensions :

   * `=vUserEmail`

   * `=vUserSubject`

   * `=vUserGroups`, ce qui renvoie une liste séparée par des virgules dans une chaîne

   * `=vUserLocale`

   * `=vUserZoneinfo`

Note ConseilVous pouvez ajouter une étiquette de dimension telle que E-mail de l'utilisateur pour améliorer la lisibilité lorsque vous créez la dimension.

La sortie de la table affiche dynamiquement les attributs utilisateur disponibles. Le tableau suivant montre un exemple de résultats renvoyés à l'aide de la fonction `GetUserAttr`.

Tableau de résultats

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

## Exemple – Stockage d'attributs utilisateur sous forme de variables et leur utilisation dans des expressions de graphique

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

#### Variables et expressions de graphique

Dans cet exemple, au lieu de définir des variables dans le script de chargement, les variables sont définies dans l'application. Une fois définies, les variables peuvent être utilisées dans des expressions de graphique dans l'application. Le principal avantage de l'utilisation de la fonction dans des expressions de graphique réside dans le fait que les attributs sont automatiquement actualisés sans besoin de charger l'application. Cela facilite le déplacement des applications entre utilisateurs dans le cadre de leur cycle de vie.

Procédez comme suit :

1. Créez une nouvelle application Qlik Sense.

2. Ouvrez une nouvelle feuille en mode d'édition avancé

3. Ouvrez la boîte de dialogue Variables.

4. Sélectionnez Créer, puis procédez comme suit :

   * Sous Nom, saisissez vUserEmail.

   * Sous Définition, saisissez =GetUserAttr('userEmail').

   * Sélectionnez Créer.

   Une variable d'application est créée pour afficher l'adresse e-mail de l'utilisateur. Répétez cette étape pour créer une variable pour les attributs restants à l'aide des paramètres suivants :

   * Objet de l'utilisateur

     * Nom : vUserSubject

     * Définition : =GetUserAttr('userSubject')

   * Groupes d'utilisateurs

     * Nom : vUserGroups

     * Définition : =GetUserAttr('userGroups')

   * Paramètres régionaux de l'utilisateur

     * Nom : vUserLocale

     * Définition : =GetUserAttr('userLocale')

   * Zoneinfo de l'utilisateur

     * Nom : vUserZoneinfo

     * Définition : =GetUserAttr('userZoneinfo')

5. Créez une table et ajoutez les expressions suivantes sous forme de dimensions :

   * `=vUserEmail`

   * `=vUserSubject`

   * `=vUserGroups` (renvoie une liste séparée par des virgules dans une chaîne)

   * `=vUserLocale`

   * `=vUserZoneinfo`

Note ConseilVous pouvez ajouter une étiquette de dimension telle que E-mail de l'utilisateur pour améliorer la lisibilité lorsque vous créez la dimension.

La sortie de la nouvelle table affiche dynamiquement les attributs utilisateur disponibles. Le tableau suivant montre un exemple de résultats renvoyés par la fonction `GetUserAttr`.

Tableau de résultats

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

Note InformationsPar défaut, la fonction `GetUserAttr('userGroups')` renvoie les groupes d'IdP de l'utilisateur. Vous pouvez sélectionner les groupes renvoyés en définissant la variable système `QlikCloudGroupMode` dans une instruction de script. Par exemple, `Set QlikCloudGroupMode = 2` renvoie à la fois les groupes d'IdP et les groupes personnalisés. Pour plus d'informations, consultez [QlikCloudGroupMode](https://help.qlik.com/fr-FR/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/SystemVariables/QlikCloudGroupMode.htm).

## Exemple – Utilisation de la fonction GetUserAttr dans le script de chargement

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

#### Script de chargement

Vous pouvez également utiliser la fonction dans vos applications sans variable. Cet exemple montre comment charger une table avec chaque attribut sous forme de champ individuel. Ensuite, vous pouvez créer des visualisations dans l'application pour afficher ces détails.

Procédez comme suit :

1. Créez une nouvelle application Qlik Sense.

2. Ouvrez l'éditeur de chargement de données et ajoutez le script de chargement ci-dessous à une nouvelle section. Le script de chargement contient :

   * Nouvelle table, appelée `Attributes`, contenant chaque attribut sous forme de champ.

   * Instruction de script qui attribue la valeur `1` à la variable système `QlikCloudGroupMode` pour les groupes personnalisés. L'attribut `userGroups` renverra uniquement les groupes personnalisés auxquels appartient l'utilisateur.

   ```
   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. Charger les données. Une table est créée dans le modèle de données qui affiche chacun des attributs dans des champs individuels.

   Vous pouvez maintenant utiliser les champs d'attribut dans des visualisations comme des tables ou des objets Texte et image.

## Exemple – Utilisation de la fonction GetUserAttr dans des expressions de graphique

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

#### Expressions de graphique

Vous pouvez saisir la fonction directement dans des expressions de graphique sans utiliser de variable. Les attributs utilisateur seront actualisés sans besoin de charger l'application. Cela facilite le déplacement des applications entre utilisateurs dans le cadre de leur cycle de vie.

Procédez comme suit :

1. Créez une nouvelle application Qlik Sense.

2. Ouvrez une nouvelle feuille en mode d'édition avancé

3. Faites glisser un objet Texte et image sur la feuille.

4. Cliquez à l'intérieur du graphique vide et saisissez l'étiquette suivante :

   E-mail de l'utilisateur :

5. Dans le panneau des propriétés, sélectionnez Ajouter une mesure.

6. Saisissez l'expression suivante :

   * =GetUserAttr('userEmail')

7. Ajoutez des étiquettes et des mesures pour les autres attributs sur de nouvelles lignes. Utilisez les expressions suivantes pour chaque attribut :

   * =GetUserAttr('userSubject'), pour l'objet de l'utilisateur

   * =GetUserAttr('userGroups'), pour les groupes d'utilisateurs

   * =GetUserAttr('userLocale'), pour les paramètres régionaux de l'utilisateur

   * =GetUserAttr('userZoneinfo'), pour Zoneinfo de l'utilisateur​

Note InformationsPar défaut, la fonction `GetUserAttr('userGroups')` renvoie les groupes d'IdP de l'utilisateur. Vous pouvez sélectionner les groupes renvoyés en définissant la variable système `QlikCloudGroupMode` dans une instruction de script. Par exemple, `Set QlikCloudGroupMode = 2` renvoie à la fois les groupes d'IdP et les groupes personnalisés. Pour plus d'informations, consultez [QlikCloudGroupMode](https://help.qlik.com/fr-FR/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/SystemVariables/QlikCloudGroupMode.htm).

## Exemple - Masquage conditionnel d'une colonne à l'aide d'une expression de graphique

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

#### Expressions de graphique

Vue d'ensemble

Cet exemple montre comment afficher ou masquer une colonne d'un tableau en fonction du domaine de l'adresse e-mail de l'utilisateur.

Procédez comme suit :

1. Créez une nouvelle application Qlik Sense.

2. Ouvrez l'éditeur de chargement de données et ajoutez le script de chargement ci-dessous à une nouvelle section. Le script de chargement contient :

   * Jeu de données chargé dans une table appelée `Transactions`.

   * Champs suivants dans la table de données :

     * `ID`

     * `Date`

     * `Amount`

     Script de chargement

     ```
     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. Chargez les données et ouvrez une feuille. Créez une table et ajoutez ces champs comme dimensions :

   * `ID`

   * `Date`

   * `Amount`

   Ajoutez l'expression suivante sous forme de dimension calculée :

   * `=WildMatch(GetUserAttr('userEmail'),'*@qlik.com')>0`, pour vérifier si le domaine e-mail de l'utilisateur correspond à `@qlik.com`.

4. Dans le panneau des propriétés de la dimension `Amount`, sous Afficher la colonne si, ajoutez l'expression suivante :

   * `=WildMatch(GetUserAttr('userEmail'),'*@qlik.com')>0`, pour afficher la colonne Amount si l'e-mail de l'utilisateur correspond au domaine `qlik.com`.

   L'expression affichera la colonne `Amount` uniquement pour les utilisateurs dont le domaine d'adresse e-mail contient `@qlik.com`. La colonne sera masquée pour les utilisateurs ayant d'autres noms de domaine.

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 |

Dans cet exemple, vous pouvez voir comment utiliser la fonction `GetUserAttr` pour masquer ou afficher conditionnellement une colonne donnée. La colonne `Amount` apparaît dans le premier tableau, car l'adresse e-mail de l'utilisateur qui consulte l'application contient le domaine `@qlik.com`, et l'expression de dimension de la colonne 4 renvoie `-1`. La colonne `Amount` est masquée dans les résultats du deuxième tableau, car l'utilisateur n'a pas d'adresse e-mail comportant le domaine `qlik.com`.