# GetUserAttr Función de script y de gráfico

La función GetUserAttr() devuelve la siguiente información sobre el usuario que accede a una aplicación:

* Dirección de correo electrónico

* Asunto

* Grupos a los que pertenece el usuario, como grupos de proveedores de identidad (IdP) y grupos personalizados

* Idioma preferido

* Zona horaria

Utilice la función GetUserAttr() directamente en el script de carga o en una expresión de gráfico. En cualquier caso, puede usar la función para almacenar atributos en una variable o directamente sin una variable. Si utiliza esta función en Qlik Sense Client-Managed, devolverá únicamente valores de datos vacíos. Por lo tanto, puede usar la función para desarrollar scripts en Qlik Sense Client-Managed sin encontrar errores, con la intención de cargar luego las aplicaciones en Qlik Cloud.

Sintaxis:

GetUserAttr(name)

Tipo de datos que devuelve: dual

Argumentos

| Argumento | Descripción |
| --- | --- |
| name | El nombre del atributo para devolver. Escriba un valor de cadena en la expresión. El valor de cadena introducido distingue entre mayúsculas y minúsculas. |

Utilice la función para cargar atributos de usuario en su aplicación. La función puede deolver los atributos siguientes:

Atributos de usuario que puede devolver la función GetUserAttr()GetUserAttr()

