Nesta página

Funções avançadas

Essas famílias de funções completam a linguagem de expressões. Cada grupo abaixo lista suas funções com parâmetros, tipo de retorno e exemplos.

Funções de texto e padrões

Funções de expressões regulares

Funções para localizar e substituir padrões usando expressões regulares.

regexMatch

(text, pattern)

Verifica se uma string corresponde a um padrão de expressão regular.

Parâmetros
text string A string a ser testada
pattern string O padrão de expressão regular
Retorno booleano
Exemplos
regexMatch("abc123", "[0-9]+") true
regexMatch("hello", "^[0-9]+$") false
Veja também

regexReplace

(text, pattern, replacement)

Substitui todas as ocorrências de um padrão de expressão regular em uma string.

Parâmetros
text string A string de entrada
pattern string O padrão de expressão regular a ser localizado
replacement string A string de substituição
Retorno texto
Exemplos
regexReplace("abc123def456", "[0-9]+", "#") abc#def#
regexReplace("hello world", "\s+", " ") hello world
Veja também

regexExtract

(text, pattern, group?)

Extrai a primeira correspondência de um padrão de expressão regular em uma string. Opcionalmente, você pode extrair um grupo de captura específico.

Parâmetros
text string A string de entrada
pattern string O padrão de expressão regular
group (opcional) number O índice do grupo de captura; 0 representa a correspondência completa (padrão: 0)
Retorno texto
Exemplos
regexExtract("abc123def", "[0-9]+") 123
regexExtract("2025-01-15", "(\d{4})-(\d{2})", 1) 2025
Veja também

Utilitários de texto

Funções adicionais de manipulação de strings.

repeat

(text, count)

Repete um texto um número específico de vezes.

Parâmetros
text string Texto a ser repetido
count number Número de repetições
Retorno string
Exemplos
repeat("ab", 3) "ababab"

countOccurrences

(text, search)

Conta ocorrências não sobrepostas de uma substring.

Parâmetros
text string Texto a ser pesquisado
search string Substring a ser encontrada
Retorno número
Exemplos
countOccurrences("abcabc", "abc") 2

split

(text, delimiter, index)

Divide o texto usando um delimitador e retorna a enésima parte, começando por 1.

Parâmetros
text string Texto a ser dividido
delimiter string Delimitador usado para dividir
index number Índice baseado em 1 da parte a ser retornada
Retorno string
Exemplos
split("a-b-c", "-", 2) "b"

exact

(a, b)

Comparação de strings com distinção entre maiúsculas e minúsculas. Retorna true se as duas strings forem idênticas.

Parâmetros
a string Primeira string
b string Segunda string
Retorno booleano
Exemplos
exact("Hello", "hello") false

Auxiliares de data e duração

Funções auxiliares de duração

Converte durações em milissegundos para unidades de tempo comuns.

durationInDays

(ms)

Converte milissegundos em dias.

Parâmetros
ms number Duração em milissegundos
Retorno número
Exemplos
durationInDays(86400000) 1
durationInDays(caseThroughputTime) Tempo de throughput em dias

durationInHours

(ms)

Converte milissegundos em horas.

Parâmetros
ms number Duração em milissegundos
Retorno número
Exemplos
durationInHours(3600000) 1
durationInHours(stepDuration) Duração da etapa em horas

durationInMinutes

(ms)

Converte milissegundos em minutos.

Parâmetros
ms number Duração em milissegundos
Retorno número
Exemplos
durationInMinutes(60000) 1
durationInMinutes(waitingTime) Tempo de espera em minutos

durationInSeconds

(ms)

Converte milissegundos em segundos.

Parâmetros
ms number Duração em milissegundos
Retorno número
Exemplos
durationInSeconds(1500) 1.5

Construção de datas

Cria datas a partir de partes ou converte strings em datas.

date

(year, month, day)

Cria uma data UTC a partir do ano, mês e dia.

Parâmetros
year number O ano
month number O mês (1-12)
day number O dia do mês
Retorno data
Exemplos
date(2024, 1, 1) 1704067200000
date(2024, 6, 15) 15 de junho de 2024

toDate

(value, format?)

Converte um valor em data. Aceita números, como milissegundos desde a época Unix, ou strings.

Parâmetros
value any O valor a ser convertido em data
format (opcional) string Padrão de formato da data (opcional)
Retorno data
Exemplos
toDate(1704067200000) 1704067200000
toDate("2024-01-15") 15 de janeiro de 2024
toDate("31/12/2024 23:45:59", "dd/MM/yyyy HH:mm:ss") 1735688759000
Observações

Quando um formato for informado, use os mesmos tokens compatíveis com formatDate. A conversão usa UTC.

