Em Fluxos de trabalho, há uma ação particularmente poderosa e complexa chamada Campos calculados, que permite fazer operações nos valores dos registros que você está gerenciando.
Adicionando parâmetros
É possível adicionar parâmetros às fórmulas usando o menu suspenso na seção Parâmetros da interface de usuário do Calcular Campos. A lista suspensa contém todos os campos (básicos e personalizados) que pertencem ao módulo selecionado na seção de campos básicos.
Para adicionar um parâmetro, selecione o campo na lista suspensa e clique em Adicionar parâmetro. Após esta ação, uma nova linha aparece na tabela de parâmetros com o nome do campo e o identificador fornecido.
Para alguns campos (menus suspensos e seleções múltiplas), um menu suspenso adicional mostrado onde o usuário pode selecionar se o valor bruto ou formatado deve ser usado em Campos calculados. O formato bruto significa o valor armazenado no banco de dados e o valor formatado significa o rótulo desse valor do banco de dados.
Para remover um parâmetro da tabela, basta clicar em – na linha do parâmetro. Esteja ciente de que se você remover um parâmetro, todos os identificadores serão recalculados, portanto, os identificadores podem ser alterados para os campos!
O identificador é usado para fazer referência a este campo quando o usuário cria a fórmula. Por exemplo, todas as aparições do identificador {P0} serão substituídas pelo nome da conta na fórmula. Todos os parâmetros são como {Px} onde x é a ordem sequencial do parâmetro. A quantidade de parâmetros não é limitada.
Adicionando parâmetros de relação
Os parâmetros de relação são muito semelhantes aos parâmetros regulares, a única diferença é que o usuário primeiro seleciona uma entidade que está em um relacionamento um-para-um ou um-para-muitos com a entidade real.
Para adicionar um parâmetro de relação, selecione primeiro a relação e, a seguir, selecione o campo da entidade conectada e pressione o botão Adicionar parâmetro de relação. Após esta ação, uma nova linha aparece na tabela de parâmetros de relação com o nome do relacionamento, o nome do campo e o identificador fornecido.
Quanto aos parâmetros para alguns campos de parâmetros de relação (dropdowns e multi-seleções), um dropdown adicional mostrado onde o usuário pode selecionar se o valor bruto ou formatado deve ser usado em Calcular Campos.
Para remover um parâmetro de relação da tabela, basta clicar no botão – na linha do parâmetro de relação. Esteja ciente de que se você remover um parâmetro de relação, todos os identificadores são recalculados, então os identificadores podem mudar para os campos!
O identificador é usado para fazer referência a este campo quando o usuário cria a fórmula. Por exemplo, todas as aparições do identificador {R0} serão substituídas pelo nome de usuário do usuário criador na fórmula. Todos os parâmetros de relação são como {Rx} onde x é a ordem sequencial do parâmetro de relação. A quantidade dos parâmetros de relação não é limitada.
Criação de fórmula para um campo
Na parte Fórmulas da interface do usuário, o usuário pode adicionar fórmulas para campos da entidade real.
Para adicionar uma fórmula, selecione um campo na lista suspensa primeiro e pressione o botão Adicionar fórmula. Após esta ação, uma nova linha aparece na tabela de fórmulas com o nome do campo e com o local da fórmula.
Para remover uma fórmula da tabela, basta clicar em – na linha da fórmula.
A fórmula é uma caixa de texto onde o usuário pode escrever as fórmulas. O módulo avalia a fórmula no tempo determinado (ao salvar, ao executar o planejador ou ambos) e preenche o campo selecionado com o valor avaliado.
A fórmula pode conter qualquer texto (com suporte total para UTF-8), mas apenas as partes da função (funções com parâmetros entre ‘{‘ e ‘}’) são avaliadas. Por exemplo e com os parâmetros adicionados nas seções anteriores, se preenchermos a fórmula como: Conta {P0} criada pelo nome do usuário {R0}, então o campo de descrição terá o seguinte valor após salvar: Conta Minha conta criada pelo nome do usuário MyUser (implicando que o nome da conta é My Account e o nome de usuário do usuário criador é MyUser).
O Calculate Fields possui muitas funções integradas que permitem ao usuário construir fórmulas complexas para atingir diversos objetivos. Essas funções são descritas na próxima seção.
Funções Disponíveis
Como mencionado acima, todas as funções são agrupadas entre os sinais {e} e se parecem com {functionName (parâmetro1; parâmetro2;…)}. A contagem dos parâmetros é diferente para as diferentes funções. O módulo avalia as funções e as altera com seu resultado na fórmula.
As funções podem ser incorporadas umas às outras (usando o resultado de uma função como um parâmetro para outra função) como neste exemplo:
{potência ({subtrair ({dividir ({adicionar ({multiplicar (10; 2)}; 12)}; 8)}; 1)}; 2)}
Esta função é a aparência formalizada da seguinte expressão matemática:
(((((10 * 2) + 12) / 8) – 1) 2
As funções são divididas em seis grupos. Esses grupos são descritos na próxima seção do documento.
Funções Lógicas
As funções lógicas estão retornando verdadeiro ou falso na forma de 1 e 0, portanto, os campos digitados nas caixas de seleção podem ser preenchidos com essas funções. Eles também podem ser usados como a condição lógica para a função ifThenElse.
Igual (Equal)
Assinatura | {igual (parâmetro1; parâmetro2)} |
Parâmetros | parâmetro1: pode ser qualquer valor de qualquer tipo parâmetro2: pode ser qualquer valor de qualquer tipo |
Descrição | Determina se o parâmetro 1 é igual ao parâmetro 2 |
Retornos | 1 se os dois parâmetros são iguais ou 0 se não |
Chamada de Exemplo | {igual (1; 2)} retorna 0 |
Não Igual (notEqual)
Assinatura | {naoIgual (parâmetro1; parâmetro2)} |
Parâmetros | parâmetro1: pode ser qualquer valor de qualquer tipo parâmetro2: pode ser qualquer valor de qualquer tipo |
Descrição | Determina se o parâmetro1 não é igual ao parâmetro2 |
Retornos | 0 se os dois parâmetros são iguais ou 1 se não |
Chamada de Exemplo | {notEqual (1; 2)} retorna 1 |
Maior Que (greaterThan)
Assinatura | {maiorQue (parâmetro1; parâmetro2)} |
Parâmetros | parâmetro1: pode ser qualquer valor de qualquer tipo parâmetro2: pode ser qualquer valor de qualquer tipo |
Descrição | Determina se o parâmetro1 é maior que o parâmetro2 |
Retornos | 1 se o parâmetro 1 for maior que o parâmetro 2, 0 se não for |
Chamada de Exemplo | {maiorThan (3; 3)} retorna 0 |
Maior Que ou Igual (greaterThanOrEqual)
Assinatura | {maiorQueOuIgual (parâmetro1; parâmetro2)} |
Parâmetros | parâmetro1: pode ser qualquer valor de qualquer tipo parâmetro2: pode ser qualquer valor de qualquer tipo |
Descrição | Determina se o parâmetro 1 é maior ou igual ao parâmetro 2 |
Retornos | 1 se o parâmetro 1 for maior ou igual ao parâmetro 2, 0 se não |
Chamada de Exemplo | {maiorThanOrEqual (3; 3)} retorna 1 |
Menor Que (lessThan)
Assinatura | {MenorQue (parâmetro1; parâmetro2)} |
Parâmetros | parâmetro1: pode ser qualquer valor de qualquer tipo parâmetro2: pode ser qualquer valor de qualquer tipo |
Descrição | Determina se parâmetro1 menor que parâmetro2 |
Retornos | 1 se o parâmetro 1 for menor que o parâmetro 2, 0 se não for |
Chamada de Exemplo | {lessThan (3; 3)} retorna 0 |
Menor Ou Igual (lessThanOrEqual)
Assinatura | {menorOuIgual (parâmetro1; parâmetro2)} |
Parâmetros | parâmetro1: pode ser qualquer valor de qualquer tipo parâmetro2: pode ser qualquer valor de qualquer tipo |
Descrição | Determina se o parâmetro 1 é menor ou igual ao parâmetro 2 |
Retornos | 1 se o parâmetro 1 for menor ou igual ao parâmetro 2, 0 se não for |
Chamada de Exemplo | {lessThanOrEqual (3; 3)} retorna 1 |
Vazio (empty)
Assinatura | {vazio (parâmetro)} |
Parâmetros | parâmetro: valor do texto |
Descrição | Determina se o parâmetro está vazio |
Retornos | 1 se o parâmetro estiver vazio, 0 se não |
Chamada de Exemplo | {vazio (qualquer texto)} retorna 0 |
Não Vazio (notEmpty)
Assinatura | {naoVazio (parâmetro)} |
Parâmetro | parâmetro: valor do texto |
Descrição | Determina se o parâmetro não está vazio |
Retornos | 1 se o parâmetro não estiver vazio, 0 se vazio |
Chamada de Exemplo | {naoVazio (qualquer texto)} retorna 1 |
Não (not)
Assinatura | {não (parâmetro)} |
Parâmetro | parâmetro: valor lógico |
Descrição | Nega o valor lógico do parâmetro |
Retornos | 1 se o parâmetro for 0, 0 se o parâmetro for 1 |
Chamada de Exemplo | {not (0)} retorna 1 |
E (and)
Assinatura | {e (parâmetro1; parâmetro2)} |
Parâmetros | parâmetro1: valor lógico parâmetro2: valor lógico |
Descrição | Aplica o operador lógico AND a dois valores lógicos |
Retornos | 1 se parâmetro 1 e parâmetro 2 for 1, 0 se algum parâmetro for 0 |
Chamada de Exemplo | {e (1; 0)} retorna 0 |
Ou (or)
Assinatura | {ou (parâmetro1; parâmetro2)} |
Parâmetros | parâmetro1: valor lógico parâmetro2: valor lógico |
Descrição | Aplica o operador lógico OR a dois valores lógicos |
Retornos | 1 se parâmetro1 ou parâmetro2 for 1, 0 se ambos os parâmetros forem 0 |
Chamada de Exemplo | {ou (1; 0)} retorna 1 |
Funções de Texto
As funções de texto são usadas para manipular o texto de várias maneiras. Todas as funções listadas aqui são totalmente compatíveis com textos UTF-8, portanto, os caracteres especiais não devem causar problemas.
Subsequência (substring)
Assinatura | {subsequencia (texto; início; comprimento)} |
Parâmetros | texto: valor do texto início: valor decimal comprimento [parâmetro opcional]: valor decimal |
Descrição | Corta a substring de um campo de texto desde o início. Se o parâmetro opcional de comprimento não for definido, ele corta todos os caracteres até o final da string, caso contrário, corta o comprimento fornecido. Indexação dos caracteres de um texto a partir de 0. |
Retornos | Subsequências do texto fornecido |
Chamada de Exemplos | {substring (Este é meu texto; 5)} retorna é meu texto |
Comprimento (length)
Assinatura | {comprimento (parâmetro)} |
Parâmetros | parâmetro: valor do texto |
Descrição | Conte os caracteres em um texto. |
Retornos | A contagem dos caracteres em um texto. |
Chamada de Exemplos | {comprimento (texto de amostra)} retorna 11 |
Substituir (replace)
Assinatura | {substituir (pesquisar; substituir; assunto)} |
Parâmetros | pesquisa: valor do texto substituir: valor do texto assunto: valor do texto |
Descrição | Substitua todas as ocorrências de pesquisa para substituir no assunto do texto. |
Retornos | sujeito com valores substituídos. |
Chamada de Exemplos | {substituir (maçã; laranja; Esta é uma macieira)} retorna Esta é uma laranjeira |
Posição (position)
Assinatura | {posição (assunto; pesquisa)} |
Parâmetros | assunto: valor do texto pesquisa: valor do texto |
Descrição | Encontre a posição da primeira ocorrência da pesquisa em um assunto |
Retornos | Posição numérica da pesquisa no assunto ou -1 se a pesquisa não estiver presente no assunto |
Chamada de Exemplos | {position (Onde está o meu texto?; texto)} retorna 12 |
Minúsculas (lowercase)
Assinatura | {minúsculas (parâmetro)} |
Parâmetros | parâmetro: valor do texto |
Descrição | Coloque o texto em minúsculas |
Retornos | O texto em minúsculas. |
Chamada de Exemplos | {minúsculas (EStE É uM TexTO De AmoStrA)} retorna este é um texto de amostra |
Maiúscula (uppercase)
Assinatura | {maiúsculas (parâmetro)} |
Parâmetros | parâmetro: valor do texto |
Descrição | Coloque o texto em maiúsculas |
Retornos | O texto em maiúsculas. |
Chamada de Exemplos | {maiúsculo (ESte é uM TexTo SimplES)} retorna ESTE É UM TEXTO DE AMOSTRA |
Funções matemáticas
Funções matemáticas são usadas para manipular números de várias maneiras. Vários operadores matemáticos são implementados como funções em Calculate Fields.
Adicionar (add)
Assinatura | {adicionar (parâmetro1; parâmetro2)} |
Parâmetros | parâmetro1: valor numérico parâmetro2: valor numérico |
Descrição | Adiciona parâmetro1 e parâmetro2 |
Retornos | A soma do parâmetro1 e parâmetro2 |
Chamada de Exemplos | {add (3.12; 4.83)} retorna 7,95 |
Subtrair (subtract)
Assinatura | {subtrair (parâmetro1; parâmetro2)} |
Parâmetro | parâmetro1: valor numérico parâmetro2: valor numérico |
Descrição | Subtrai o parâmetro 2 do parâmetro 1 |
Retornos | A distinção de parâmetro2 e parâmetro1 |
Chamada de Exemplos | {subtrair (8; 3)} retorna 5 |
Multiplicar (multiply)
Assinatura | {multiplique (parâmetro1; parâmetro2)} |
Parâmetro | parâmetro1: valor numérico parâmetro2: valor numérico |
Descrição | Multiplica o parâmetro 1 e o parâmetro 2 |
Retornos | O produto do parâmetro1 e parâmetro2 |
Chamada de Exemplos | {multiplique (2; 4)} retorna 8 |
Dividir (divide)
Assinatura | {dividir (parâmetro1; parâmetro2)} |
Parâmetro | parâmetro1: valor numérico parâmetro2: valor numérico |
Descrição | Divide o parâmetro 2 com o parâmetro 1 |
Retornos | A divisão do parâmetro 2 e parâmetro 1 |
Chamada de Exemplos | {divide (8; 2)} retorna 4 |
Potência (power)
Assinatura | {potência (parâmetro1; parâmetro2)} |
Parâmetro | parâmetro1: valor numérico parâmetro2: valor numérico |
Descrição | Eleva o parâmetro 1 à potência do parâmetro 2 |
Retornos | parâmetro1 elevado à potência do parâmetro2 |
Chamada de Exemplos | {power (2; 7)} retorna 128 |
Raiz Quadrada (squareRoot)
Assinatura | {raizQuadrada (parâmetro)} |
Parâmetro | parâmetro: valor numérico |
Descrição | Calcula a raiz quadrada do parâmetro |
Retornos | A raiz quadrada do parâmetro |
Chamada de Exemplos | {raizQuadrada (4)} retorna 2 |
Absoluto (absolute)
Assinatura | {absoluto (parâmetro)} |
Parâmetro | parâmetro: valor numérico |
Descrição | Calcula o valor absoluto do parâmetro |
Retornos | O valor absoluto do parâmetro |
Chamada de Exemplos | {absoluto (-4)} retorna 4 |
Funções de data
Existem várias funções de data implementadas em Calculate Fields, para que o usuário possa manipular datas de várias maneiras. A maioria das funções usa um parâmetro de formato, que é usado para definir o resultado das funções formatadas como o usuário deseja. As opções para esses formatos são equivalentes aos parâmetros de formato PHP:
Caractere de formato | Descrição | Exemplo de valores retornados |
---|---|---|
Por dia: | ||
d | Dia do mês, 2 dígitos com zeros à esquerda | 01 a 31 |
D | Uma representação textual de um dia, três letras | De Seg a Dom |
j | Dia do mês sem zeros à esquerda | 1 a 31 |
I | Uma representação textual completa do dia da semana | Domingo a sábado |
N | Representação numérica ISO-8601 do dia da semana | 1 (para segunda-feira) a 7 (para domingo) |
S | Sufixo ordinal em inglês para o dia do mês, 2 caracteres | st, nd, rd ou th. Funciona bem com j |
W | Representação numérica do dia da semana | 0 (para domingo) a 6 (para sábado) |
Z | O dia do ano (começando em 0) | 0 a 365 |
Por Semana: | ||
W | ISO-8601 semana número do ano, semanas começando na segunda-feira | 42 (a 42ª semana do ano) |
Por Mês: | ||
F | Uma representação textual completa de um mês, como janeiro ou março | Janeiro a Dezembro |
m | Representação numérica de um mês, com zeros à esquerda | 01 a 12 |
M | Uma curta representação textual de um mês, três letras | Janeiro a Dezembro |
n | Representação numérica de um mês, sem zeros à esquerda | 1 a 12 |
t | Número de dias em determinado mês | 28 a 31 |
Por Ano: | ||
L | Quer seja um ano bissexto | 1 se for um ano bissexto, 0 caso contrário |
o | Número do ano ISO-8601. Tem o mesmo valor de Y, exceto que se o número da semana ISO (W) pertencer ao ano anterior ou seguinte, esse ano será usado | 1999 ou 2003 |
Y | Uma representação numérica completa de um ano, 4 dígitos | 1999 ou 2003 |
y | Uma representação de dois dígitos de um ano | 99 ou 03 Por ano |
Por Tempo: | ||
a | Ante meridiem minúsculo e pós meridiem | AM ou PM |
A | Ante meridiem maiúsculo e Post meridiem | AM ou PM |
B | Tempo de Internet da amostra | 000 a 999 |
g | Formato de 12 horas de uma hora sem zeros à esquerda | 1 a 12 |
G | Formato de 24 horas de uma hora sem zeros à esquerda | 0 a 23 |
h | Formato de 12 horas de uma hora com zeros à esquerda | 01 a 12 |
H | Formato de 24 horas de uma hora com zeros à esquerda | 00 a 23 |
i | Minutos com zeros à esquerda | 00 a 59 |
s | Segundos, com zeros à esquerda | 00 a 59 |
Por Fuso Horário: | ||
e | Identificador de fuso horário | UTC, GMT, Atlântico / Açores |
I | Se a data está ou não no horário de verão | 1 se for horário de verão, 0 caso contrário |
O | Diferença para o horário de Greenwich (GMT) em horas | +0200 |
P | Diferença para o horário de Greenwich (GMT) com dois pontos entre horas e minutos | +02: 00 |
T | Abreviatura de fuso horário | EST, MDT |
Z | Compensação de fuso horário em segundos. O deslocamento para os fusos horários a oeste do UTC é sempre negativo e, para os fusos horários a leste do UTC, é sempre positivo. | -43200 a 50400 |
Para data e tempo completo: | ||
c | Data ISO 8601 | 12/02/2004 T15: 19: 21 + 00: 00 |
r | Data formatada RFC 2822 | Qui, 21 de dezembro de 2000 16:01:07 +0200 |
U | Segundos desde a Época do Unix (1 de janeiro de 1970 00:00:00 GMT) |
Data (date)
Assinatura | {data (formato; carimbo de data / hora)} |
Parâmetro | formato: formatar texto carimbo de data / hora: valor de data / hora |
Descrição | Cria uma data no formato fornecido |
Retornos | carimbo de data / hora no formato fornecido |
Chamada de Exemplos | {data (ymd; 2016-02-11)} retorna 160211 |
Agora (now)
Assinatura | {agora (formato)} |
Parâmetro | formato: formatar texto |
Descrição | Cria a data / hora real no formato fornecido |
Retornos | Data / hora atual no formato fornecido |
Chamada de Exemplos | {agora (Y-m-d H: i: s)} retorna 2016-04-29 15:08:03 |
Noite (yesterday)
Assinatura | {ontem (formato)} |
Parâmetro | formato: formatar texto |
Descrição | Cria a data / hora de ontem no formato fornecido |
Retornos | Data / hora de ontem no formato fornecido |
Chamada de Exemplos | {ontem (Y-m-d H: i: s)} retorna 2016-04-28 15:08:03 |
Amanhã (tomorrow)
Assinatura | {amanhã (formato)} |
Parâmetro | formato: formatar texto |
Descrição | Cria a data / hora de amanhã no formato fornecido |
Retornos | Data / hora de amanhã no formato fornecido |
Chamada de Exemplos | {amanhã (Y-m-d H: i: s)} retorna 2016-04-30 15:08:03 |
DateDiff (datediff)
Assinatura | {datediff (timestamp1; timestamp2; unidade)} |
Parâmetro | timestamp1: valor data / hora timestamp2: valor data / hora unidade: anos / meses / dias / horas / minutos / segundos; padrão: dias |
Descrição | Subtrai timestamp2 de timestamp1 |
Retornos | A diferença entre as duas datas retornadas na unidade |
Chamada de Exemplos | {datediff (2016-02-01; 2016-04-22; days)} retorna 81 |
Adicionar Anos (addYears)
Assinatura | {addYears (format; timestamp; quantidade)} |
Parâmetro | formato: formatar texto carimbo de data / hora: valor de data / hora montante: número decimal |
Descrição | Adiciona quantidade de anos ao carimbo de data / hora |
Retornos | Data incrementada no formato |
Chamada de Exemplos | {addYears (Ymd; 2016-04-22; 1)} retorna 20170422 |
Adicionar Meses (addMonths)
Assinatura | {addMonths (format; timestamp; quantidade)} |
Parâmetro | formato: formatar texto carimbo de data / hora: valor de data / hora montante: número decimal |
Descrição | Adiciona quantidade de meses ao carimbo de data / hora |
Retornos | Data incrementada no formato |
Chamada de Exemplos | {addMonths (Ymd; 2016-04-22; 1)} retorna 20160522 |
Adicionar Dias (addDays)
Assinatura | {addDays (format; timestamp; quantidade)} |
Parâmetro | formato: formatar texto carimbo de data / hora: valor de data / hora montante: número decimal |
Descrição | Adiciona quantidade de dias ao carimbo de data / hora |
Retornos | Data incrementada no formato |
Chamada de Exemplos | {addDays (Ymd; 2016-04-22; 1)} retorna 20160423 |
Adicionar Horas (addHours)
Assinatura | {addHours (format; timestamp; quantidade)} |
Parâmetro | formato: formatar texto carimbo de data / hora: valor de data / hora montante: número decimal |
Descrição | Adiciona quantidade de horas ao carimbo de data / hora |
Retornos | Data incrementada no formato |
Chamada de Exemplos | {addHours (Ymd H: i: s; 2016-04-22 23:30; 5)} retorna 20160423 04:30:00 |
Adicionar Minutos (addMinutes)
Assinatura | {addMinutes (format; timestamp; quantidade)} |
Parâmetro | formato: formatar texto carimbo de data / hora: valor de data / hora montante: número decimal |
Descrição | Adiciona quantidade de minutos ao carimbo de data / hora |
Retornos | Data incrementada no formato |
Chamada de Exemplos | {addMinutes (Ymd H: i: s; 2016-04-22 22:58; 5)} retorna 20160422 23:03:00 |
Adicionar Segundos (addSeconds)
Assinatura | {addSeconds (format; timestamp; quantidade)} |
Parâmetro | formato: formatar texto carimbo de data / hora: valor de data / hora montante: número decimal |
Descrição | Adiciona quantidade de segundos ao carimbo de data / hora |
Retornos | Data incrementada no formato |
Chamada de Exemplos | {addSeconds (Ymd H: i: s; 2016-04-22 22:58; 5)} retorna 20160422 22:58:05 |
Subtrair Anos (subtractYears)
Assinatura | {subtractYears (format; timestamp; quantidade)} |
Parâmetro | formato: formatar texto carimbo de data / hora: valor de data / hora montante: número decimal |
Descrição | Subtrai a quantidade de anos do carimbo de data / hora |
Retornos | Data diminuída no formato |
Chamada de Exemplos | {subtractYears (Ymd; 2016-04-22; 5)} retorna 20110422 |
Subtrair Meses (subtractMonths)
Assinatura | {subtractMonths (format; timestamp; quantidade)} |
Parâmetro | formato: formatar texto carimbo de data / hora: valor de data / hora montante: número decimal |
Descrição | Subtrai a quantidade de meses do carimbo de data / hora |
Retornos | Data diminuída no formato |
Chamada de Exemplos | {subtractMonths (Ymd; 2016-04-22; 5)} retorna 20151122 |
Subtrair Dias (subtractDays)
Assinatura | {subtractDays (format; timestamp; quantidade)} |
Parâmetro | formato: formatar texto carimbo de data / hora: valor de data / hora montante: número decimal |
Descrição | Subtrai a quantidade de dias do carimbo de data / hora |
Retornos | Data diminuída no formato |
Chamada de Exemplos | {subtractDays (Ymd; 2016-04-22; 5)} retorna 20160417 |
Subtrair Horas (subtractHours)
Assinatura | {subtractHours (format; timestamp; quantidade)} |
Parâmetro | formato: formatar texto carimbo de data / hora: valor de data / hora montante: número decimal |
Descrição | Subtrai horas de montagem do carimbo de data / hora |
Retornos | Data diminuída no formato |
Chamada de Exemplos | {subtractHours (Ymd H: i: s; 2016-04-22 12:37; 5)} retorna 20160422 07:37:00 |
Subtrair Minutos (subtrairMinutes)
Assinatura | {subtractMinutes (format; timestamp; quantidade)} |
Parâmetro | formato: formatar texto carimbo de data / hora: valor de data / hora montante: número decimal |
Descrição | Subtrai a quantidade de minutos do carimbo de data / hora |
Retornos | Data diminuída no formato |
Chamada de Exemplos | {subtractMinutes (Ymd H: i: s; 2016-04-22 12:37; 5)} retorna 20160422 12:32:00 |
Subtrair Segundos (subtractSeconds)
Assinatura | {subtractSeconds (format; timestamp; quantidade)} |
Parâmetro | formato: formatar texto carimbo de data / hora: valor de data / hora montante: número decimal |
Descrição | Subtrai a quantidade de minutos do carimbo de data / hora |
Retornos | Data diminuída no formato |
Chamada de Exemplos | {subtractSeconds (Ymd H: i: s; 2016-04-22 12:37; 5)} retorna 20160422 12:36:55 |
Funções de controle
Existe apenas uma função de controle implementada em Calcular Campos até agora, mas esta função garante que o usuário possa escrever fórmulas muito complexas com condições. Uma vez que as funções podem ser incorporadas umas às outras, o usuário pode escrever junções com muitos ramos.
Se Então Outra (ifThenElse)
Assinatura | {ifThenElse (condição; trueBranch; falseBranch)} |
Parâmetro | condição: valor lógico trueBranch: qualquer expressão falseBranch: qualquer expressão |
Descrição | Seleciona um dos dois ramos dependendo da condição |
Retornos | trueBranch se a condição for verdadeira, falseBranch caso contrário |
Chama de Exemplos | {ifThenElse ( {igual (1; 1)}; 1 é igual a 1; 1 não é igual a 1)} retorna 1 igual a 1 |
Contadores
Existem vários contadores implementados em Calcular Campos que podem ser usados em vários cenários.
Os contadores classificados em dois grupos:
- Contadores globais: contadores que são incrementados toda vez que uma fórmula afetada é avaliada
- Contadores diários: contadores que zeram todos os dias. (Começando de 1)
Neste capítulo, assumimos que o valor atual dos contadores é 4, então o valor incrementado será 5 com o formato fornecido.
Contador Global (globalCounter)
Assinatura | {GlobalCounter (name; numberLength)} |
Parâmetro | nome: qualquer texto numberLength: número decimal |
Descrição | Incrementa e retorna o contador para o nome com comprimento numberLength |
Retornos | Contador com comprimento numberLength |
Chamada de Exemplos | {GlobalCounter (myName; 4)} retorna 0005 |
Contador Global De Usuário (globalCounterPerUser)
Assinatura | {GlobalCounterPerUser (name; numberLength)} |
Parâmetro | nome: qualquer texto numberLength: número decimal |
Descrição | Incrementa e retorna o contador para o nome do usuário que cria a entidade com comprimento numberLength |
Retornos | Contador com comprimento numberLength |
Chamada de Exemplos | {GlobalCounterPerUser (myName; 3)} retorna 005 |
Contador Global Por Módulo (globalCounterPerModule)
Assinatura | {GlobalCounterPerModule (name; numberLength)} |
Parâmetro | nome: qualquer texto numberLength: número decimal |
Descrição | Incrementa e retorna o contador para o nome do módulo da entidade com comprimento numberLength |
Retornos | Contador com comprimento numberLength |
Chamada de Exemplos | {GlobalCounterPerModule (myName; 2)} retorna 05 |
Contador Global Por Usuário e Por Módulo (globalCounterPerUserPerModule)
Assinatura | {GlobalCounterPerUserPerModule (name; numberLength)} |
Parâmetro | nome: qualquer texto numberLength: número decimal |
Descrição | Incrementa e retorna o contador para o nome do usuário que cria a entidade e para o módulo da entidade com comprimento numberLength |
Retornos | Contador com comprimento numberLength |
Chamada de Exemplos | {GlobalCounterPerUserPerModule (myName; 1)} retorna 5 |
Contador Diário (dailyCounter)
Assinatura | {DailyCounter (name; numberLength)} |
Parâmetro | nome: qualquer texto numberLength: número decimal |
Descrição | Incrementa e retorna o contador para o nome com comprimento numberLength |
Retornos | Contador com comprimento numberLength ou, se o contador não for incrementado neste dia, 1 com comprimento numberLength |
Chamada de Exemplos | {DailyCounter (myName; 1)} retorna 5 |
Contador Diário Por Usuário (dailyCounterPerUser)
Assinatura | {DailyCounterPerUser (name; numberLength)} |
Parâmetro | nome: qualquer texto |
numberLength: número decimal | Descrição |
Incrementa e retorna o contador para o nome do usuário que cria a entidade com comprimento numberLength | Retornos |
Contador com comprimento numberLength ou se o contador não for incrementado neste dia para este usuário, então 1 com comprimento numberLength | Chamada de Exemplos |
Contador Diário Por Modulo (dailyCounterPerModule)
Assinatura | {DailyCounterPerModule (name; numberLength)} |
Parâmetro | nome: qualquer texto numberLength: número decimal |
Descrição | Incrementa e retorna o contador para o nome do módulo da entidade com comprimento numberLength |
Retornos | Contador com comprimento numberLength, ou se o contador não for incrementado neste dia para este módulo, então 1 com comprimento numberLength |
Chamada de Exemplos | {DailyCounterPerModule (myName; 1)} retorna 5 |
Contador Diário Por Usuário e Por Módulo (dailyCounterPerUserPerModule)
Assinatura | {DailyCounterPerUserPerModule (name; numberLength)} |
Parâmetro | nome: qualquer texto numberLength: número decimal |
Descrição | Incrementa e retorna o contador para o nome do usuário que cria a entidade e para o módulo da entidade com comprimento numberLength |
Retornos | Contador com comprimento numberLength ou se o contador não for incrementado neste dia para o usuário que cria a entidade e para este módulo, então 1 com comprimento numberLength |
Chamada de Exemplos | {DailyCounterPerUserPerModule (myName; 1)} retorna 5 |
Exemplo – Calcular a taxa mensal para uma oportunidade
Caso de uso
O usuário gostaria de calcular uma taxa mensal de uma oportunidade para um campo personalizado, dividindo o valor da oportunidade pela duração.
Configuração
Nosso módulo de oportunidades tem um campo suspenso denominado Duração com valores: (valor do banco de dados entre colchetes) 6 meses [6], 1 ano [12], 2 anos [24]. Também existe um campo de moeda denominado Mensal.
Fluxo de Trabalho
Vá para o módulo Workflow e crie um novo Workflow. Defina as opções básicas como a seguir:
Nome: como desejar | Módulo de fluxo de trabalho: oportunidades |
Status: Ativo | Executar: somente ao salvar |
Executar em: Todos os registros | Corridas repetidas: verificado |
Não criamos nenhuma condição, pois gostaríamos que o Workflow fosse executado em todas as oportunidades.
Agora, adicione uma ação e selecione Calcular campos no menu suspenso.
Em seguida, adicione dois campos de Oportunidades como parâmetros.
Primeiro, selecione Valor da oportunidade (valor) e adicione-o como um parâmetro (será {P0}), em seguida, selecione Duração e a opção de valor bruto na lista suspensa de tipo de dados e adicione-o como parâmetro dois (será {P1}).
Não há necessidade de adicionar parâmetros relacionais para esta fórmula.
Agora, adicione uma fórmula para o campo mensal e preencha a caixa de texto com a seguinte fórmula:
{divide({P0}; {P1})}
Portanto, toda a ação deve ser semelhante a esta:
Salve o fluxo de trabalho e crie uma nova oportunidade:
Como você pode ver, nem mesmo adicionamos o campo mensal ao EditView, porque não queremos forçar o usuário a fazer cálculos. Salve a oportunidade e verifique os resultados no DetailView:
AOW Calculated Fields foi contribuído por diligente tecnologia e consultoria de negócios GmbH.
Removendo Ações
Você pode remover as linhas de ação clicando no x no lado superior direito da ação.
Removendo Linhas de Campo e Relacionamento
Você pode remover as linhas de campo e de relacionamento clicando no – no lado esquerdo da ação.