Usar listas de opções em fórmulas

Objetivos de aprendizagem

Após concluir esta unidade, você estará apto a:
  • Descrever casos de uso para fórmulas que façam referência a campos da lista de opções.
  • Usar funções de lista de opções nos campos de fórmula.
  • Criar uma fórmula que faça referência a um campo de lista de opções.

Introdução ao uso de listas de opções em fórmulas

O campo de lista de opções permite escolher um valor a partir de uma lista pré-preenchida. Embora não seja possível escrever uma fórmula que retorne uma lista de opções como resultado, é provável que você tenha que fazer referência a listas de opções em seus campos de fórmula.

Digamos que você precisa de uma regra de validação que exija que um usuário preencha uma explicação se selecionar “Outro” como Tipo de conta. Esta fórmula de regra de validação exige que um usuário preencha o campo de texto Tipo de outro se definir o Tipo de conta como “Outro”.

ISPICKVAL(Type, "Other") &&
ISBLANK(Other_Type__c)

Se um usuário deixar Other_Type__c em branco quando o Tipo estiver definido como “Outro”, a regra de validação será acionada e o usuário não poderá salvar o formulário.

Funções e operadores comuns da lista de opções

Três funções extraem valores da lista de opções como argumentos em todos os campos de fórmula: ISPICKVAL(), CASE() e TEXT().

ISPICKVAL(picklist_field, text_value) retorna true se o valor de picklist_field corresponder a text_value e false caso contrário. Você pode combinar ISPICKVAL() com PRIORVALUE(). Você pode usar essa função em regras de atribuição, regras de validação, atualizações de campo e regras de fluxo de trabalho para encontrar o valor anterior de um campo.

Por exemplo, esta regra de validação impede que um usuário altere o Tipo de um caso de um valor selecionado anteriormente para em branco.

NOT(ISPICKVAL(PRIORVALUE(Type), "")) &&
ISPICKVAL(Type, "")

A regra de validação será acionada se o valor anterior de Tipo não estiver em branco e o valor atual estiver.

CASE() é útil para escrever fórmulas com resultados diferentes com base no valor de uma lista de opções. Esta fórmula com o tipo de retorno Número atribui ao caso uma prioridade com base em seu tipo.

CASE(Type,
  "Electrical", 1,
  "Electronic", 2,
  "Mechanical", 3,
  "Structural", 4,
  "Other", 5,
5)

A fórmula compara Tipo a cada caso, atribuindo uma prioridade ao encontrar uma correspondência. Os casos elétricos recebem uma prioridade de 1, casos eletrônicos, 2, e assim por diante.

TEXT() converte um valor de lista de opções em um valor de texto no idioma mestre de sua organização, não no idioma do usuário atual. Depois que um valor de lista de opções tiver sido convertido em um valor de texto, você pode usar funções de texto, como BEGINS() e CONTAINS(), nele.

Esta fórmula, por exemplo, exibe o Status de um caso como uma frase.

"This case is " & TEXT(Status)
Nota

Nota

Não é possível usar TEXT() em lista de opções de seleção múltipla. Listas de opções de seleção múltipla não são recomendadas nos campos de fórmula.

Usar campos de lista de opções em fórmulas

Criar uma regra de validação com base em uma lista de opções

Um valor da lista de opções geralmente determina quais outros campos em um registro são obrigatórios. ISPICKVAL() e CASE() são úteis para criar regras de validação que conferem se determinado valor da lista de opções está selecionado. Por exemplo, digamos que você queira que os usuários insiram um motivo ao alterar o valor da lista de opções de Status de um caso para Escalado.

Primeiro, crie o campo de texto personalizado Motivo para escalar no objeto de caso.

  1. Em Configuração, use a caixa Busca rápida para acessar o Gerenciador de objetos.
  2. Clique em Caso | Campos e relacionamentos e clique em Novo.
  3. Selecione Área de texto e clique em Avançar.
  4. Em Rótulo do campo, insira Motivo para escalar. O nome do campo é preenchido automaticamente.
  5. Clique em Avançar.
  6. Clique em Avançar novamente e, em seguida, clique em Salvar.

Agora, use o campo de lista de opções Status para configurar uma regra de validação no Motivo para escalar.

  1. Clique no campo Motivo para escalar recém-criado.
  2. Em Regras de validação, clique em Novo.
  3. Em Nome da regra, insira Reason_Required.
  4. Em Fórmula de condição de erro, insira a seguinte regra de validação:
    AND(
      ISPICKVAL(Status, "Escalated"),
      ISBLANK(Reason_for_Escalating__c)
    )
  5. Em Mensagem de erro, insira Informe um motivo para alterar o status do caso para Escalado.
  6. Clique em Salvar.

A regra de validação garante que, se o Status estiver definido como Escalado, o Motivo para escalar não ficará em branco. Teste sua fórmula atualizando o Status de um caso para Escalado e salvando o registro sem inserir um Motivo para escalar. O formulário exibe a mensagem de erro abaixo do campo Motivo para escalar.

