20230601-FORMULAS/EXPRESSÕES PARA CRIAÇÃO DE WORKFLOW

174

Introdução

Nas ações Atualizar Campos e Criar Registro dos Workflows , você tem a opção de atualizar os valores dos campos por meio de funções internas. As funções executam cálculos como concatenação de strings, adição e subtração de dias, etc.

 

Este artigo explica em detalhes cada função fornecida pelo Vtiger.

 Funções

Listadas abaixo estão todas as funções fornecidas pelo Vtiger.

 
concat(a,b)

Esta função combina dois campos. Você pode usar isso, especialmente para combinar campos de texto.

Por exemplo, se você tiver um campo chamado Nome completo, poderá combinar o nome e o sobrenome usando concat(firstname,lastname) .

 

A função concat() pode combinar qualquer número de strings separadas por vírgulas. Por exemplo, para formar o campo Endereço de Cobrança, o formato é concat(Rua,' ',Cidade,' ',Pincode).

 

Nota : Para adicionar um espaço entre as duas strings, use aspas simples com um espaço em branco entre elas. Por exemplo, concat(firstname,' ',lastname).

 
time_diffdays(a,b)

Esta função usa campos de Data como entrada. Calcula a diferença de tempo em dias entre os dois campos.

 

Por exemplo, você deseja saber o período de suporte de um contato. A diferença pode ser calculada usando time_diffdays(support_end_date,support_start_date) .

 

A Data de término do suporte é subtraída da Data de início do suporte para obter o resultado.

 
time_diffdays(a)

Esta função fornece a diferença entre a data atual e um campo de data.

 

Por exemplo,

  • Você deseja saber quantos dias se passaram desde que um caso foi criado. Para isso, você deve utilizar a função time_diffdays(createdtime) . Em segundo plano, a função opera desta forma - time_diffdays(data atual - hora criada).
  • Para atualizar o campo Idade em Leads ou Contatos dependendo da Data de Nascimento, a função é (time_diffdays(aniversário))/365 .

 
time_diff(a,b)

Esta função recebe campos de Data como entrada e calcula a diferença de tempo entre os campos em segundos. 

 

Por exemplo, para atualizar o campo Tempo Decorrido dependendo do Tempo de Criação e do Tempo de Modificação de um registro, você deve usar time_diff(modifiedtime,createdtime) . A função realiza a subtração da seguinte forma - time_diff(modifiedtime - created time).

 
time_diff(a)

Esta função fornece a diferença de tempo (em segundos) entre a data atual e um campo de data.

 

Por exemplo, você deseja saber quantos segundos se passaram desde que um ticket interno foi criado. Para isso, você deve utilizar a função time_diff(createdtime) . Em segundo plano, a função opera desta forma - time_diff(data atual - hora criada).

 
time_diffweekdays(a,b)

Esta função recebe campos de Data como entrada e calcula a diferença de tempo (em dias) entre dois campos.

 

Por exemplo, você deseja saber o período de suporte de um contato. Você pode calculá-lo usando os campos Data de início do suporte e Data de término do suporte. A diferença pode ser calculada usando time_diffweekdays(support_end_date,support_start_date).

 

 time_diffweekdays(a)

Esta função fornece a diferença entre a data atual e um campo de data.

 

Por exemplo, você deseja saber quantos dias da semana se passaram desde que um caso foi criado. Para isso, você deve usar a função time_diffweekdays(createdtime). Em segundo plano, a função opera desta forma - time_diffdays(data atual - hora criada).

 

 add_days()

Esta função permite aos usuários calcular uma nova data. São necessárias duas entradas - uma data e um número - separadas por vírgulas. Ele adiciona o número à data e resulta em uma nova data.

 

Por exemplo, você deseja fornecer a um cliente um período de suporte de 60 dias e atualizar a data final no campo Data final do suporte. A função seria add_days(start_date,60), onde o primeiro parâmetro é um campo de data e o segundo parâmetro é o número de dias.

 

Portanto, add_days(2020-08-16,60) resultará na data 2020-10-15.

 
add_weekdays()

Esta função permite ao usuário calcular uma nova data, levando em conta apenas os dias da semana. São necessárias duas entradas - uma data e um número - separadas por vírgulas. Ele adiciona o número à data e resulta em uma nova data.

 

