Campos Calculados De Fluxo De Trabalho

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:

  1. Contadores globais: contadores que são incrementados toda vez que uma fórmula afetada é avaliada
  2. 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.