Os usuários que não definirem um motivo para escalar verão essa mensagem de erro. “Erro: Informe um motivo para alterar o status do caso para Escalado.”

Atribuir a prioridade de um contato

E se você quiser atribuir uma prioridade aos contatos com base na classificação da conta a eles associada, um campo de lista de opções? Nesta fórmula, usamos uma referência de objeto cruzado para a classificação de conta do contato e o campo de fórmula de caixa de seleção É executivo que criamos em Usar lógica básica em fórmulas de caixa de seleção. O campo É executivo é assinalado se o Título de um contato incluir as palavras “diretor”, “presidente” ou “chefe”.

Como existem três possíveis classificações de conta – quente, morna ou fria – e duas opções para É executivo – com ou marcado ou desmarcado –, são seis casos no total. Usaremos CASE() para atribuir a cada possibilidade uma prioridade com base nas seguintes condições.

Account.Rating Is_Executive_c Prioridade
Quente Sim 1
Quente Não 1
Morna Sim 1
Morna Não 2
Fria Sim 2
Fria Não 3

Crie um campo de fórmula no objeto de contato com o nome Prioridade e o tipo Número.

  1. Em Configuração, use a caixa Busca rápida para acessar o Gerenciador de objetos.
  2. Clique em Contato | Campos e relacionamentos e clique em Novo.
  3. Selecione Fórmula e clique em Avançar.
  4. Em Rótulo do campo, insira Prioridade. O nome do campo é preenchido automaticamente.
  5. Selecione Número e altere Casas decimais para 0.
  6. Clique em Avançar.
  7. Insira a seguinte fórmula:
    CASE(Account.Rating,
      "Hot", 1,
      "Warm", IF(Is_Executive__c, 1, 2),
      "Cold", IF(Is_Executive__c, 2, 3),
    3)

Nesta fórmula, usamos declarações IF() dentro da declaração CASE() maior para verificar os seis casos de forma mais eficiente.

Exemplos de lista de opções

  1. Esta fórmula retorna o número de dias desde que a conta foi ativada com base no campo de lista de opções personalizado Status do contrato e no campo de data personalizado Data da ativação do contrato. Se o Status do contrato não for ativado, o campo ficará em branco.
    IF(ISPICKVAL(Contract_Status__c, "Activated"),
      TODAY() - Contract_Activated_Date__c, null)
  2. Esta fórmula usa o campo de data personalizado Data de vencimento de pagamento e o campo de lista de opções personalizado Status de pagamento com as opções Pago e Não pago no objeto do contrato. Se o Status do pagamento for Não pago e a data de vencimento já tiver passado, o campo de fórmula exibirá Pagamento vencido! Caso contrário, o campo ficará em branco.
    IF(AND(Payment_Due_Date__c < TODAY(),
      ISPICKVAL(Payment_Status__c,
      "UNPAID")),
      "Payment overdue!", null)
  3. Esta regra de validação usa ISPICKVAL() e PRIORVALUE() para exibir um erro se alguém tentar alterar o Status de um lead de “Fechado – Convertido” ou “Fechado – não convertido” para “Aberto – Não contatado”.
    ISPICKVAL(Status, "Open - Not Contacted") &&
    BEGINS(TEXT(PRIORVALUE(Status)), "Closed")
    Se os usuários alterarem o Status de um lead de fechado para aberto, eles verão um erro ao tentar salvar o registro. A mensagem de erro que um usuário vê quando viola a regra de validação. “Erro: O lead não pode ser alterado de Fechado para Aberto.”

Erros comuns com listas de opções

  • As únicas funções que podem extrair campos de lista de opções como parâmetros em todos os campos de fórmula são ISPICKVAL(), CASE() e TEXT(). Usar valores da lista de opções em qualquer outra função resulta em um erro. Este campo de fórmula de Caixa de seleção, por exemplo, destina-se a exibir uma caixa de seleção que indica se Fonte do lead é “Indicação de parceiro”. O operador igual a (=), no entanto, é incompatível com os campos da lista de opções, e essa fórmula causa um erro.
    LeadSource = "Partner Referral"
    Em vez disso, use ISPICKVAL() para verificar o valor de um campo de lista de opções ou use TEXT() para converter um valor de lista de opções em texto antes de usar o operador igual a.
    ISPICKVAL(LeadSource, "Partner Referral")
    TEXT(LeadSource) = "Partner Referral"
Continue a aprender de graça!
Inscreva-se em uma conta para continuar.
O que você ganha com isso?
  • Receba recomendações personalizadas para suas metas de carreira
  • Pratique suas habilidades com desafios práticos e testes
  • Monitore e compartilhe seu progresso com os empregadores
  • Conecte-se a orientação e oportunidades de carreira