today

()

Retorna a data atual à meia-noite em UTC.

Retorno data
Exemplos
today() Data atual à meia-noite

Limites de períodos de data

Trunca ou arredonda datas para o início de um período.

startOfDay

(date)

Trunca uma data para o início do dia, à meia-noite.

Parâmetros
date date A data a ser truncada
Retorno data
Exemplos
startOfDay(StartTime) Meia-noite do mesmo dia

startOfWeek

(date)

Retorna o início da semana, na segunda-feira.

Parâmetros
date date A data
Retorno data
Exemplos
startOfWeek(StartTime) Segunda-feira da mesma semana

startOfMonth

(date)

Retorna o primeiro dia do mês.

Parâmetros
date date A data
Retorno data
Exemplos
startOfMonth(StartTime) Primeiro dia do mês

startOfYear

(date)

Retorna 1º de janeiro do ano.

Parâmetros
date date A data
Retorno data
Exemplos
startOfYear(StartTime) 1º de janeiro

endOfWeek

(date)

Retorna o fim da semana, domingo às 23:59:59.

Parâmetros
date date A data
Retorno data
Exemplos
endOfWeek(StartTime) Fim do dia de domingo

endOfMonth

(date)

Retorna o fim do mês às 23:59:59.

Parâmetros
date date A data
Retorno data
Exemplos
endOfMonth(StartTime) Último dia do mês, fim do dia

endOfYear

(date)

Retorna 31 de dezembro às 23:59:59.

Parâmetros
date date A data
Retorno data
Exemplos
endOfYear(StartTime) 31 de dezembro, no fim do dia

Atalhos de data

Funções práticas para operações comuns de adição e cálculo de diferenças entre datas.

daysBetween

(date1, date2)

Retorna a diferença em dias entre duas datas.

Parâmetros
date1 date Data inicial
date2 date Data final
Retorno número
Exemplos
daysBetween(StartTime, EndTime) Duração em dias entre duas datas

hoursBetween

(date1, date2)

Retorna a diferença em horas entre duas datas.

Parâmetros
date1 date Data inicial
date2 date Data final
Retorno número
Exemplos
hoursBetween(StartTime, EndTime) Duração em horas entre duas datas

minutesBetween

(date1, date2)

Retorna a diferença em minutos entre duas datas.

Parâmetros
date1 date Data inicial
date2 date Data final
Retorno número
Exemplos
minutesBetween(StartTime, EndTime) Duração em minutos entre duas datas

secondsBetween

(date1, date2)

Retorna a diferença em segundos entre duas datas.

Parâmetros
date1 date Data inicial
date2 date Data final
Retorno número
Exemplos
secondsBetween(StartTime, EndTime) Duração em segundos entre duas datas

addDays

(date, days)

Adiciona dias a uma data.

Parâmetros
date date Data base
days number Número de dias a adicionar
Retorno data
Exemplos
addDays(StartTime, 5) Data 5 dias depois

addHours

(date, hours)

Adiciona horas a uma data.

Parâmetros
date date Data base
hours number Número de horas a adicionar
Retorno data
Exemplos
addHours(StartTime, 3) Data 3 horas depois

addMinutes

(date, minutes)

Adiciona minutos a uma data.

Parâmetros
date date Data base
minutes number Número de minutos a adicionar
Retorno data
Exemplos
addMinutes(StartTime, 30) Data 30 minutos depois

addSeconds

(date, seconds)

Adiciona segundos a uma data.

Parâmetros
date date Data base
seconds number Número de segundos a adicionar
Retorno data
Exemplos
addSeconds(StartTime, 45) Data 45 segundos depois

endOfDay

(date)

Retorna o fim do dia, 23:59:59.999, para uma determinada data.

Parâmetros
date date Data de entrada
Retorno data
Exemplos
endOfDay(StartTime) 23:59:59 no mesmo dia

startOfQuarter

(date)

Retorna o primeiro dia do trimestre de uma determinada data.

Parâmetros
date date Data de entrada
Retorno data
Exemplos
startOfQuarter(StartTime) 01/04/2024 para uma data de junho

endOfQuarter

(date)

Retorna o último instante do trimestre para uma determinada data.

Parâmetros
date date Data de entrada
Retorno data
Exemplos
endOfQuarter(StartTime) 2024-06-30T23:59:59Z para uma data de junho

Auxiliares de lógica

Condicional com múltiplas opções

Compara um valor com vários casos.

switch

(value, match1, result1, ..., default?)

Compara um valor com uma lista de casos e retorna o resultado correspondente. É semelhante a um if com várias condições.

