Nesta página

Funções avançadas

Estas famílias de funções complementam a linguagem de expressões. Cada grupo abaixo apresenta as funções, seus parâmetros, o tipo de retorno e exemplos.

1. 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 String a testar
pattern string Padrão de expressão regular
Retorno boolean
Exemplos
regexMatch("abc123", "[0-9]+") → true
regexMatch("hello", "^[0-9]+$") → false
Veja também

regexReplace

(text, pattern, replacement)

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

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

regexExtract

(text, pattern, group?)

Extrai de uma string a primeira correspondência de um padrão de expressão regular. Você também pode extrair um grupo de captura específico.

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

Funções para strings

Funções adicionais para manipular strings.

repeat

(text, count)

Repete um texto o número de vezes especificado.

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

countOccurrences

(text, search)

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

Parâmetros
text string Texto a pesquisar
search string Substring a encontrar
Retorno número
Exemplos
countOccurrences("abcabc", "abc") → 2

split

(text, delimiter, index)

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

Parâmetros
text string Texto a dividir
delimiter string Delimitador
index number Índice da parte a retornar, começando por 1
Retorno string
Exemplos
split("a-b-c", "-", 2) → "b"

exact

(a, b)

Comparação de strings que diferencia maiúsculas de minúsculas. Retorna true se as strings forem idênticas.

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

2. Funções auxiliares de data e duração

Conversões 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 atravessamento 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

Criação de datas

Cria datas a partir de componentes ou interpreta strings como datas.

date

(year, month, day)

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

Parâmetros
year number Ano
month number Mês (1-12)
day number Dia do mês
Retorno data
Exemplos
date(2024, 1, 1) → 1704067200000
date(2024, 6, 15) → 15 de junho de 2024

toDate

(value, format?)

Interpreta um valor como data. Aceita números, como milissegundos desde o epoch, ou strings.

Parâmetros
value any Valor a converter 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 é informado, use os mesmos tokens aceitos por formatDate. A interpretaçã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 os limites de um período.

startOfDay

(date)

Trunca uma data para o início do dia (meia-noite).

Parâmetros
date date Data a truncar
Retorno data
Exemplos
startOfDay(StartTime) → Meia-noite do mesmo dia

startOfWeek

(date)

Retorna o início da semana (segunda-feira).

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

startOfMonth

(date)

Retorna o primeiro dia do mês.

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

startOfYear

(date)

Retorna 1º de janeiro do ano.

Parâmetros
date date 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 Data
Retorno data
Exemplos
endOfWeek(StartTime) → Fim do domingo

endOfMonth

(date)

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

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

endOfYear

(date)

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

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

Atalhos de data

Funções práticas para calcular diferenças entre datas e adicionar períodos.

daysBetween

(date1, date2)

Retorna a diferença entre duas datas em dias.

Parâmetros
date1 date Data de início
date2 date Data de término
Retorno número
Exemplos
daysBetween(StartTime, EndTime) → Duração em dias entre duas datas

hoursBetween

(date1, date2)

Retorna a diferença entre duas datas em horas.

Parâmetros
date1 date Data de início
date2 date Data de término
Retorno número
Exemplos
hoursBetween(StartTime, EndTime) → Duração em horas entre duas datas

minutesBetween

(date1, date2)

Retorna a diferença entre duas datas em minutos.

Parâmetros
date1 date Data de início
date2 date Data de término
Retorno número
Exemplos
minutesBetween(StartTime, EndTime) → Duração em minutos entre duas datas

secondsBetween

(date1, date2)

Retorna a diferença entre duas datas em segundos.

Parâmetros
date1 date Data de início
date2 date Data de término
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 cinco 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 três 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 do 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) → 2024-04-01 para uma data em junho

endOfQuarter

(date)

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

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

3. Funções 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 uma função if com várias opções.

Parâmetros
value any Valor a comparar
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 tipo
Exemplos
switch("a", "a", 1, "b", 2, 0) → 1
switch(Status, "Open", 1, "Closed", 2, 0) → 1 se for Open, 2 se for Closed; caso contrário, 0
Observações

Aceita um número variável de argumentos: switch(value, match1, result1, match2, result2, ..., default)

Verificação de intervalo

Verifica se os valores estão dentro de intervalos ou os limita a um intervalo.

between

(value, low, high)

Retorna true se um valor estiver entre os limites inferior e superior, inclusive.

Parâmetros
value number Valor a verificar
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 limitar
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 ao intervalo de 0 a 100

Atribuição com let

Atribui nomes a valores intermediários para usá-los em expressões complexas.

let

(name, value, body)

Atribui um valor a um nome e, em seguida, avalia a expressão do corpo com esse nome disponível.

Parâmetros
name string Nome da variável (literal de string)
value any Expressão a atribuir
body any Expressão que usa a variável atribuída
Retorno qualquer tipo
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)) → Atribuições let aninhadas