Por exemplo, você deseja atualizar a Data de fechamento real adicionando 'n' número de dias à Data de fechamento esperada. Você pode usar esta função - add_weekdays(closingdate,n).

sub_days

Essa função permite que os usuários calculem uma nova data usando duas entradas - uma data e um número separados por vírgulas. Ele deduz o número da data. 

 

Por exemplo, para enviar um e-mail a um cliente 'n' dias antes da data de término do suporte, você pode criar e atualizar um campo personalizado chamado Data de notificação. A função seria sub_days(support_end_date,n).

 

Nota

  • Se apenas o número de dias for fornecido como input=t e um campo Data não for fornecido, a data atual será considerada para cálculo. Por exemplo, sub_days(3) funciona de maneira semelhante a sub_days(data atual, 3).
  • As funções add_time() e sub_time() também funcionam de forma semelhante a add_days() e sub_days() .
 


add_time(timefield,minutes)

Esta função calcula uma nova hora adicionando a hora e os minutos especificados.

 

Por exemplo, considere que uma instituição educacional está realizando um teste online. Para atualizar o horário final do exame, a função pode ser usada da seguinte maneira - add_time(exam_start_time, 180).

 
sub_time(timefield,minutes)

Essa função calcula um novo horário subtraindo os minutos especificados do horário especificado.

 

Por exemplo, se você conduzir uma campanha de recrutamento em sua empresa, poderá configurar o horário de login dos candidatos usando a função sub_time(interview_start_time, 90).

today

Esta função busca a data atual. Quando você seleciona essa função nas Expressões do fluxo de trabalho, ela aparece como get_date('today').

 

Por exemplo, se você precisar atualizar a data de recebimento do pagamento quando o status de uma fatura for alterado para pago, use get_date('today').

tomorrow

Esta função busca a data do dia seguinte. Quando você escolhe essa função nas Expressões do fluxo de trabalho, ela aparece como get_date('tomorrow').

 

Por exemplo, se o Status de um projeto for alterado para Iniciado no dia atual, a Data de início do projeto será atualizada com a data de amanhã. Portanto, a expressão seria get_date('tomorrow').

yesterday

Esta função busca a data do dia anterior. Quando você seleciona essa função nas Expressões do fluxo de trabalho, ela aparece como get_date('ontem').

 

 power(base,exponent)

Esta função é usada para calcular a potência de um número inteiro, como o quadrado ou o cubo de um número inteiro.

 

Por exemplo, 2^3=8 pode ser simulado usando a função power(2,3).

 

 roundoff(field,precision)

Esta função é usada para arredondar um número para a precisão especificada. 

 

Por exemplo, Valor = 4350,68 é arredondado para 4351 quando a função roundoff(valor,0).

 uppercase(field)

Esta função converterá o valor do 'campo' de texto para maiúsculas. 

Por exemplo, esta função converte a frase 'Bem-vindo ao vtiger crm!' para 'BEM-VINDO AO VTIGER CRM!'

Nota: Esta função aplica-se apenas aos campos Texto e Textarea.

 declarações if-else

Para evitar a criação de vários fluxos de trabalho para atualizar um único campo em um registro, você pode usar a instrução if-else.

 

Por exemplo, para atualizar o campo Probabilidade à medida que o Estágio de Vendas de um negócio muda, a expressão é a seguinte:

if sales_stage=='Closed Lost' then 0 else if sales_stage=='Prospecting' then 10 else if sales_stage=='Perception Analysis' then 50 else if sales_stage=='Proposal or Price Quote' then 60 else if sales_stage=='Agreement' then 80 else 100 end

 

 Regras para criar expressões

  • Defina os valores do campo de texto entre aspas simples (' '). Por exemplo, first_name=='John'.
  • Escreva expressões em letras minúsculas.
  • Use operadores aritméticos para realizaAddition (+), Subtraction (-), Multiplication (*), and Division (/). 
    • Você pode executar essas operações entre dois ou mais campos, valores ou uma combinação de campos e valores.
  • Use apenas os seguintes operadores relacionais em expressões.
    • Observação : usar o operador de atribuição (=) não verifica a condição if e executa diretamente a última condição else. Você deve usar apenas o operador relacional (==).
 