| Atributo | Descripción | Ejemplo de variable de script de carga | Ejemplo de expresión de gráfico (sin variable) | Ejemplo de resultados de una expresión de gráfico |
| --- | --- | --- | --- | --- |
| userEmail | El correo electrónico del usuario actual. | `Let vUserEmail = GetUserAttr('userEmail')` | `=GetUserAttr('userEmail')` | `john.doe@company.com` |
| userSubject | El asunto del usuario actual. | `Let vUserSubject = GetUserAttr('userSubject')` | `=GetUserAttr('userSubject')` | `00uss7ra3dk9doJln0x7` |
| userGroups | Los grupos (de IdP, personalizados, o ambos) a los que pertenece el usuario actual. Devuelve una lista de grupos separados por comas en una cadena de texto. De manera predeterminada `GetUserAttr` devuelve los grupos de IdP, a menos que se incluya la variable de sistema `QlikCloudGroupMode` en una sentencia del script de carga.<br><br>[QlikCloudGroupMode](https://help.qlik.com/es-ES/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/SystemVariables/QlikCloudGroupMode.htm). | `Let vUserGroups = GetUserAttr('userGroups')` | `=GetUserAttr('userGroups')` | `Sales,Product-Lead,OKTA-Github-RnD` |
| userLocale | El idioma preferido del usuario, que se establece en la Configuración del usuario.<br><br>[Administrar sus ajustes personales](https://help.qlik.com/es-ES/cloud-services/Subsystems/Hub/Content/Sense_Hub/Introduction/profile-settings.htm) | `Let vUserLocale = GetUserAttr('userLocale')` | `=GetUserAttr('userLocale')` | `en` |
| userZoneinfo | La zona horaria del usuario, que se establece en la Configuración del usuario.<br><br>[Administrar sus ajustes personales](https://help.qlik.com/es-ES/cloud-services/Subsystems/Hub/Content/Sense_Hub/Introduction/profile-settings.htm) | `Let vUserLanguage = GetUserAttr('userZoneinfo')` | `=GetUserAttr('userZoneinfo')` | `Europe/London` |

## Cuándo utilizar GetUserAttr

Esta función devuelve las propiedades y grupos de usuario para el usuario actual de la aplicación. Esto le permite crear soluciones que personalizan el contenido que aparece para sus usuarios. Por ejemplo, en una aplicación global de ventas, puede mostrar hojas específicas de un producto solo a los comerciales responsables de un grupo de productos concreto. Utilice la función en sentencias de carga en el script de carga de la aplicación o en expresiones de gráfico, ya sea directamente como una expresión o en una expresión almacenada como una variable.

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

## Ejemplo: almacenamiento de atributos de usuario como variables en el script

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

#### Cargar variables de script y expresiones de gráfico

Este ejemplo define un conjunto de variables de script que se pueden usar en el contenido de la aplicación que cree. Cada vez que se vuelve a cargar la aplicación, los atributos se evalúan y añaden a la aplicación.

Haga lo siguiente:

1. Cree una nueva aplicación de Qlik Sense.

2. Abra el Editor de carga de datos y añada el script de carga inferior en una nueva sección. El script de carga contiene:

   * Una nueva tabla, denominada `Transactions`, con datos de muestra de transacciones. Esto podría reemplazarse con cualquier dato, y se agrega como marcador de posición.

   * Una sentencia de script que establece la variable de sistema `QlikCloudGroupMode` en `2`. El atributo `userGroups` devolverá tanto los grupos de IdP como los personalizados a los que pertenece el usuario.

   * Una serie de definiciones de variables de script para los atributos disponibles que puede devolver la función 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. Cargue los datos y abra una hoja nueva en el modo de edición avanzada.

4. Cree una tabla y añada las siguientes expresiones como dimensiones:

   * `=vUserEmail`

   * `=vUserSubject`

   * `=vUserGroups`, esto devuelve una lista separada por comas en una cadena de caracteres

   * `=vUserLocale`

   * `=vUserZoneinfo`

Nota de sugerenciaPuede añadir una etiqueta de dimensión, como Correo electrónico del usuario, para mejorar la legibilidad cuando cree la dimensión.

El resultado de salida de la tabla muestra dinámicamente los atributos de usuario disponibles. La tabla siguiente muestra un ejemplo de los resultados que devuelve utilizando la función `GetUserAttr`.

Tabla de resultados

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

## Ejemplo: almacenar atributos de usuario como variables y su uso en expresiones de gráfico

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

#### Variables y expresiones de gráfico

En este ejemplo, en lugar de definir variables en el script de carga, las variables se definen en la aplicación. Una vez definidas, las variables se pueden usar en expresiones de gráfico en la aplicación. El principal beneficio de usar la función en expresiones de gráfico es que los atributos se actualizarán automáticamente sin tener que volver a cargar la aplicación. Esto permite un movimiento más fluido de aplicaciones entre usuarios como parte del ciclo de vida de la aplicación.

Haga lo siguiente:

1. Cree una nueva aplicación de Qlik Sense.

2. Abra una hoja nueva en el modo de edición avanzada.

3. Abra el diálogo de variables.

4. Seleccione Crear nuevo y haga lo siguiente:

   * En Nombre, introduzca vUserEmail.

   * En Definición, introduzca =GetUserAttr('userEmail').

   * Seleccione Crear.

   Se crea una variable de la aplicación para mostrar la dirección de correo electrónico del usuario. Repita este paso para crear una variable para los atributos restantes utilizando los siguientes parámetros:

   * User Subject

     * Nombre: vUserSubject

     * Definición: =GetUserAttr('userSubject')

   * User Groups

     * Nombre: vUserGroups

     * Definición: =GetUserAttr('userGroups')

   * User Locale

     * Nombre: vUserLocale

     * Definición: =GetUserAttr('userLocale')

   * User Zoneinfo

     * Nombre: vUserZoneinfo

     * Definición: =GetUserAttr('userZoneinfo')

5. Cree una tabla y añada las siguientes expresiones como dimensiones:

   * `=vUserEmail`

   * `=vUserSubject`

   * `=vUserGroups` (devuelve una lista separada por comas en una cadena de texto)

   * `=vUserLocale`

   * `=vUserZoneinfo`

Nota de sugerenciaPuede añadir una etiqueta de dimensión, como Correo electrónico del usuario, para mejorar la legibilidad cuando cree la dimensión.

El resultado de salida en la nueva tabla muestra dinámicamente los atributos de usuario disponibles. La tabla siguiente muestra un ejemplo de los resultados que devuelve la función `GetUserAttr`.

Tabla de resultados

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

Nota informativaDe manera predeterminada, la función `GetUserAttr('userGroups')` devuelve los grupos de IdP del usuario. Puede elegir qué grupos devolverá estableciendo la variable de sistema `QlikCloudGroupMode` en una sentencia de script, por ejemplo `Set QlikCloudGroupMode = 2` devuelve tanto los grupos de IdP como los grupos personalizados. Para más información, vea [QlikCloudGroupMode](https://help.qlik.com/es-ES/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/SystemVariables/QlikCloudGroupMode.htm).

## Ejemplo: uso de la función GetUserAttr en el script de carga

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

#### Script de carga

También puede usar la función en sus aplicaciones sin una variable. Este ejemplo demuestra cómo cargar una tabla con cada atributo como un campo individual. A partir de aquí, puede crear visualizaciones en la aplicación para mostrar estos detalles.

Haga lo siguiente:

1. Cree una nueva aplicación de Qlik Sense.

2. Abra el Editor de carga de datos y añada el script de carga inferior en una nueva sección. El script de carga contiene:

   * Una nueva tabla llamada `Attributes`, que contiene cada atributo como un campo.

   * Una sentencia de script que establece la variable del sistema `QlikCloudGroupMode` en `1` para los grupos personalizados. El atributo `userGroups` devolverá solo los grupos personalizados a los que pertenezca el usuario.

   ```
   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. Que cargue los datos. Se crea una tabla en el modelo de datos que muestra cada uno de los atributos en campos individuales.

   Ahora puede utilizar los campos de atributo en visualizaciones como tablas u objetos de texto e imagen.

## Ejemplo: utilización de la función GetUserAttr en expresiones de gráfico

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

#### Expresiones de gráfico

Puede introducir la función directamente en las expresiones del gráfico sin usar una variable. Los atributos de usuario se actualizarán sin necesidad de recargar la aplicación. Esto permite un movimiento más fluido de aplicaciones entre usuarios como parte del ciclo de vida de la aplicación.

Haga lo siguiente:

1. Cree una nueva aplicación de Qlik Sense.

2. Abra una hoja nueva en el modo de edición avanzada.

3. Arrastre un objeto de Texto e imagen a la hoja.

4. Haga clic dentro del gráfico en blanco e introduzca la siguiente etiqueta:

   User Email:

5. En el panel de propiedades, seleccione Añadir medida.

6. Introduzca la siguiente expresión:

   * =GetUserAttr('userEmail')

7. Añada etiquetas y medidas para los demás atributos en nuevas líneas. Utilice las siguientes expresiones para cada atributo:

   * =GetUserAttr('userSubject'), para Asunto del usuario

   * =GetUserAttr('userGroups'), para Grupos de usuario

   * =GetUserAttr('userLocale'), para la configuración regional de usuarios: User Locale

   * =GetUserAttr('userZoneinfo'), para Información sobre la zona de usuario: User Zone info

Nota informativaDe manera predeterminada, la función `GetUserAttr('userGroups')` devuelve los grupos de IdP del usuario. Puede elegir qué grupos devolverá estableciendo la variable de sistema `QlikCloudGroupMode` en una sentencia de script, por ejemplo `Set QlikCloudGroupMode = 2` devuelve tanto los grupos de IdP como los grupos personalizados. Para más información, vea [QlikCloudGroupMode](https://help.qlik.com/es-ES/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/SystemVariables/QlikCloudGroupMode.htm).

## Ejemplo: ocultar condicionalmente una columna mediante una expresión de gráfico

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

#### Expresiones de gráfico

Vista general

Este ejemplo muestra u oculta una columna de una tabla en función del dominio de la dirección de correo electrónico del usuario.

Haga lo siguiente:

1. Cree una nueva aplicación de Qlik Sense.

2. Abra el Editor de carga de datos y añada el script de carga inferior en una nueva sección. El script de carga contiene:

   * Un conjunto de datos que se carga en una tabla denominada `Transactions`.

   * Los siguientes campos de la tabla de datos:

     * `ID`

     * `Date`

     * `Amount`

     Script de carga

     ```
     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. Cargue los datos y abra una hoja. Cree una nueva tabla y agregue estos campos como dimensiones:

   * `ID`

   * `Date`

   * `Amount`

   Añada la siguiente expresión como dimensión calculada:

   * `=WildMatch(GetUserAttr('userEmail'),'*@qlik.com')>0`, para comprobar si el dominio de correo electrónico del usuario coincide con `@qlik.com`.

4. En el panel de propiedades de la dimensión `Amount`, en Mostrar columna si, añada la siguiente expresión:

   * `=WildMatch(GetUserAttr('userEmail'),'*@qlik.com')>0`, para mostrar la columna Importe si el correo electrónico del usuario coincide con el dominio `qlik.com`.

   La expresión mostrará la columna `Amount` solo para aquellos usuarios cuyo dominio de dirección de correo electrónico contenga `@qlik.com`. La columna quedará oculta para los usuarios con otros nombres de 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 |

En este ejemplo, puede ver cómo se utiliza la función `GetUserAttr` para ocultar o mostrar condicionalmente una columna determinada. La columna `Amount` se muestra en la primera tabla porque la dirección de correo electrónico del usuario que está viendo la aplicación contiene el dominio `@qlik.com` y la expresión de dimensión de la columna 4 devuelve `-1`. La columna `Amount` está oculta en los resultados de la segunda tabla porque el usuario no tiene una dirección de correo electrónico con el dominio `qlik.com`.