Parâmetros
value any Valor a ser comparado
match1, result1, ... any Pares de valores de comparação e resultados
default (opcional) any Resultado padrão se não houver correspondência, opcional
Retorno qualquer
Exemplos
switch("a", "a", 1, "b", 2, 0) 1
switch(Status, "Open", 1, "Closed", 2, 0) 1 se Open, 2 se Closed; caso contrário, 0
Observações

Aceita argumentos variáveis: switch(value, match1, result1, match2, result2, ..., default)

Verificação de intervalo

Verifica se os valores estão dentro de intervalos ou limita esses valores.

between

(value, low, high)

Retorna true se um valor estiver entre o limite inferior e o superior, inclusive.

Parâmetros
value number Valor a ser verificado
low number Limite inferior
high number Limite superior
Retorno booleano
Exemplos
between(5, 1, 10) true
between(Amount, 100, 1000) true se Amount estiver entre 100 e 1000

clamp

(value, min, max)

Limita um valor ao intervalo [min, max].

Parâmetros
value number Valor a ser limitado
min number Valor mínimo
max number Valor máximo
Retorno número
Exemplos
clamp(15, 0, 10) 10
clamp(Score, 0, 100) Score limitado entre 0 e 100

Vinculação com let

Vincula valores intermediários a nomes para uso em expressões complexas.

let

(name, value, body)

Vincula um valor a um nome e avalia a expressão do corpo com essa vinculação disponível.

Parâmetros
name string Nome da variável, literal de string
value any Expressão a ser vinculada
body any Expressão que usa a variável vinculada
Retorno qualquer
Exemplos
let("avg", caseAvg(Amount), Amount - avg) Desvio em relação à média do caso
let("x", Amount * 2, let("y", x + 3, x * y)) Vinculações let aninhadas

Funções de fluxo, atividade e SLA

Predicados de precedência

Verifica se as atividades são precedidas por outras atividades em um caso.

directlyPrecededBy

(activity, predecessor)

Retorna true se a primeira atividade for precedida diretamente pela segunda atividade no caso.

Parâmetros
activity string A atividade a ser verificada
predecessor string A atividade predecessora esperada
Retorno booleano
Exemplos
directlyPrecededBy("Approve", "Review") true se Review preceder diretamente Approve
Veja também

eventuallyPrecededBy

(activity, predecessor)

Retorna true se a primeira atividade for precedida posteriormente pela segunda atividade no caso.

Parâmetros
activity string A atividade a ser verificada
predecessor string A atividade predecessora esperada
Retorno booleano
Exemplos
eventuallyPrecededBy("Ship", "Order") true se Order aparecer antes de Ship no caso
Veja também

Detecção de retrabalho

Identifica padrões de retrabalho em que as atividades se repetem dentro de um caso.

isRework

Property

True se a atividade atual tiver ocorrido antes no caso.

Type boolean

reworkCount

Property

Número total de execuções repetidas de atividades no caso.

Type number

activityOccurrence

Property

Número de ocorrência desta atividade no caso: 1 na primeira vez, 2 na segunda e assim por diante.

Type number

Consultas de atividade

Consulta a presença e a quantidade de atividades dentro de um caso.

hasActivity

(activityName)

Retorna true se a atividade informada aparecer em qualquer ponto do caso.

Parâmetros
activityName string Nome da atividade a ser verificada
Retorno booleano
Exemplos
hasActivity("Approve") true se o caso contiver uma atividade Approve

activityCount

(activityName)

Retorna o número de vezes que a atividade informada aparece no caso.

Parâmetros
activityName string Nome da atividade a ser contada
Retorno número
Exemplos
activityCount("Review") Número de atividades Review no caso

Tempo entre atividades

Mede o tempo entre atividades específicas em um caso.

timeBetween

(activityA, activityB)

Retorna o tempo entre a primeira ocorrência da atividade A e a primeira ocorrência da atividade B.

Parâmetros
activityA string Primeira atividade
activityB string Segunda atividade
Retorno número
Exemplos
timeBetween("Submit", "Approve") Tempo em ms de Submit até Approve

timeSinceActivity

(activityName)

Tempo decorrido desde a última ocorrência da atividade informada antes do evento atual.

Parâmetros
activityName string Nome da atividade
Retorno número
Exemplos
timeSinceActivity("Start") Tempo desde a última atividade Start

timeToActivity

(activityName)

Tempo até a próxima ocorrência da atividade informada depois do evento atual.

Parâmetros
activityName string Nome da atividade
Retorno número
Exemplos
timeToActivity("Complete") Tempo até a próxima atividade Complete

Funções de SLA

