# GetUserAttr Funzione per script e grafici

La funzione GetUserAttr() restituisce le seguenti informazioni per l'utente che accede a un'applicazione:

* Indirizzo e-mail

* Oggetto

* Gruppi a cui l'utente appartiene, come i gruppi dei provider di identità (IdP) e i gruppi personalizzati.

* Lingua preferita

* Fuso orario

Utilizzare la funzione GetUserAttr() direttamente nello script di caricamento o in un'espressione del grafico. In entrambi i casi, è possibile usare la funzione per memorizzare gli attributi in una variabile, oppure direttamente senza una variabile. Se si usa la funzione in Qlik Sense con gestione client, restituisce solo valori dati vuoti. Pertanto, è possibile utilizzare la funzione per sviluppare script in Qlik Sense con gestione client senza rilevare errori, allo scopo di caricare successivamente le applicazioni su Qlik Cloud.

Sintassi:

GetUserAttr(name)

Tipo di dati restituiti: duale

Argomenti

| Argomento | Descrizione |
| --- | --- |
| name | Il nome dell'attributo da restituire. Immetterlo come un valore stringa nell'espressione. Il valore stringa immesso distingue tra le lettere maiuscole e minuscole. |

Usa la funzione per caricare gli attributi utente nella tua applicazione. La funzione può restituire i seguenti attributi:

Attributi utente che possono essere restituiti dalla funzione GetUserAttr()GetUserAttr()

