Visão geral das expressões de dados calculadas
Você pode usar expressões de dados para definir campos personalizados calculados no Adobe Workfront. As expressões calculadas conectam campos existentes do Workfront em instruções que geram um novo campo.
Você pode usar expressões de dados calculados em:
-
Um campo personalizado calculado em um formulário personalizado
Para obter mais informações sobre como criar campos personalizados calculados em formulários personalizados no Workfront, consulte Adicionar campos calculados a um formulário.
-
Uma coluna personalizada calculada em um relatório ou lista, quando você usa o modo de texto
Para obter mais informações sobre como usar o modo de texto em relatórios e visualizações, consulte Visão geral do modo de texto.
Sintaxe dos campos personalizados calculados vs. colunas personalizadas calculadas
Embora as funções utilizadas sejam as mesmas, a sintaxe para criar uma expressão em um campo personalizado calculado pode ser diferente daquela utilizada para criar uma coluna personalizada calculada.
As diferenças entre as duas sintaxes são:
Por exemplo:
-
Em um campo personalizado, em um formulário personalizado para tarefas, você usaria o seguinte para gerar o nome do projeto principal da tarefa à qual o formulário personalizado está anexado:
{project}.{name} -
Em uma coluna personalizada em um relatório, você usaria o seguinte para adicionar uma coluna personalizada “Nome do projeto” em um relatório de tarefas:
valuefield=project:nameOu
valueexpression={project}.{name}note tip TIP A mesma sintaxe se aplica a todos os elementos de relatório em modo de texto onde são utilizadas expressões calculadas: visualizações, filtros, agrupamentos, prompts.
Para obter mais informações sobre a sintaxe que você deve usar em uma coluna personalizada calculada, consulte Visão geral do modo de texto.
Expressões de dados que você pode usar
As listas abaixo definem as expressões disponíveis que você pode usar ao criar um dos 3 tipos diferentes de campos personalizados calculados no Workfront:
Você pode usar as expressões listadas abaixo para criar colunas personalizadas calculadas. No entanto, você deve usar a sintaxe correta para uma coluna personalizada calculada, conforme descrito na seção Sintaxe de campos personalizados calculados vs. colunas personalizadas calculadas neste artigo.
Campos personalizados calculados de data e hora date-time-calculated-custom-fields
Você pode criar um campo personalizado calculado de data ou hora usando as seguintes expressões:
Adiciona o número de dias à data. O valor numérico pode incluir dias parciais. Por exemplo, 1,5 adiciona um dia e meio à data.
A expressão é formatada da seguinte maneira:
ADDDAYS(date, number)
Adiciona o número de dias úteis à data. Esta expressão apenas adiciona valores inteiros à data, arredondando para baixo.
A expressão é formatada da seguinte maneira:
ADDWEEKDAYS(date, number)
Adiciona o número de meses à data e é formatado da seguinte forma:
ADDMONTHS(date, number)
Adiciona o número de anos à data e é formatado da seguinte forma:
ADDYEARS(date, number)
Adiciona o número de horas à data e é formatado da seguinte forma:
ADDHOUR(date, number)
Observação: esta expressão não é compatível com o Workfront Planning.
Apaga a parte da hora de uma data e é formatado da seguinte forma. Neste exemplo, a data é a data de entrada de um objeto de trabalho.
CLEARTIME({entryDate})
Converte uma string em uma data e é formatada da seguinte maneira:
DATE(string)
Retorna o número de dias entre as duas datas, levando em consideração os dias de início e fim do período selecionado, bem como os registros de data e hora desses dias. Por exemplo, se a hora de início da data inicial for 15h, o dia de início não é contado como um dia inteiro.
A expressão é formatada da seguinte maneira:
DATEDIFF(date1, date2)
Retorna o dia do mês da data como um número, entre 1 e 31.
A expressão é formatada da seguinte maneira. Neste exemplo, a data é a data de entrada de um objeto de trabalho.
DAYOFMONTH({entryDate})
Retorna o dia da semana para a data como um número, entre 1 (domingo) e 7 (sábado).
A expressão é formatada da seguinte maneira. Neste exemplo, a data é a data de entrada de um objeto de trabalho.
DAYOFWEEK({entryDate})
Retorna o total de dias no mês da data como um número e é formatado da seguinte maneira. Neste exemplo, a data é a data de entrada de um objeto de trabalho.
DAYSINMONTH({entryDate})
Retorna o total de dias úteis entre a data e o final da semana ou o final do mês, o que ocorrer primeiro. Neste exemplo, a data é a data de entrada de um objeto de trabalho.
A expressão é formatada da seguinte maneira:
DAYSINSPLITWEEK({entryDate})
Retorna o total de dias no ano da data como um número e é formatado da seguinte maneira. Neste exemplo, a data é a data de entrada de um objeto de trabalho.
DAYSINYEAR({entryDate})
Retorna a data mais recente da lista e é formatada da seguinte maneira:
DMAX(date1, date2, ...)
Retorna a data mais antiga da lista e é formatada da seguinte maneira:
DMIN(date1, date2, ...)
Retorna a hora da data como um número entre 0 e 23.
A expressão é formatada da seguinte maneira. Neste exemplo, a data é a data de entrada de um objeto de trabalho.
HOUR({entryDate})
Retorna o minuto da data como um número entre 0 e 60, formatado da seguinte maneira. Neste exemplo, a data é a data de entrada de um objeto de trabalho.
MINUTE({entryDate})
Retorna o mês da data como um número entre 1 e 12, formatado da seguinte maneira. Neste exemplo, a data é a data de entrada de um objeto de trabalho.
MONTH({entryDate})
Retorna o segundo da data como um número entre 0 e 60, formatado da seguinte maneira. Neste exemplo, a data é a data de entrada de um objeto de trabalho.
SECOND({entryDate})
Retorna o número de dias úteis entre duas datas, levando em consideração os dias de início e fim do período selecionado, bem como os registros de data e hora desses dias. Por exemplo, se a hora de início da data inicial for 15h, o dia de início não será contado como um dia inteiro.
A expressão é formatada da seguinte maneira:
WEEKDAYDIFF(date2, date1)
Retorna o número de minutos programados entre as datas de acordo com o cronograma padrão.
A expressão é formatada da seguinte maneira:
WORKMINUTESDIFF(date1, date2)
Retorna o ano da data como um número de 4 dígitos, formatado da seguinte maneira. Neste exemplo, a data é a data de entrada de um objeto de trabalho.
YEAR({entryDate})
Campos personalizados calculados matemáticos mathematical-calculated-custom-fields
Você pode criar um campo personalizado calculado que utilize algumas das seguintes expressões matemáticas:
Retorna o valor absoluto do número e é formatado da seguinte maneira. Este exemplo usa o número de objetos abaixo do objeto ao qual o formulário personalizado está anexado.
ABS({numberOfChildren})
Retorna a média dos números e é formatado da seguinte forma:
AVERAGE(number1, number2, ...)
Arredonda para cima um número inteiro para o mais próximo e é formatado da seguinte maneira. Este exemplo usa o número de objetos abaixo do objeto ao qual o formulário personalizado está anexado.
CEIL({numberOfChildren})
Divide todos os números na ordem fornecida e é formatado da seguinte forma:
DIV(number1, number2, ...)
Arredonda para baixo um número inteiro para o mais próximo e é formatado da seguinte maneira. Este exemplo usa o número de objetos abaixo do objeto ao qual o formulário personalizado está anexado.
FLOOR({numberOfChildren})
Retorna o valor do logaritmo natural do número e é formatado da seguinte maneira:
LN({numberOfChildren})
Retorna o valor logarítmico de número2 na base número1 e é formatado da seguinte maneira:
LOG(number1, number2)
Retorna o maior item da lista e é formatado da seguinte maneira:
MAX(item1, item2, ...)
Retorna o menor item da lista e é formatado da seguinte maneira:
MIN(item1, item2, ...)
Converte uma string em um número e é formatado da seguinte maneira:
NUMBER(string)
Retorna um número elevado a uma potência e é formatado da seguinte maneira:
POWER(number, power)
Multiplica todos os números e é formatado da seguinte forma:
PROD(number1, number2, ....)
NOTA
Ao multiplicar campos que contêm horas, certifique-se de compreender se o banco de dados salva as horas nos campos selecionados em minutos, horas ou segundos. Se as horas forem salvas em minutos ou segundos, mas exibidas em horas na interface do Workfront, talvez seja necessário levar em conta a conversão de minutos ou segundos para horas ao escrever uma expressão usando esse cálculo.
Arredonda para cima um número para a quantidade de casas decimais especificadas e é formatado da seguinte forma:
ROUND(number, precision)
Ordena os números em ordem crescente e é formatado da seguinte forma:
SORTASCNUM(number1,number2, ...)
Ordena os números em ordem decrescente e é formatado da seguinte forma:
SORTDESCNUM(number1, number2, ...)
Retorna a raiz quadrada de um número e é formatado da seguinte maneira. Este exemplo usa o número de objetos abaixo do objeto ao qual o formulário personalizado está anexado.
SQRT({numberOfChildren})
Subtrai todos os números na ordem fornecida e é formatado da seguinte forma:
SUB(number1, number2, ...)
Soma todos os números e é formatado da seguinte maneira:
SUM(number1, number2, ...)
Campos personalizados calculados em texto text-calculated-custom-fields
Você pode criar um campo personalizado calculado que exiba um valor formatado como texto usando as seguintes expressões:
Converte uma string em uma matriz. O delimitador pode ser qualquer string.
A expressão é formatada da seguinte maneira:
ARRAY(string1, "delimiter")
Procura um valor específico em uma lista ou matriz. Se o valor for encontrado, a função retorna Verdadeiro, caso contrário, retorna Falso.
A expressão é formatada da seguinte maneira:
ARRAYCONTAINS(array, value)
Retorna o número de elementos na matriz e é formatado da seguinte maneira:
ARRAYLENGTH(array)
Retorna o elemento no número especificado na matriz. Se o índice estiver fora dos limites, ele retornará vazio.
A expressão é formatada da seguinte maneira:
ARRAYELEMENT(array, number)
É usado com outras expressões para escolher um valor de uma lista, com base em um número de índice.
Um número de índice é um campo ou função que retorna um valor numérico (geralmente em um intervalo conhecido).
A expressão é formatada da seguinte maneira:
CASE(indexNumber, value1, value2, ...)
Por exemplo, a expressão a seguir retorna o nome do dia da semana, onde 1 = domingo, 2 = segunda-feira e assim por diante, em uma coluna calculada:
CASE(DAYOFWEEK({entryDate}),"Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday")
Funciona melhor com outras expressões que retornam um número, como DAYOFWEEK, DAYOFMONTH e MONTH.
Concatena a string e é formatada da seguinte maneira:
CONCAT(string1,"separator", string2)
A seguir estão alguns exemplos de separadores que você pode incluir:
- um espaço: " "
- um traço: "-"
- uma barra: "/"
- uma vírgula: ","
- uma palavra: "ou", "e"
Retorna verdadeiro se a string findText for encontrada dentro da string withinText e estiver formatada da seguinte maneira:
CONTAINS(findText, withinText)
Escapa quaisquer caracteres especiais na string para que possam ser incluídos em um argumento de URL.
A expressão é formatada da seguinte maneira:
ENCODEURL(string)
Retorna o texto formatado. Apenas as opções de parâmetros listadas aqui são permitidas com FORMAT.
As opções de cor são $$POSITIVE, $$INFORMATIVE, $$NEGATIVE, $$NOTICE e as outras opções de formatação são $$BOLD, $$ITALIC, $$UNDERLINE. É permitida apenas uma opção de cor, juntamente com até três outras opções de formatação. Se nenhuma opção de cor for especificada, a cor padrão do sistema será aplicada.
A expressão é formatada da seguinte maneira:
FORMAT($$POSITIVE, $$BOLD, $$ITALIC)
Observação: esta expressão não é compatível com o Workfront Planning.
Avalia uma condição especificada e retorna o valor da trueExpression se ela for verdadeira, ou o valor da falseExpression se ela for falsa.
A expressão é formatada da seguinte maneira:
IF(condition, trueExpression, falseExpression)
Por exemplo, você pode comparar dois campos de data diferentes seguidos por um resultado Verdadeiro/Falso como uma string de dados:
IF({projectedCompletionDate}>{plannedCompletionDate},"Off Track","On Track")
Na linguagem cotidiana, essa afirmação significa: “SE a data de conclusão prevista do meu objeto for ‘maior que’ a data de conclusão planejada do mesmo objeto, exiba as palavras ‘Fora do prazo’ neste campo; caso contrário, exiba as palavras ‘Dentro do prazo’”.
Se você não quiser rotular as expressões verdadeiras ou falsas, deve inserir um rótulo em branco em sua declaração, como:
IF({projectedCompletionDate}>{plannedCompletionDate},"","On Track")
Ou
IF({projectedCompletionDate}>{plannedCompletionDate},"Off Track","")
Para obter mais informações sobre como criar instruções “IF”, consulte Visão geral das instruções “IF”.
Permite procurar um valor específico em uma string de valores possíveis. Se o valor que você está procurando for igual a um dos valores fornecidos, a expressão retornará a trueExpression; caso contrário, retornará a falseExpression.
A expressão é formatada da seguinte maneira:
IFIN(value, value1, value2,..., trueExpression, falseExpression)
Por exemplo, você pode encontrar um proprietário de projeto específico e marcar esses projetos com uma etiqueta específica em uma exibição de projeto:
IFIN({owner}.{name},"Jennifer Campbell","Rick Kuvec","Marketing Team","Other Teams")
Na linguagem cotidiana, essa afirmação significa: “Se o proprietário do projeto for Jennifer Campbell ou Rick Kuvec, marque este projeto com ‘Equipe de Marketing’; caso contrário, marque-o com ‘Outras equipes’.”
Se você não quiser rotular as expressões verdadeiras ou falsas, deve inserir um rótulo em branco em sua declaração, como:
IFIN({owner}.{name},"Jennifer Campbell","Rick Kuvec","","Other Teams")
Ou
IFIN({owner}.{name},"Jennifer Campbell","Rick Kuvec","Marketing Team","")
Retorna verdadeiro se o valor for igual a um dos valores fornecidos; caso contrário, a expressão retorna falso.
A expressão é formatada da seguinte maneira:
IN(value, value1[, value2...])
Retorna verdadeiro se o valor for nulo ou em branco; caso contrário, a expressão retorna falso.
A expressão é formatada da seguinte maneira:
ISBLANK(value)
Retorna um número especificado de caracteres do lado esquerdo de uma string e é formatado da seguinte maneira:
LEFT(string, length)
Retorna o comprimento de uma string e é formatado da seguinte maneira:
LEN(string)
Retorna a string em minúsculas e formatada da seguinte maneira:
LOWER(string)
Converte a string de entrada para PascalCase, colocando em maiúscula a primeira letra de cada palavra e removendo todos os espaços.
A expressão é formatada da seguinte maneira:
PASCAL(string)
Por exemplo, “olá mundo” se torna “OláMundo”
Remove os sinais diacríticos de todos os caracteres acentuados na string de entrada.
A expressão é formatada da seguinte maneira:
REMOVEACCENTS(string)
Por exemplo, “Olá mündó com àcentós” torna-se “Ola mundo com acentos”.
Substitui todas as ocorrências de string2 por string3 em string1.
A expressão é formatada da seguinte maneira:
REPLACE(string1, string2, string3)
Substitui as correspondências do padrão fornecido pela string de substituição.
A expressão é formatada da seguinte maneira:
REPLACEPATTERN (string, pattern, replacement string)
Por exemplo, REPLACEPATTERN("foo123bar", "\d+", "_") gera a string “foo_bar”.
Retorna um número especificado de caracteres do lado direito de uma string e é formatado da seguinte maneira:
RIGHT(string, length)
Retorna o índice da primeira ocorrência de findText na string withinText, começando na posição inicial especificada, ou –1 se o texto não for encontrado.
A expressão é formatada da seguinte maneira:
SEARCH(findText, withinText, start)
Ordena os elementos da matriz em ordem crescente e os converte para o tipo do primeiro elemento.
A expressão é formatada da seguinte maneira:
SORTASCARRAY(array)
Por exemplo, ["–12,6", –13,0] torna-se ["–12,6", "–13"].
Observação: esta expressão não é compatível com o Workfront Planning.
Ordena os elementos da matriz em ordem decrescente e os converte para o tipo do primeiro elemento.
A expressão é formatada da seguinte maneira:
SORTDESCARRAY(array)
Por exemplo, ["–12,6", –13,0] torna-se ["–13", "–12.6"].
Observação: esta expressão não é compatível com o Workfront Planning.
Converte um número em uma string e é formatado da seguinte maneira:
STRING(number)
Classifica uma lista de strings em ordem crescente e é formatada da seguinte maneira:
SORTASCSTRING(string1, string2, ...)
Classifica uma lista de strings em ordem decrescente e é formatada da seguinte maneira:
SORTDESCSTRING(string1, string2, ...)
Retorna caracteres de uma string com base no índice inicial e final especificado e é formatado da seguinte maneira:
SUBSTR({string}, number of start position, number of end position)
Avalia a expressão em contraste com uma lista de valores e retorna o resultado equivalente ao primeiro valor correspondente.
A expressão é formatada da seguinte forma:
SWITCH(expression, value1, result1, [value2, result2], ...)
Esta expressão não é suportada no Workfront Planning.
Remove os espaços em branco do início e do final de uma string e é formatado da seguinte maneira:
TRIM(string)
Retorna uma string em maiúsculas e é formatada da seguinte maneira:
UPPER(string)