Monitoramento de Service Level Agreement e detecção de violações.

slaBreached

(duration, threshold)

Retorna true se uma duração exceder o limite do SLA.

Parâmetros
duration number Duração real
threshold number Limite do SLA
Retorno booleano
Exemplos
slaBreached(100000, 86400000) false
slaBreached(caseThroughputTime, 86400000) true se o caso exceder o SLA de 24 horas

slaRemaining

(startDate, slaDuration)

Retorna o tempo restante antes de uma violação do SLA ou um valor negativo depois da violação.

Parâmetros
startDate date Timestamp inicial
slaDuration number Duração do SLA em milissegundos
Retorno número
Exemplos
slaRemaining(caseStartTime, 172800000) Tempo restante para o SLA de 48 horas

caseAge

Property

Tempo decorrido desde o início do caso, em milissegundos, do primeiro evento até agora.

Type number

Detecção de loop na própria atividade

Detecta e conta padrões de self-loop em que a mesma atividade ocorre consecutivamente.

isSelfLoop

Property

Verdadeiro quando a atividade atual é igual à atividade anterior no caso.

Type boolean

selfLoopCount

Property

Número de repetições consecutivas da mesma atividade no caso atual.

Type number

Análise de recursos

Detecta transferências e mudanças de recurso dentro de um caso.

isResourceChange

(expr)

Retorna true se o valor da expressão mudou desde o evento anterior.

Parâmetros
expr any Expressão da coluna a ser verificada quanto a mudanças
Retorno booleano
Exemplos
isResourceChange(Resource) true quando o recurso é diferente do evento anterior

resourceHandoffCount

(expr)

Conta mudanças de valor ao longo do caso.

Parâmetros
expr any Expressão da coluna cujas mudanças você quer contar
Retorno número
Exemplos
resourceHandoffCount(Resource) 2 para Alice→Alice→Bob→Bob→Alice
Observações

Ainda não disponível em expressões baseadas no Athena. Para consultas de backend, use isResourceChange(expr) junto com caseCountIf(...) em um atributo derivado.

Funções estatísticas, de classificação e de alteração de valores

Funções de classificação

Classifica eventos pelos valores de uma expressão dentro de um caso ou entre todos os eventos.

caseRank

(expr)

Classificação do evento atual dentro do caso, ordenada pelo valor da expressão, com lacunas em caso de empate.

Parâmetros
expr number Expressão usada na classificação
Retorno número
Exemplos
caseRank(Amount) Classificação por Amount dentro do caso

caseDenseRank

(expr)

Classificação densa dentro do caso, sem lacunas em caso de empate.

Parâmetros
expr number Expressão usada na classificação
Retorno número
Exemplos
caseDenseRank(Amount) Classificação densa por Amount dentro do caso

allRank

(expr)

Classificação entre todos os eventos.

Parâmetros
expr number Expressão usada na classificação
Retorno número
Exemplos
allRank(Duration) Classificação global por Duration

allPercentRank

(expr)

Classificação percentual entre todos os eventos, de 0 a 1.

Parâmetros
expr number Expressão usada na classificação
Retorno número
Exemplos
allPercentRank(Duration) Classificação percentual (0-1)

Detecção de alteração de valor

Detecta quando os valores mudam entre eventos.

changed

(expr)

Retorna true se o valor da expressão for diferente do evento anterior.

Parâmetros
expr any Expressão a ser verificada quanto à mudança
Retorno booleano
Exemplos
changed(Resource) true se o recurso tiver mudado em relação ao evento anterior

caseChanges

(expr)

Conta mudanças de valor em todos os eventos do caso.

Parâmetros
expr any Expressão a ser verificada quanto a mudanças
Retorno número
Exemplos
caseChanges(Resource) Número de transferências de recurso no caso
Observações

Ainda não disponível em expressões baseadas em Athena. Para consultas de backend, use changed(expr) junto com caseCountIf(...) em um atributo derivado.

Funções de agregação acumulada condicional

Agregações acumuladas com condições, calculadas até o evento atual.

caseRunningSumIf

(expr, condition)

Soma condicional acumulada até o evento atual.

Parâmetros
expr number Expressão a ser somada
condition boolean Condição para filtrar eventos
Retorno número
Exemplos
caseRunningSumIf(Amount, Status == "Paid") Soma acumulada de Amount quando Status é Paid

caseRunningCountIf

(condition)

Contagem condicional acumulada até o evento atual.

Parâmetros
condition boolean Condição a ser contada
Retorno número
Exemplos
caseRunningCountIf(Activity == "Error") Contagem acumulada de atividades Error

caseRunningAvgIf

(expr, condition)

