Usar fórmulas de texto

Objetivos de aprendizagem

Após concluir esta unidade, você estará apto a:
  • Descrever o que é o tipo Texto.
  • Converter valores de texto em outros tipos de dados ou vice-versa.
  • Descrever casos de uso para fórmulas usando o tipo Texto.
  • Criar uma fórmula usando o tipo Texto.

Introdução ao texto em fórmulas

Às vezes, a forma mais fácil de tornar as informações de sua organização facilmente legíveis é mostrá-las como texto. As fórmulas que usam o tipo de retorno Texto podem concatenar valores de texto, converter números e datas em texto ou exibir texto condicionalmente.

A coisa mais simples que você pode fazer é concatenar duas strings de texto com o operador &. Por exemplo, você pode exibir o nome completo de um contato combinando o nome e sobrenome.

FirstName & " " & LastName

Ao colocar os valores de texto em conjunto, considere os espaços necessários para que suas strings façam sentido quando exibidas: “Jane Doe” é muito mais legível do que “JaneDoe”.

Operadores e funções de texto comuns

O Salesforce vem com várias funções e operadores que facilitam o trabalho com texto em fórmulas. Usando fórmulas, você pode converter outros tipos de dados em texto e concatenar valores de texto juntos ou pesquisar uma string específica dentro de um campo de texto.

Conversão de e para valores de texto

TEXT() converte um campo de porcentagem, número, data, data/hora, lista de opções ou moeda em texto. TEXT() retorna a saída sem qualquer formatação, vírgula ou sinal de moeda. Por exemplo, TEXT(percent_value), se percent_value estiver definido como 30%, retornará 0,3.

Quando TEXT() recebe um valor de data ou data/hora, ele retorna uma string com a formatação de data ou data/hora padrão. Por exemplo, se date_value corresponder a 17 de março de 2015, TEXT(date_value) retornará 2015-03-17. Para datetime_value 17 de março de 2015 às 17:00, TEXT(datetime_value) retorna 2015-03-17 17:00:00Z. O Z indica que o tempo retornado está em GMT. TEXT() sempre retorna valores de data/hora em GMT, não no fuso horário do usuário atual nem de sua organização.

Você também pode fazer a conversão contrária dos valores usando VALUE(), que extrai um valor de texto e retorna um número. Se VALUE() receber um valor que não seja um número, incluindo qualquer caractere especial que não seja um sinal de ponto decimal ou menos (negativo), ele exibe #Error! Por exemplo, se text_value for US$ 500, VALUE(text_value) retornará um erro. VALUE() também retorna um erro se text_value estiver em branco.

Outras funções de texto

BEGINS(text, compare_text) retorna true se o texto começar com compare_text. Da mesma forma, CONTAINS(text, compare_text) retorna true se compare_text estiver em qualquer lugar de text. Essas funções são úteis para exibir informações condicionalmente com base em um campo de texto.

A função SUBSTITUTE(text, old_text, new_text) retorna texto com qualquer instância de old_text substituída por new_text, assim como a função Localizar e Substituir em um editor de texto.

O Salesforce contém outras funções para trabalhar e formatar texto em fórmulas. Para saber mais, consulte Operadores de fórmula e funções na ajuda online do Salesforce.

Usar o tipo Texto em fórmulas

Atribuir uma classificação de conta

Muitas vezes, as fórmulas que usam o tipo de retorno Texto exibem informações difíceis de quantificar. Você pode, por exemplo, usar uma fórmula de texto para determinar se um lead é quente, morno ou frio. Vamos escrever uma fórmula que usa a lógica condicional e a função ISPICKVAL() para retornar uma classificação de lead.

Neste exemplo, avaliamos um lead com base em sua receita, país e origem.

  • Quente – ReceitaAnual é maior que US$ 1.000.000, País são os Estados Unidos e Fonte é Indicação de parceiro.
  • Morno – ReceitaAnual é maior que US$ 1.000.000, País são os Estados Unidos e Fonte é Lista comprada ou Web.
  • Frio – a conta não atende a nenhuma dessas condições.

Esta fórmula usa uma série de declarações IF(), AND() e OR( ) para verificar essas condições e avalia o campo Fonte do lead usando ISPICKVAL(). A fórmula também usa uma declaração CASE() para verificar o País. Se o país for EUA, USA, Estados Unidos da América ou Estados Unidos, a declaração CASE() retorna US. Caso contrário, retorna NA (não aplicável).

Um diagrama de seleção facilita o acompanhamento do fluxo lógico de nossa fórmula.

Este diagrama de seleção ajuda a visualizar a fórmula de classificação de lead.
  1. Em Configuração, use a caixa Busca rápida para acessar o Gerenciador de objetos.
  2. Selecione Lead Campos e relacionamentos e clique em Novo.
  3. Selecione Fórmula e clique em Avançar.
  4. Em Rótulo do campo, insira Classificação. O nome do campo é preenchido automaticamente.
  5. Selecione Texto e clique em Avançar.
  6. Insira a seguinte fórmula:
    IF(
      AnnualRevenue > 1000000 &&
      CONTAINS(CASE(Country, "United States", "US", "America", "US",
        "USA", "US", "US", "US", "NA"), "US"),
      IF(
        ISPICKVAL(LeadSource, "Partner Referral"), "Hot",
        IF(
          ISPICKVAL(LeadSource, "PurchasedList") ||
          ISPICKVAL(LeadSource, "Web"),
          "Warm", "Cold"
        )
      ), "Cold"
    )

