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 | |
(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 | |
| 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 dia de 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, 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 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(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(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.
reworkCount
Property Número total de execuções repetidas de atividades no caso.
activityOccurrence
Property Número de ocorrência desta atividade no caso: 1 na primeira vez, 2 na segunda e assim por diante.
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.
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.
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 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.
remainingInCase
Property Tempo restante até o fim do caso, em milissegundos.
percentComplete
Property Progresso no caso como uma fração, de 0 a 1.
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
Tópicos relacionados