Média condicional acumulada até o evento atual.

Parâmetros
expr number Expressão para calcular a média
condition boolean Condição para filtrar eventos
Retorno número
Exemplos
caseRunningAvgIf(Duration, Priority == "High") Duração média acumulada de eventos de alta prioridade

Propriedades de tempo decorrido

Propriedades para medir o progresso e o tempo decorrido em um caso.

elapsedSinceStart

Property

Tempo decorrido desde o início do caso, em milissegundos.

Type number

remainingInCase

Property

Tempo restante até o fim do caso, em milissegundos.

Type number

percentComplete

Property

Progresso no caso como uma fração, de 0 a 1.

Type number

Funções de agregação condicional estendidas

Funções agregadas condicionais adicionais para mediana, desvio padrão e contagens distintas.

caseMedianIf

(expr, condition)

Mediana condicional entre os eventos do caso em que a condição é verdadeira.

Parâmetros
expr number Expressão de valor
condition boolean Condição de filtro
Retorno número
Exemplos
caseMedianIf(Amount, Activity == "Review") Valor mediano das atividades de Review

allMedianIf

(expr, condition)

Mediana condicional entre todos os eventos em que a condição é verdadeira.

Parâmetros
expr number Expressão de valor
condition boolean Condição de filtro
Retorno número
Exemplos
allMedianIf(Amount, Status == "Complete") Mediana global dos eventos concluídos

caseStdDevIf

(expr, condition)

Desvio padrão condicional entre os eventos do caso.

Parâmetros
expr number Expressão de valor
condition boolean Condição de filtro
Retorno número
Exemplos
caseStdDevIf(Duration, Activity == "Review") Desvio padrão das durações de Review no caso

allStdDevIf

(expr, condition)

Desvio padrão condicional entre todos os eventos.

Parâmetros
expr number Expressão de valor
condition boolean Condição de filtro
Retorno número
Exemplos
allStdDevIf(Amount, Priority == "High") Desvio padrão global para alta prioridade

caseCountDistinctIf

(expr, condition)

Contagem condicional de valores distintos entre os eventos do caso.

Parâmetros
expr any Expressão de valor
condition boolean Condição de filtro
Retorno número
Exemplos
caseCountDistinctIf(Category, Amount > 100) Categorias distintas com valores altos

allCountDistinctIf

(expr, condition)

Contagem condicional de valores distintos entre todos os eventos.

Parâmetros
expr any Expressão de valor
condition boolean Condição de filtro
Retorno número
Exemplos
allCountDistinctIf(User, Department == "Sales") Usuários distintos do departamento de Sales

Funções de agregação acumulada estendidas

Funções agregadas acumuladas adicionais para mediana, desvio padrão e mínimo e máximo condicionais.

caseRunningMedian

(expr)

Mediana acumulada dos valores até o evento atual.

Parâmetros
expr number Expressão de valor
Retorno número
Exemplos
caseRunningMedian(Amount) Valor mediano acumulado

caseRunningStdDev

(expr)

Desvio padrão acumulado até o evento atual.

Parâmetros
expr number Expressão de valor
Retorno número
Exemplos
caseRunningStdDev(Amount) Desvio padrão acumulado

caseRunningMinIf

(expr, condition)

Mínimo condicional acumulado até o evento atual.

Parâmetros
expr number Expressão de valor
condition boolean Condição de filtro
Retorno número
Exemplos
caseRunningMinIf(Amount, Activity == "Review") Mínimo acumulado dos valores de Review

caseRunningMaxIf

(expr, condition)

Máximo condicional acumulado até o evento atual.

Parâmetros
expr number Expressão de valor
condition boolean Condição de filtro
Retorno número
Exemplos
caseRunningMaxIf(Amount, Priority == "High") Máximo acumulado para alta prioridade

Funções JSON

Extração de JSON

Extrai valores de strings JSON usando expressões de caminho.

jsonExtract

(json, path)

Extrai um valor de uma string JSON usando uma expressão JSONPath.

Parâmetros
json string String JSON
path string Expressão JSONPath, por exemplo, "$.field"
Retorno qualquer
Exemplos
jsonExtract("{\"name\":\"John\"}", "$.name") John

jsonValue

(json, path)

Extrai um valor escalar de uma string JSON como string.

Parâmetros
json string String JSON
path string Expressão JSONPath
Retorno string
Exemplos
jsonValue("{\"age\":30}", "$.age") "30"

jsonArrayLength

(json)

Retorna o comprimento de um array JSON.

Parâmetros
json string String de array JSON
Retorno número
Exemplos
jsonArrayLength("[1,2,3]") 3

Tópicos relacionados