O novo campo de fórmula Classificação mostra Quente, Morno ou Frio com base nas características do lead.

Exibir uma imagem com CASE()

As fórmulas com o tipo de retorno Texto são úteis para outras coisas além de texto. Você também pode usá-las para exibir imagens. As imagens tornam as informações mais fáceis de ver rapidamente e chamam a atenção do usuário mais do que o texto isolado. Vamos escrever uma fórmula que usa o campo Classificação que você acabou de criar para exibir graficamente a classificação de um lead como zero, uma, três ou cinco de cinco estrelas.

A função IMAGE() aceita até quatro argumentos. IMAGE(image_url, alternate_text, height, width) exibe a imagem especificada por image_url com as dimensões especificadas pelos argumentos opcionais height e width. Se a imagem não puder ser exibida, a função exibirá alternate_text.

Se a classificação do lead for

  • Quente, a fórmula mostra cinco estrelas
  • Morno, a fórmula mostra três estrelas
  • Frio, a fórmula mostra uma estrela

Se a Classificação do lead estiver em branco, a fórmula não mostrará estrelas.

Crie um campo de fórmula com o tipo de retorno Texto e o nome Classificação em estrelas. No Editor de fórmula avançado, insira:

IMAGE(
  CASE(Rating__C,
    "Hot", "/img/samples/stars_500.gif",
    "Warm", "/img/samples/stars_300.gif",
    "Cold", "/img/samples/stars_100.gif",
    "/img/samples/stars_000.gif"),
"Unknown")

Esta fórmula usa imagens que vêm com o Salesforce, mas você pode usar suas próprias imagens carregando-as antes na guia Documentos.

Exemplos de texto

  1. Esta fórmula usa o campo Estado/Província de cobrança de uma conta baseada nos EUA para classificá-la como norte, sul, leste, oeste ou central.
    IF(ISBLANK(BillingState), "None",
    IF(CONTAINS("AK:AZ:CA:HA:NV:NM:OR:UT:WA", BillingState), "West",
    IF(CONTAINS("CO:ID:MT:KS:OK:TX:WY", BillingState), "Central",
    IF(CONTAINS("CT:ME:MA:NH:NY:PA:RI:VT", BillingState), "East",
    IF(CONTAINS("AL:AR:DC:DE:FL:GA:KY:LA:MD:MS:NC:NJ:SC:TN:VA:WV", BillingState), "South",
    IF(CONTAINS("IL:IN:IA:MI:MN:MO:NE:ND:OH:SD:WI", BillingState), "North", "Other"))))))
  2. Esta fórmula incorpora um link com a função HYPERLINK(). Geralmente, HYPERLINK(URL, display_text, target) exibe um link para url com display_text. O argumento opcional target determina como a página da Web é exibida quando o link é clicado. Se você deixar target em branco, o link abre em uma nova janela do navegador por padrão.
    HYPERLINK("https://www.salesforce.com", "Salesforce")
  3. Esta fórmula extrai o campo Email e o utiliza para criar um URL. A fórmula usa FIND() e SUBSTITUTE() para encontrar o sinal de @ no endereço de email e substituir tudo à esquerda dele por www.
    SUBSTITUTE(Email, LEFT(Email, FIND("@", Email)), "www.")

Erros comuns com fórmulas de texto

Converter valores em texto. Certifique-se de verificar o tipo de um campo antes de usá-lo em uma fórmula. Por exemplo, um administrador do Salesforce anterior pode ter criado um campo personalizado que contém uma data como um valor de texto. Se for o caso, você pode usar TEXT() ou DATEVALUE() para trabalhar com valores de texto e data em conjunto.

Campos auxiliares de fórmula

Usar campos auxiliares de fórmula é uma ótima maneira de tornar suas fórmulas curtas e fáceis de entender. Um campo auxiliar faz apenas parte de um cálculo maior e é referenciado pelo campo de fórmula final. Você pode usar campos auxiliares de fórmula com qualquer tipo de fórmula, mas vamos ver um exemplo agora.

Digamos que você queira escrever uma fórmula de texto chamada Case_Category__c que exibe uma categoria para um caso (verde, amarelo ou vermelho), dependendo de há quanto tempo esse caso foi aberto. Normalmente, você pode escrever algo assim.

IF(((NOT(IsClosed)) && (TODAY() - DATEVALUE(CreatedDate) > 20)), "RED",
 IF((NOT(IsClosed)) && (TODAY() - DATEVALUE(CreatedDate) > 10), "YELLOW",
 "GREEN"))
Você pode simplificar essa fórmula colocando a lógica para calcular a idade do caso em outro campo de fórmula. Vamos chamar esse campo de Case_Age_In_Days__c.
TODAY() - DATEVALUE(CreatedDate)
Então, podemos reescrever Case_Category__c assim.
IF(((NOT(IsClosed)) && (Case_Age_In_Days__c > 20)), "RED",
 IF((NOT(IsClosed)) && (Case_Age_In_Days__c > 10), "YELLOW",
 "GREEN"))
Não é apenas uma fórmula mais curta e mais fácil de entender; você também pode reutilizar essa fórmula auxiliar em qualquer lugar que precisar para calcular a idade de um caso. Maravilha!