# GetUserAttr Função de script e de gráfico

A função GetUserAttr() retorna as seguintes informações para o usuário que está acessando um aplicativo:

* Endereço de e-mail

* Assunto

* Grupos aos quais o usuário pertence, como grupos de provedores de identidade (IdP) e grupos personalizados

* Idioma preferencial

* Fuso horário

Use a função GetUserAttr() diretamente no script de carregamento ou em uma expressão de gráfico. Em ambos os casos, você pode usar a função para armazenar atributos em uma variável ou diretamente sem uma variável. Se você usar essa função no Qlik Sense Client-Managed, ela retornará apenas valores de dados vazios. Portanto, você pode usar a função para desenvolver scripts no Qlik Sense Client-Managed sem encontrar erros, com a intenção de posteriormente carregar os aplicativos para o Qlik Cloud.

Sintaxe:

GetUserAttr(name)

Tipo de dados de retorno: dual

Argumentos

| Argumento | Descrição |
| --- | --- |
| name | O nome do atributo a ser retornado. Insira como um valor de string na expressão. O valor da string inserido diferencia maiúsculas de minúsculas. |

Use a função para carregar atributos do usuário no seu aplicativo. A função pode retornar os seguintes atributos:

Atributos do usuário que possam ser retornados pela função GetUserAttr()GetUserAttr()

