Aproveitar variáveis globais e valores ao máximo
Objetivos de aprendizagem
Após concluir esta unidade, você estará apto a:
- Referenciar os campos do usuário em execução no Flow Builder.
- Referenciar as informações de função e perfil do usuário em execução no Flow Builder.
- Referenciar rótulos personalizados no Flow Builder.
- Referenciar metadados personalizados no Flow Builder.
O que é uma variável global?
As variáveis globais existem em todos os fluxos. Você não cria essas variáveis nem pode mudar seus valores no fluxo, mas elas dão ao seu fluxo acesso a dados muito úteis que podem ser diferentes sempre que o fluxo é executado.
Você pode usar variáveis globais em campos que te permitem selecionar um recurso. Esses campos costumam conter um texto de espaço reservado, como “Enter value or search resources…” (“Insira um valor ou pesquise recursos..."), “Search a field…” (“Pesquise um campo...”) ou “Insert a resource…” ("Insira um recurso...").
No Flow Builder, as variáveis globais se comportam de maneira semelhante a objetos e campos: cada variável global contém vários valores. Para usar uma variável global em um fluxo, siga estas etapas.
- Ao criar ou editar um elemento, clique em um campo em que você pode escolher um recurso. O Flow Builder exibe os recursos que você pode colocar nesse campo.
- Em Global Variables (Variáveis globais), selecione qualquer opção em Global Variables (Variáveis globais). O Flow Builder exibe os campos disponíveis para a variável selecionada.
- Selecione o campo que contém o valor que você deseja usar.
Obter os valores de campo do usuário em execução
A variável global Running User (Usuário em execução) (ou, em alguns elementos, a variável global $User) dá ao seu fluxo uma visão do usuário por trás do teclado. Não literalmente, claro. Mas ela dá ao seu fluxo acesso aos dados do usuário que está executando o fluxo. Use a variável global Running User (Usuário em execução) para acessar dados como a ID do usuário, o nome, a ID do gerente, o endereço de email e muito mais.
Os gerentes de vendas da Pyroclastic querem saber quando um membro da equipe fecha uma oportunidade de alto valor como perdida. Flo pede a você para automatizar essa notificação com uma postagem do Chatter para o gerente do proprietário da oportunidade. A pessoa que fecha a oportunidade pode não ser o proprietário da oportunidade, ou seja, a notificação deve indicar quem fez a alteração.
Você já tem um fluxo que é executado quando o StageName de uma oportunidade é alterado para Fechada Perdida: Criar acompanhamento com tomador de decisão. Adicione uma ação no fluxo para criar uma postagem do Chatter para o gerente do proprietário da oportunidade.
Primeiro, você precisa identificar o gerente do proprietário. Assim como na unidade 2, use um elemento Get Records (Obter registros) para recuperar informações e use essas informações em um elemento Action.
Recuperar o gerente do proprietário
- Abra o fluxo Criar acompanhamento com tomador de decisão.
- Na tela do fluxo, depois do elemento Get Decision Maker (Obter tomador de decisão), clique em
. Selecione Get Records (Obter registros).
- Em Label (Rótulo), insira
Get Owner Manager
(Obter gerente do proprietário).
Lembre-se, esse nome é usado para rotular a variável gerada, ou seja, é uma boa ideia usar um nome descritivo.
- Em Object (Objeto), selecione User (Usuário).
- Em Condition Requirements (Requisitos de condição), selecione All Conditions Are Met (AND) (Todas as condições são atendidas (AND)).
- Na seção Filter Records (Filtrar registros), defina as condições que indicam ao elemento quais registros devem ser recuperados:
- Campo: ID do usuário
- Operador: Igual a
- Valor: Triggering Opportunity (Oportunidade acionadora)> Owner ID (ID do proprietário) (o primeiro) >Manager ID (ID do gerente) (o segundo)
- Clique em
no painel Get Records (Obter registros) para fechá-lo.
Agora você tem uma variável de registro que contém todos os campos do gerente do proprietário da oportunidade, incluindo seu nome e endereço de email. Em seguida, use um elemento Action para criar a postagem do Chatter.
Criar um modelo de texto
- No Flow Builder, se a Caixa de ferramentas ainda não estiver aberta, clique em
para abri-la.
- Clique em New Resource (Novo recurso).
- Em Tipo de recursos, selecione Text Template (Modelo de texto).
- No nome da API, insira
ChatterPostManager
.
- Ao lado do campo Seletor de recursos, mude View as Rich Text (Exibir como Rich Text) para View as Plain Text (Exibir como texto sem formatação).
- No campo Resource Picker (Seletor de recursos), selecione User from Get Owner Manager (Usuário de Obter gerente do proprietário) > User ID (ID do usuário).
Um campo de mesclagem para o nome do gerente é inserido no início do corpo da mensagem.
- Adicione colchetes [ ] em volta do campo de mesclagem, assim:
[{Get_Owner_Manager.Id}]
- Adicione um símbolo de @ no início e dois pontos no final, assim:
@[{Get_Owner_Manager.Id}]:
- Após os dois pontos, inicie uma nova linha e insira:
This opportunity was marked Closed Lost. Closed by:
- Deixe um espaço e insira três outros campos de mesclagem usando a variável global Running User (Usuário em execução) encontrada na seção Global Variables (Variáveis globais). Adicione um espaço entre eles para não serem executados juntos:
-
Running User (Usuário em execução)> FirstName (Nome)
-
Running User (Usuário em execução)> LastName (Sobrenome)
-
Running User (Usuário em execução)> Email
- Clique em Done (Concluído).
Em seguida, use o modelo de texto em um elemento Action para publicar no feed do Chatter da oportunidade.
Notificar o gerente em uma postagem do Chatter
- Depois do elemento Get Owner Manager (Obter gerente do proprietário), clique em
. Insira
post
(publicar) na barra de pesquisa.
- Em seguida, selecione Post to Chatter (Publicar no Chatter).
- Insira
Chatter Post to Manager
(Publicar no Chatter para gerente) como rótulo.
- Selecione o modelo de texto ChatterPostManager como mensagem.
- Em Target Name or ID (Nome ou ID de destino), selecione User from Get Owner Manager (Usuário de Obter gerente do proprietário) > User ID (ID do usuário).
- Clique em Done (Concluído).
- Salve o fluxo.
Obter o perfil e os valores de função do usuário em execução
Ao criar fluxos, evite colocar IDs no código. Colocar no código é quando você insere manualmente uma ID do Salesforce nos fluxos ou no código. Um exemplo de colocação no código em um elemento Update Records (Atualizar registros) é definir os critérios para verificarem "005i000006rZRFU". Em vez disso, você deve recuperar a ID com um elemento Get Records (Obter registros) e verificar a ID armazenada na variável de registro do elemento Get Records.
E o que isso tem a ver com variáveis globais? Em algum momento, você poderá querer acessar o perfil ou a função do usuário. Digamos que sua organização seja dividida em territórios, atribuídos como funções de usuário a representantes de vendas. Os territórios ocidentais (Sales-West1, Sales-West2 e Sales-West3) usam um cálculo de desconto diferente dos de outros territórios. Para calcular os descontos corretamente, um fluxo precisa obter a função do usuário em execução para confirmar se ele está atribuído a um dos territórios ocidentais.
Flo tenta usar a variável global Running User (Usuário em execução) para encontrar a função do usuário em execução, mas o único valor de função existente é a ID da função. Ela sabe muito bem que não deve colocar uma ID no seu fluxo. Felizmente, existe outra forma de acessar informações com base na função do usuário em execução: a variável global Running User Role (Papel do usuário em execução), ou, em alguns elementos, a variável global $UserRole. Ela pode acessar vários valores na função do usuário em execução.
Da mesma forma, a variável global Running User Profile (Perfil do usuário em execução) – ou, em alguns elementos, a variável global $Profile–, deve ser usada em situações semelhantes em que o fluxo precisa acessar os valores de perfil do usuário em execução. O único valor do perfil em Running User (Usuário em execução) é a ID do perfil, mas assim como Running User Role (Papel do usuário em execução) em funções, Running User Profile (Perfil do usuário em execução) concede acesso ao restante dos valores do perfil.
Para evitar colocar no código durante a verificação do papel do usuário em execução, referencie Running User Role (Papel do usuário em execução) > DeveloperName (Nome do desenvolvedor). Para o perfil, consulte Running User Profile (Perfil do usuário em execução) > Name (Nome).
Recuperar rótulos personalizados
Se os usuários da sua organização trabalham em vários idiomas, os rótulos personalizados são bem valiosos. Os rótulos personalizados contêm sequências de caracteres de texto que você pode traduzir em vários idiomas. Depois de definir as traduções, o Salesforce exibe rótulos personalizados para cada usuário na língua nativa do usuário. Você pode até usar rótulos personalizados nos fluxos.
No Flow Builder, use a variável global Custom Label (Rótulo personalizado) – ou, em alguns elementos, a variável global $Label – para colocar um rótulo personalizado em qualquer lugar que aceite um recurso de texto, como componentes de tela, valores padrão para campos e fórmulas de texto. Neste exemplo de criação de registro de tarefa, o valor do campo Assunto é definido com a variável global TaskPrintLabels. Agora, quando os usuários veem a tarefa, o assunto está no seu próprio idioma.
O próximo exemplo é um componente Display Text (Exibir texto) em uma tela de fluxo. No campo Resource Picker (Seletor de recursos) de uma tela, quando $Label estiver selecionada, os rótulos personalizados disponíveis são listados. A escolha de um o adiciona à área de texto no componente.
Outras variáveis globais importantes
Existem outras variáveis globais que podem ser úteis na hora de se criar fluxos.
Variável global |
O que faz |
---|---|
Running Flow Interview (Entrevista de fluxo em execução) > CurrentDate (Data atual)
|
Recupera a data em que o elemento é executado |
Running Flow Interview (Entrevista de fluxo em execução) > CurrentDateTime (Hora e data atual)
|
Recupera a data/hora em que o elemento é executado |
Running Flow Interview (Entrevista de fluxo em execução) > InterviewStartTime (Hora de início da entrevista)
|
Recupera a data/hora em que o fluxo começou a ser executado |
Running Flow Interview (Entrevista de fluxo em execução) > FaultMessage (Mensagem de falha)
|
Recupera a mensagem de erro quando um fluxo é interrompido devido a um erro |
Running Org (Organização em execução) (ou $Organization) |
Recupera informações encontradas na página Company Information (Informações da empresa) em Setup (Configuração), por exemplo, o nome ou endereço da sua organização |
Triggering [object name] ([nome do objeto] acionador)
|
Em um fluxo acionado por registro, Triggering [object name] ([nome do objeto] acionador) recupera dados do registro que acionou o fluxo. (Você usou essa variável global em um desafio prático para obter a empresa e a ID de um lead recém-criado.) Você também pode usar Triggering [object name] ([nome do objeto] acionador) para:
Saiba mais sobre Triggering [object name] ([nome do objeto] acionador) no emblema Fluxos acionados por registro. |
Recuperar valores de metadados personalizados
Metadados personalizados não é uma variável global, mas é um conjunto de valores que você pode acessar globalmente no Flow Builder e em toda a sua organização do Salesforce. Por exemplo, um tipo de metadados personalizado pode ser usado em fluxos, código, regras de validação e outros.
No Flow Builder, você recupera metadados personalizados da mesma forma que recupera registros de objeto: usando o elemento Get Records (Obter registros). Ao escolher o objeto, selecione o tipo de metadados personalizados.
Para saber mais e encontrar casos de uso de exemplo, confira o módulo do Trailhead Noções básicas de tipos de metadados personalizados, especialmente a unidade Como usar tipos de metadados personalizados no fluxo.
Recursos
- Blog dos administradores do Salesforce: Por que você deveria evitar colocar no código e três soluções alternativas
- Administradores do Salesforce, vamos automatizar! Vídeo: Vamos automatizar! – Enviar notificações de caso automagicamente com fluxos
- Trailhead: Noções básicas de tipos de metadados personalizados