4. Funções de fluxo, atividade e SLA

Predicados de precedência

Verifica se uma atividade é precedida por outra atividade em um caso.

directlyPrecededBy

(activity, predecessor)

Retorna true se a segunda atividade preceder diretamente a primeira no caso.

Parâmetros
activity string Atividade a verificar
predecessor string 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 segunda atividade preceder a primeira em algum momento do caso.

Parâmetros
activity string Atividade a verificar
predecessor string 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 atividades se repetem dentro de um caso.

isRework

Property

True se a atividade atual já 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ências desta atividade no caso: 1 na primeira vez, 2 na segunda e assim por diante.

Type number

Consultas de atividades

Verifica se atividades aparecem em um caso e conta suas ocorrências.

hasActivity

(activityName)

Retorna true se a atividade indicada aparecer em algum ponto do caso.

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

activityCount

(activityName)

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

Parâmetros
activityName string Nome da atividade a contar
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 entre Submit e Approve

timeSinceActivity

(activityName)

Tempo decorrido desde a última ocorrência da atividade indicada 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 indicada após o 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

Monitora acordos de nível de serviço e detecta violações.

slaBreached

(duration, threshold)

Retorna true se uma duração ultrapassar 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 ultrapassar o SLA de 24 horas

slaRemaining

(startDate, slaDuration)

Retorna o tempo restante até a violação do SLA ou um valor negativo após a violação.

Parâmetros
startDate date Data e hora de início
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 repetição consecutiva

Detecta e conta padrões de repetição em que a mesma atividade ocorre em sequência.

isSelfLoop

Property

True se a atividade atual for 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 recursos em um caso.

isResourceChange

(expr)

Retorna true se o valor da expressão tiver mudado em relação ao evento anterior.

Parâmetros
expr any Expressão da coluna a verificar para detectar mudanças
Retorno booleano
Exemplos
isResourceChange(Resource) → true quando o recurso for diferente do evento anterior

resourceHandoffCount

(expr)

Conta as mudanças de valor ao longo do caso.

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

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

5. Estatísticas, classificações e alterações 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 no caso, ordenada pelo valor da expressão, com lacunas em caso de empate.

Parâmetros
expr number Expressão usada para classificar
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 para classificar
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 para classificar
Retorno número
Exemplos
allRank(Duration) → Classificação geral por Duration

allPercentRank

(expr)

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

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

Detecção de alterações em valores

Detecta alterações nos valores entre eventos.

changed

(expr)

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

Parâmetros
expr any Expressão para verificar alterações
Retorno booleano
Exemplos
changed(Resource) → true se o recurso tiver mudado em relação ao evento anterior

caseChanges

(expr)

Conta as alterações de valores em todos os eventos do caso.

Parâmetros
expr any Expressão para verificar alterações
Retorno número
Exemplos
caseChanges(Resource) → Número de transferências de recursos no caso
Observações

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

Agregações condicionais acumuladas

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 somar
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 para contar
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 do caso como uma fração de 0 a 1.

Type number

Agregações condicionais avançadas

Funções adicionais de agregação condicional para mediana, desvio padrão e contagens distintas.

caseMedianIf

(expr, condition)

Calcula a mediana condicional dos eventos do caso em que a condição é verdadeira.

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

allMedianIf

(expr, condition)

Calcula a mediana condicional de todos os eventos em que a condição é verdadeira.

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

caseStdDevIf

(expr, condition)

Calcula o desvio padrão condicional dos eventos do caso.

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

allStdDevIf

(expr, condition)

Calcula o desvio padrão condicional de todos os eventos.

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

caseCountDistinctIf

(expr, condition)

Conta valores distintos condicionalmente entre os eventos do caso.

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

allCountDistinctIf

(expr, condition)

Conta valores distintos condicionalmente entre todos os eventos.

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

Agregações acumuladas avançadas

Funções adicionais de agregação acumulada 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 do 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 do 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 do valor
condition boolean Condição do filtro
Retorno número
Exemplos
caseRunningMinIf(Amount, Activity == "Review") → Valor mínimo acumulado das atividades de revisão

caseRunningMaxIf

(expr, condition)

Máximo condicional acumulado até o evento atual.

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

6. 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 tipo
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 tamanho de um array JSON.

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

7. Tópicos relacionados

Melhore seus processos. Crie uma arquitetura conectada. Mantenha o controle.

Acesse na hora, sem cartão de crédito nem espera. Transforme a forma como sua organização trabalha em modelos de processo claros e conectados.

Crie sua arquitetura de processos, defina responsabilidades e controles e alinhe papéis e atribuições em todos os níveis.

Comece o teste grátis e crie uma base confiável para governar, gerenciar e melhorar seus processos continuamente.