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 | |
(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 | |
| Retorno | data |
| Exemplos | startOfDay(StartTime) → Meia-noite do mesmo dia |
startOfWeek
(date) Retorna o início da semana (segunda-feira).
| Parâmetros | |
| Retorno | data |
| Exemplos | startOfWeek(StartTime) → Segunda-feira da mesma semana |
startOfMonth
(date) Retorna o primeiro dia do mês.
| Parâmetros | |
| Retorno | data |
| Exemplos | startOfMonth(StartTime) → Primeiro dia do mês |
startOfYear
(date) Retorna 1º de janeiro do ano.
| Parâmetros | |
| Retorno | data |
| Exemplos | startOfYear(StartTime) → 1º de janeiro |
endOfWeek
(date) Retorna o fim da semana (domingo às 23:59:59).
| Parâmetros | |
| Retorno | data |
| Exemplos | endOfWeek(StartTime) → Fim do domingo |
endOfMonth
(date) Retorna o fim do mês às 23:59:59.
| Parâmetros | |
| 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 | |
| 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(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(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.
reworkCount
Property Número total de execuções repetidas de atividades no caso.
activityOccurrence
Property Número de ocorrências desta atividade no caso: 1 na primeira vez, 2 na segunda e assim por diante.
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.
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.
selfLoopCount
Property Número de repetições consecutivas da mesma atividade no caso atual.
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.
remainingInCase
Property Tempo restante até o fim do caso, em milissegundos.
percentComplete
Property Progresso do caso como uma fração de 0 a 1.
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
7. Tópicos relacionados