| Attributo | Descrizione | Esempio di variabile dello script di caricamento | Esempio di espressione del grafico (nessuna variabile) | Esempio di risultati delle espressioni del grafico |
| --- | --- | --- | --- | --- |
| userEmail | L'e-mail dell'utente corrente. | `Let vUserEmail = GetUserAttr('userEmail')` | `=GetUserAttr('userEmail')` | `john.doe@company.com` |
| userSubject | L'oggetto dell'utente corrente. | `Let vUserSubject = GetUserAttr('userSubject')` | `=GetUserAttr('userSubject')` | `00uss7ra3dk9doJln0x7` |
| userGroups | I gruppi (IdP, personalizzati o entrambi) di cui è membro l'utente corrente. Restituisce un elenco di elementi separati da virgola in una stringa. Per impostazione predefinita, `GetUserAttr` restituisce i gruppi IdP, a meno che la variabile di sistema `QlikCloudGroupMode` non sia impostata in un'istruzione di caricamento.<br><br>[QlikCloudGroupMode](https://help.qlik.com/it-IT/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/SystemVariables/QlikCloudGroupMode.htm). | `Let vUserGroups = GetUserAttr('userGroups')` | `=GetUserAttr('userGroups')` | `Sales,Product-Lead,OKTA-Github-RnD` |
| userLocale | La lingua preferita dell'utente, che è impostata nelle Impostazioni dell'utente.<br><br>[Gestione delle impostazioni personali](https://help.qlik.com/it-IT/cloud-services/Subsystems/Hub/Content/Sense_Hub/Introduction/profile-settings.htm) | `Let vUserLocale = GetUserAttr('userLocale')` | `=GetUserAttr('userLocale')` | `en` |
| userZoneinfo | Il fuso orario dell'utente, che è impostato nelle impostazioni dell'utente.<br><br>[Gestione delle impostazioni personali](https://help.qlik.com/it-IT/cloud-services/Subsystems/Hub/Content/Sense_Hub/Introduction/profile-settings.htm) | `Let vUserLanguage = GetUserAttr('userZoneinfo')` | `=GetUserAttr('userZoneinfo')` | `Europe/London` |

## Quando usare GetUserAttr

Questa funzione restituisce le proprietà utente e i gruppi per l'utente corrente dell'applicazione. Ciò consente di creare soluzioni che personalizzano il contenuto visualizzato per gli utenti. Ad esempio, in un'applicazione per la vendita globale, è possibile mostrare i fogli specifici di un prodotto solo ai rappresentanti che sono responsabili di un particolare gruppo di prodotti. Usa la funzione nelle istruzioni di caricamento nello script di caricamento dell'applicazione o nelle espressioni del grafico, direttamente come espressione o in un'espressione memorizzata come variabile.

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

## Esempio - Memorizzazione degli attributi utente come variabili nello script

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

#### Variabili degli script di caricamento ed espressioni del grafico

Questo esempio definisce un set di variabili di script che possono essere usate nel contenuto dell'applicazione che crei. Ogni volta che l'applicazione viene ricaricata, gli attributi vengono valutati e aggiunti all'applicazione.

Procedere come indicato di seguito:

1. Crea una nuova applicazione Qlik Sense.

2. Aprire l'Editor caricamento dati e aggiungere lo script di caricamento sotto in una nuova sezione. Lo script di caricamento contiene:

   * Una nuova tabella, denominata `Transactions`, con i dati della transazione di esempio. È possibile sostituire questi ultimi con qualsiasi dato, e vengono aggiunti come segnaposto.

   * L'istruzione di uno script che imposta la variabile di sistema `QlikCloudGroupMode` su `2`. L'attributo `userGroups` restituirà sia i gruppi IdP che quelli personalizzati a cui partecipa l'utente.

   * Una serie di definizioni delle variabili degli script per gli attributi disponibili che può restituire la funzione 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. Caricare i dati e aprire un nuovo foglio in modalità di modifica avanzata.

4. Creare una tabella e aggiungere le seguenti espressioni come dimensioni:

   * `=vUserEmail`

   * `=vUserSubject`

   * `=vUserGroups` restituisce un elenco di elementi separati da virgola in una stringa

   * `=vUserLocale`

   * `=vUserZoneinfo`

Nota di suggerimentoÈ possibile aggiungere un'etichetta di dimensione, ad esempio Email utente, per migliorare la leggibilità quando si crea la dimensione.

L'output della tabella visualizza in modo dinamico gli attributi utente disponibili. La tabella che segue mostra un esempio dei risultati restituiti utilizzando la funzione `GetUserAttr`.

Tabella dei risultati

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

## Esempio: memorizzazione degli attributi utente come variabili e relativo utilizzo nelle espressioni del grafico

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

#### Variabili ed espressioni del grafico

In questo esempio, invece di definire le variabili nello script di caricamento, le variabili vengono definite nell'applicazione. Una volta definite, le variabili possono essere utilizzate nelle espressioni del grafico nell'applicazione. Il vantaggio principale dell'utilizzo della funzione nelle espressioni del grafico è che gli attributi si aggiorneranno automaticamente senza dover ricaricare l'applicazione. Ciò consente un movimento più fluido delle applicazioni tra gli utenti come parte del ciclo di vita dell'applicazione.

Procedere come indicato di seguito:

1. Crea una nuova applicazione Qlik Sense.

2. Aprire un nuovo foglio in modalità di modifica avanzata.

3. Aprire la finestra di dialogo variabili.

4. Selezionare Crea nuovo, quindi fare quanto segue:

   * Alla voce Nome, inserire vUserEmail.

   * Alla voce Definizione, inserire =GetUserAttr('userEmail').

   * Selezionare Crea.

   Viene creata una variabile dell'applicazione per visualizzare l'indirizzo e-mail dell'utente. Ripetere questo passaggio per creare una variabile per gli altri attributi utilizzando i seguenti parametri:

   * Oggetto utente

     * Nome: vUserSubject

     * Definizione: =GetUserAttr('userSubject')

   * Gruppi di utenti

     * Nome: vUserGroups

     * Definizione: =GetUserAttr('userSubject')

   * Impostazioni locali dell'utente

     * Nome: vUserLocale

     * Definizione: =GetUserAttr('userLocale')

   * Info zona utente

     * Nome: vUserZoneinfo

     * Definizione: =GetUserAttr('userZoneinfo')

5. Creare una tabella e aggiungere le seguenti espressioni come dimensioni:

   * `=vUserEmail`

   * `=vUserSubject`

   * `=vUserGroups` (restituisce un elenco di elementi separati da virgola in una stringa)

   * `=vUserLocale`

   * `=vUserZoneinfo`

Nota di suggerimentoÈ possibile aggiungere un'etichetta di dimensione, ad esempio Email utente, per migliorare la leggibilità quando si crea la dimensione.

L'output nella nuova tabella visualizza in modo dinamico gli attributi utente disponibili. La tabella seguente mostra un esempio dei risultati restituiti utilizzando la funzione `GetUserAttr`.

Tabella dei risultati

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

Nota informaticaPer impostazione predefinita, la funzione `GetUserAttr('userGroups')` restituisce i gruppi IdP per l'utente. È possibile scegliere quali gruppi vengono restituiti impostando la variabile di sistema `QlikCloudGroupMode` in un'istruzione di script, ad esempio `Set QlikCloudGroupMode = 2` restituisce sia IdP che i gruppi personalizzati. Per ulteriori informazioni, vedere [QlikCloudGroupMode](https://help.qlik.com/it-IT/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/SystemVariables/QlikCloudGroupMode.htm).

## Esempio: utilizzo della funzione GetUserAttr nello script di caricamento

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

#### Script di caricamento

È possibile anche usare la funzione nelle proprie applicazioni senza bisogno di alcuna variabile. Questo esempio dimostra come caricare una tabella con ciascuno degli attributi come campi individuali. Da qui, è possibile creare visualizzazioni nell'applicazione per visualizzare questi dettagli.

Procedere come indicato di seguito:

1. Crea una nuova applicazione Qlik Sense.

2. Aprire l'Editor caricamento dati e aggiungere lo script di caricamento sotto in una nuova sezione. Lo script di caricamento contiene:

   * Una nuova tabella, denominata `Attributes`, che contiene ogni attributo come campo.

   * L'istruzione di uno script che imposta la variabile di sistema `QlikCloudGroupMode` su `1` per i gruppi personalizzati. L'attributo `userGroups` restituirà solo i gruppi personalizzati a cui partecipa l'utente.

   ```
   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. Caricare i dati. Viene creata una tabella nel modello dati, che visualizza ciascuno degli attributi in campi individuali.

   Ora è possibile usare i campi degli attributi nelle visualizzazioni, come oggetti tabella o di testo e immagine.

## Esempio: utilizzo della funzione GetUserAttr nelle espressioni dei grafici

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

#### Espressioni del grafico

È possibile immettere la funzione direttamente nelle espressioni del grafico senza utilizzare una variabile. Gli attributi utente si aggiorneranno senza dover ricaricare l'applicazione. Ciò consente un movimento più fluido delle applicazioni tra gli utenti come parte del ciclo di vita dell'applicazione.

Procedere come indicato di seguito:

1. Crea una nuova Qlik Sense applicazione.

2. Aprire un nuovo foglio in modalità di modifica avanzata.

3. Trascinare un oggetto Testo e immagine sul foglio.

4. Fare clic all'interno del grafico vuoto e inserire la seguente etichetta:

   Email utente:

5. Nel pannello delle proprietà, selezionare Aggiungi misura.

6. Inserire la seguente espressione:

   * =GetUserAttr('userEmail')

7. Aggiungere le etichette e le misure per gli altri attributi su nuove righe. Utilizzare le seguenti espressioni per ogni attributo:

   * =GetUserAttr('userSubject'), per Oggetto utente

   * =GetUserAttr('userGroups'), per i Gruppi di utenti

   * =GetUserAttr('userLocale'), per le impostazioni locali dell'utente

   * =GetUserAttr('userZoneinfo'), per le informazioni sulla zona dell'utente

Nota informaticaPer impostazione predefinita, la funzione `GetUserAttr('userGroups')` restituisce i gruppi IdP per l'utente. È possibile scegliere quali gruppi vengono restituiti impostando la variabile di sistema `QlikCloudGroupMode` in un'istruzione di script, ad esempio `Set QlikCloudGroupMode = 2` restituisce sia IdP che i gruppi personalizzati. Per ulteriori informazioni, vedere [QlikCloudGroupMode](https://help.qlik.com/it-IT/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/SystemVariables/QlikCloudGroupMode.htm).

## Esempio: nascondere in modo condizionale una colonna utilizzando un'espressione del grafico

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

#### Espressioni del grafico

Panoramica

Questo esempio mostra o nasconde una colonna di una tabella in base al dominio dell'indirizzo e-mail dell'utente.

Procedere come indicato di seguito:

1. Crea una nuova Qlik Sense applicazione.

2. Aprire l'Editor caricamento dati e aggiungere lo script di caricamento sotto in una nuova sezione. Lo script di caricamento contiene:

   * Un set di dati che viene caricato in una tabella chiamata `Transactions`.

   * I seguenti campi nella tabella dati:

     * `ID`

     * `Date`

     * `Amount`

     Script di caricamento

     ```
     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. Caricare i dati e aprire un foglio. Creare una nuova tabella e aggiungere tali campi come dimensioni:

   * `ID`

   * `Date`

   * `Amount`

   Aggiungere la seguente espressione come dimensione calcolata:

   * `=WildMatch(GetUserAttr('userEmail'),'*@qlik.com')>0`, per verificare se il dominio e-mail dell'utente corrisponde a `@qlik.com`.

4. Nel pannello delle proprietà della dimensione `Amount`, alla voce Mostra colonna se, aggiungere la seguente espressione:

   * `=WildMatch(GetUserAttr('userEmail'),'*@qlik.com')>0`, per visualizzare la colonna Importo se l'e-mail dell'utente corrisponde al dominio `qlik.com`.

   L'espressione visualizzerà la colonna `Amount` solo per gli utenti per cui il dominio dell'indirizzo e-mail contiene `@qlik.com`. La colonna sarà nascosta per gli utenti con altri nomi di dominio.

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 questo esempio, è possibile vedere come la funzione `GetUserAttr` viene utilizzata per nascondere o mostrare in modo condizionale una particolare colonna. La colonna `Amount` viene visualizzata nella prima tabella perché l'indirizzo e-mail dell'utente che visualizza l'applicazione contiene il dominio `@qlik.com`, e l'espressione di dimensione nella colonna 4 restituisce `-1`. La colonna `Amount` è nascosta dai risultati della seconda tabella perché l'utente non ha un indirizzo e-mail con il dominio `qlik.com`.