| Atributo | Descrição | Exemplo de variável de script de carregamento | Exemplo de expressão de gráfico (sem variável) | Exemplo de resultados de expressão de gráfico |
| --- | --- | --- | --- | --- |
| userEmail | O e-mail do usuário atual. | `Let vUserEmail = GetUserAttr('userEmail')` | `=GetUserAttr('userEmail')` | `john.doe@company.com` |
| userSubject | O assunto do usuário atual. | `Let vUserSubject = GetUserAttr('userSubject')` | `=GetUserAttr('userSubject')` | `00uss7ra3dk9doJln0x7` |
| userGroups | Os grupos (IdP, personalizados ou ambos) aos quais o usuário atual pertence. Retorna uma lista de grupos separados por vírgulas em uma string. Por padrão, `GetUserAttr` retorna grupos de IdP, a menos que a variável de sistema `QlikCloudGroupMode` seja definida em uma instrução do script de carregamento.<br><br>[QlikCloudGroupMode](https://help.qlik.com/pt-BR/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/SystemVariables/QlikCloudGroupMode.htm). | `Let vUserGroups = GetUserAttr('userGroups')` | `=GetUserAttr('userGroups')` | `Sales,Product-Lead,OKTA-Github-RnD` |
| userLocale | O idioma preferido do usuário, que é definido nas Configurações do usuário.<br><br>[Gerenciando suas configurações pessoais](https://help.qlik.com/pt-BR/cloud-services/Subsystems/Hub/Content/Sense_Hub/Introduction/profile-settings.htm) | `Let vUserLocale = GetUserAttr('userLocale')` | `=GetUserAttr('userLocale')` | `en` |
| userZoneinfo | O fuso horário do usuário, definido nas Configurações do usuário.<br><br>[Gerenciando suas configurações pessoais](https://help.qlik.com/pt-BR/cloud-services/Subsystems/Hub/Content/Sense_Hub/Introduction/profile-settings.htm) | `Let vUserLanguage = GetUserAttr('userZoneinfo')` | `=GetUserAttr('userZoneinfo')` | `Europe/London` |

## Quando usar GetUserAttr

Esta função retorna propriedades e grupos de usuário para o usuário atual do aplicativo. Isso permite que você crie soluções que personalizam o conteúdo que aparece para seus usuários. Por exemplo, em um aplicativo de vendas global, você pode mostrar pastas específicas de produtos apenas para os representantes de vendas que são responsáveis por um determinado grupo de produtos. Use a função em instruções de carregamento no script de carregamento do aplicativo ou em expressões de gráfico, diretamente como uma expressão ou em uma expressão armazenada como uma variável.

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

## Exemplo - Armazenamento de atributos do usuário como variáveis no script

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

#### Variáveis do script de carregamento e expressões de gráfico

Este exemplo define um conjunto de variáveis de script que podem ser usadas no conteúdo do aplicativo que você cria. Cada vez que o aplicativo é recarregado, os atributos são avaliados e adicionados a ele.

Faça o seguinte:

1. Crie um novo aplicativo Qlik Sense.

2. Abra o editor da carga de dados e adicione o script de carregamento abaixo em uma nova seção. O script de carregamento contém:

   * Uma nova tabela, chamada `Transactions`, com dados de transação de amostra. Isso pode ser substituído por qualquer dado e é apenas adicionado como um espaço reservado.

   * Uma instrução de script que define a variável de sistema `QlikCloudGroupMode` como `2`. O atributo `userGroups` retornará os grupos de IdP e personalizados aos quais o usuário pertence.

   * Uma série de definições de variáveis de script para os atributos disponíveis que a função GetUserAttr pode retornar.

     ```
     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. Carregue os dados e abra uma nova pasta no modo de edição avançada.

4. Crie uma tabela e adicione as seguintes expressões como dimensões:

   * `=vUserEmail`

   * `=vUserSubject`

   * `=vUserGroups`, isso retorna uma lista separada por vírgulas em uma string

   * `=vUserLocale`

   * `=vUserZoneinfo`

Nota de dicaVocê pode adicionar um rótulo de dimensão, como E-mail do usuário, para melhorar a legibilidade ao criar a dimensão.

A saída na tabela exibe dinamicamente os atributos de usuário disponíveis. A tabela a seguir mostra um exemplo de resultados retornados usando a função `GetUserAttr`.

Tabela de resultados

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

## Exemplo – Armazenando atributos do usuário como variáveis e usando-os em expressões de gráfico

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

#### Variáveis e expressões de gráfico

Neste exemplo, em vez de definir variáveis no script de carregamento, as variáveis são definidas no aplicativo. Uma vez definidas, as variáveis podem ser usadas em expressões de gráficos no aplicativo. A principal vantagem de usar a função em expressões de gráfico é que os atributos serão atualizados automaticamente sem a necessidade de recarregar o aplicativo. Isso permite uma transição mais fluida entre usuários durante o ciclo de vida do aplicativo.

Faça o seguinte:

1. Crie um novo aplicativo Qlik Sense.

2. Abra uma nova pasta no modo de edição avançada.

3. Abra o diálogo de variáveis.

4. Selecione Criar novo e, em seguida, faça o seguinte:

   * Em Nome, digite vUserEmail.

   * Em Definição, digite =GetUserAttr('userEmail').

   * Selecione Criar.

   Uma variável de aplicativo é criada para exibir o endereço de e-mail do usuário. Repita essa etapa para criar uma variável para os atributos restantes usando os parâmetros a seguir:

   * Assunto do usuário

     * Nome: vUserSubject

     * Definição: =GetUserAttr('userSubject')

   * Grupos de usuários

     * Nome: vUserGroups

     * Definição: =GetUserAttr('userGroups')

   * Localidade do usuário

     * Nome: vUserLocale

     * Definição: =GetUserAttr('userLocale')

   * Usuário Zoneinfo

     * Nome: vUserZoneinfo

     * Definição: =GetUserAttr('userZoneinfo')

5. Crie uma tabela e adicione as seguintes expressões como dimensões:

   * `=vUserEmail`

   * `=vUserSubject`

   * `=vUserGroups` (retorna uma lista separada por vírgulas em uma string)

   * `=vUserLocale`

   * `=vUserZoneinfo`

Nota de dicaVocê pode adicionar um rótulo de dimensão, como E-mail do usuário, para melhorar a legibilidade ao criar a dimensão.

A saída na nova tabela exibe dinamicamente os atributos de usuário disponíveis. A tabela a seguir mostra um exemplo de resultados retornados da função `GetUserAttr`.

Tabela de resultados

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

Nota informativaPor padrão, a função `GetUserAttr('userGroups')` retorna os grupos de IdP para o usuário. Você pode escolher quais grupos são retornados definindo a variável de sistema `QlikCloudGroupMode` em uma instrução de script; por exemplo, `Set QlikCloudGroupMode = 2` retorna tanto grupos de IdP quanto grupos personalizados. Para obter mais informações, consulte [QlikCloudGroupMode](https://help.qlik.com/pt-BR/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/SystemVariables/QlikCloudGroupMode.htm).

## Exemplo – Usando a função GetUserAttr no script de carregamento

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

#### Script de carregamento

Você também pode usar a função em seus aplicativos sem uma variável. Esse exemplo demonstra como carregar uma tabela com cada atributo como um campo individual. A partir daqui, você pode criar visualizações no aplicativo para exibir esses detalhes.

Faça o seguinte:

1. Crie um novo aplicativo Qlik Sense.

2. Abra o editor da carga de dados e adicione o script de carregamento abaixo em uma nova seção. O script de carregamento contém:

   * Uma nova tabela, chamada `Attributes`, que contém cada atributo como campo.

   * Uma instrução de script que define a variável de sistema `QlikCloudGroupMode` como `1` para grupos personalizados. O atributo `userGroups` retornará apenas os grupos personalizados aos quais o usuário pertence.

   ```
   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. Carregue os dados. Uma tabela é criada no modelo de dados que exibe cada um dos atributos em campos individuais.

   Agora você pode usar os campos de atributos em visualizações, como tabelas ou objetos de texto e imagem.

## Exemplo – Usando a função GetUserAttr em expressões de gráfico

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

#### Expressões de gráfico

Você pode inserir a função diretamente nas expressões de gráfico sem usar uma variável. Os atributos do usuário serão atualizados sem ter que recarregar o aplicativo. Isso permite uma transição mais fluida entre usuários durante o ciclo de vida do aplicativo.

Faça o seguinte:

1. Crie um novo aplicativo Qlik Sense.

2. Abra uma nova pasta no modo de edição avançada.

3. Arraste um objeto de texto e imagem até a pasta.

4. Clique dentro do gráfico em branco e digite o seguinte rótulo:

   E-mail do usuário:

5. No painel de propriedades, selecione Adicionar medida.

6. Insira a seguinte expressão:

   * =GetUserAttr('userEmail')

7. Adicione rótulos e medidas para os outros atributos em novas linhas. Use as expressões a seguir para cada atributo:

   * =GetUserAttr('userSubject'), para assunto do usuário

   * =GetUserAttr('userGroups') para grupos de usuários

   * =GetUserAttr('userLocale'), para a localidade do usuário

   * =GetUserAttr('userZoneinfo'), para informações da zona do usuário​

Nota informativaPor padrão, a função `GetUserAttr('userGroups')` retorna os grupos de IdP para o usuário. Você pode escolher quais grupos são retornados definindo a variável de sistema `QlikCloudGroupMode` em uma instrução de script; por exemplo, `Set QlikCloudGroupMode = 2` retorna tanto grupos de IdP quanto grupos personalizados. Para obter mais informações, consulte [QlikCloudGroupMode](https://help.qlik.com/pt-BR/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/SystemVariables/QlikCloudGroupMode.htm).

## Exemplo – Ocultar condicionalmente uma coluna usando uma expressão de gráfico

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

#### Expressões de gráfico

Visão geral

Este exemplo mostra ou oculta uma coluna de uma tabela com base no domínio do endereço de e-mail do usuário.

Faça o seguinte:

1. Crie um novo aplicativo Qlik Sense.

2. Abra o editor da carga de dados e adicione o script de carregamento abaixo em uma nova seção. O script de carregamento contém:

   * Um conjunto de dados que é carregado em uma tabela denominada `Transactions`.

   * Os campos a seguir na tabela de dados:

     * `ID`

     * `Date`

     * `Amount`

     Script de carregamento

     ```
     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. Carregue os dados e abra uma pasta. Crie uma nova tabela e adicione esses campos como dimensões:

   * `ID`

   * `Date`

   * `Amount`

   Adicione a seguinte expressão como uma dimensão calculada:

   * `=WildMatch(GetUserAttr('userEmail'),'*@qlik.com')>0` para verificar se o domínio de e-mail do usuário corresponde a `@qlik.com`.

4. No painel de propriedades da dimensão `Amount`, em Mostrar coluna se, adicione a expressão a seguir:

   * `=WildMatch(GetUserAttr('userEmail'),'*@qlik.com')>0` para exibir a coluna Valor se o e-mail do usuário corresponder ao domínio `qlik.com`.

   A expressão exibirá a coluna `Amount` somente para os usuários cujo domínio de endereço de e-mail contenha `@qlik.com`. A coluna ficará oculta para usuários com outros nomes de domínio.

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 |

Neste exemplo, você pode ver como a função `GetUserAttr` é usada para ocultar ou mostrar condicionalmente uma determinada coluna. A coluna `Amount` está sendo exibida na primeira tabela porque o endereço de e-mail do usuário que está visualizando o aplicativo contém o domínio `@qlik.com`, e a expressão de dimensão na coluna 4 retorna `-1`. A coluna `Amount` está oculta nos resultados da segunda tabela porque o usuário não tem um endereço de e-mail com o domínio `qlik.com`.