Operador

Descrição

==

Igual a

!=

Não igual a

>

Maior que

<

Menos do que

>=

Melhor que ou igual a

<=

Menor ou igual a

 
  • Use valores binários para os campos de caixa de seleção.
    • 0 para Falso ou Não.
    • 1 para Verdadeiro ou Sim.
  • Suporte para AND e OR:
    • AND : Todas as condições devem corresponder. 
      • Por exemplo, se o estágio de vendas de um negócio for qualificação e o tipo for negócio existente, defina a probabilidade como 70.
        if sales_stage=='qualificação' AND type=='negócio existente', then 70 end
    • OR : Pelo menos uma das condições especificadas deve corresponder. 
      • Por exemplo, se o estágio de vendas de um negócio estiver inativo ou não pronto para vendas, defina a prioridade do negócio como baixa.
        if sales_stage=='Inativo' OR sales_stage=='Não está pronto para vendas', then 'Baixo' end
 

Verificando campos vazios

  • Para verificar campos inteiros ou de moeda vazios, compare com 0. Por exemplo,
    if
    Field==0.
  • Para outros campos, compare com 0 ou NULL. Por exemplo, if Field==NULL.
  • Nota : if Field==' ' não funciona. 
 

outras regras

  • Para ativar uma caixa de seleção (ou defini-la como Sim), use 1. Para desativar uma caixa de seleção (ou defini-la como Não), use 0.
  • Os valores de campo diferenciam maiúsculas de minúsculas em expressões de fluxo de trabalho. Por exemplo, se o campo Cidade tiver o valor Bangalore, você não poderá usar city==' bangalore' em uma expressão. Você deve usar city==' Bangalore'.
  • Para esvaziar o valor de um campo, use ' ' ou NULL. Por exemplo, if contact_name=='John' description==NULL. 

 

 Resumo

Nome da função

Descrição

1.

concat(a,b)

Combina as duas strings 'a' e 'b'

2.

time_diffdays(a,b)

Dá a diferença entre o campo de data 'a' e o campo de data 'b' (a menos b) em dias

3.

time_diffdays(a)

Dá a diferença entre a data atual e o campo Data 'a' em dias

4.

time_diff(a,b)

Dá a diferença entre o campo de data 'a' e o campo de data 'b' em segundos

5.

time_diff(a)

Dá a diferença entre a data atual e o campo Data 'a' em segundos

6.

time_diffweekdays(a,b)

Dá a diferença entre o campo de data 'a' e o campo de data 'b' (a menos b) em dias da semana, com base no horario comercial configurado

7.

time_diffweekdays(a)

Dá a diferença entre a data atual e um campo de data 'a' em dias da semana, com base no horário comercial configurado

8.

add_days(a,b)

Adiciona o número de dias em 'b' ao campo Data em 'a', resultando em uma data

9.

add_weekdays(a,b)

Soma o número de dias em 'b' ao campo Data em 'a' considerando apenas os dias da semana, resultando em uma data

10.

sub_days(a,b)

Subtrai o número de dias em 'b' do campo Data em 'a', resultando em uma data

11.

add_time(timefield,minutes)

Adiciona os 'minutos' ao 'timefield', resultando em um novo horário

12.

sub_time(timefield,minutes)

Subtrai os 'minutos' do 'timefield', resultando em um novo horário 

13.

today

Dá a data atual

14.

tomorrow

Dá a data do dia seguinte

15.

yesterday

Dá a data do dia anterior

16.

power(base,exponent)

Calcula a potência da 'base' em relação ao 'expoente'

18.

roundoff(field,precision)

Arredonda o valor em 'campo' para a precisão especificada


19.

uppercase(field)

Converte o valor em 'campo' (texto) para maiúsculas
 



 

Fonte: https://help.vtiger.com/article/147017525-Automation---Workflows---Vtiger-Expressions#articleHeader3

Gostou deste artigo? 0

Comentários (0)

Seja o primeiro a comentar!

Mostrar mais

Escreva um comentário:

Não encontrou o que procurava?

Abra um chamado e nossa equipe de especialistas irá analisar.

Abrir Chamado