En esta página

Funciones avanzadas

Estas familias de funciones completan el lenguaje de expresiones. Cada grupo que aparece a continuación enumera sus funciones, parámetros, tipo de retorno y ejemplos.

Funciones de texto y patrones

Funciones de expresiones regulares

Funciones para buscar y reemplazar patrones mediante expresiones regulares.

regexMatch

(text, pattern)

Comprueba si una cadena coincide con un patrón de expresión regular.

Parámetros
text string Cadena que se comprobará
pattern string Patrón de expresión regular
Devuelve booleano
Ejemplos
regexMatch("abc123", "[0-9]+") true
regexMatch("hello", "^[0-9]+$") false
Véase también

regexReplace

(text, pattern, replacement)

Reemplaza todas las apariciones de un patrón de expresión regular en una cadena.

Parámetros
text string Cadena de entrada
pattern string Patrón de expresión regular que se buscará
replacement string Cadena de reemplazo
Devuelve cadena
Ejemplos
regexReplace("abc123def456", "[0-9]+", "#") abc#def#
regexReplace("hello world", "\s+", " ") hello world
Véase también

regexExtract

(text, pattern, group?)

Extrae la primera coincidencia de un patrón de expresión regular en una cadena. También puede extraer un grupo de captura específico.

Parámetros
text string Cadena de entrada
pattern string Patrón de expresión regular
group (opcional) number Índice del grupo de captura; 0 corresponde a la coincidencia completa (predeterminado: 0)
Devuelve cadena
Ejemplos
regexExtract("abc123def", "[0-9]+") 123
regexExtract("2025-01-15", "(\d{4})-(\d{2})", 1) 2025
Véase también

Utilidades para cadenas

Funciones adicionales de manipulación de cadenas.

repeat

(text, count)

Repite un texto un número determinado de veces.

Parámetros
text string Texto que se va a repetir
count number Número de repeticiones
Devuelve cadena
Ejemplos
repeat("ab", 3) "ababab"

countOccurrences

(text, search)

Cuenta las apariciones no superpuestas de una subcadena.

Parámetros
text string Texto en el que se va a buscar
search string Subcadena que se va a encontrar
Devuelve número
Ejemplos
countOccurrences("abcabc", "abc") 2

split

(text, delimiter, index)

Divide el texto mediante un delimitador y devuelve la parte n, empezando por 1.

Parámetros
text string Texto que se va a dividir
delimiter string Delimitador utilizado para dividir
index number Índice basado en 1 de la parte que se va a devolver
Devuelve cadena
Ejemplos
split("a-b-c", "-", 2) "b"

exact

(a, b)

Comparación de cadenas que distingue entre mayúsculas y minúsculas. Devuelve true si ambas cadenas son idénticas.

Parámetros
a string Primera cadena
b string Segunda cadena
Devuelve booleano
Ejemplos
exact("Hello", "hello") false

Funciones auxiliares de fechas y duraciones

Funciones auxiliares de duración

Convierte duraciones en milisegundos a unidades de tiempo habituales.

durationInDays

(ms)

Convierte milisegundos a días.

Parámetros
ms number Duración en milisegundos
Devuelve número
Ejemplos
durationInDays(86400000) 1
durationInDays(caseThroughputTime) Tiempo de procesamiento en días

durationInHours

(ms)

Convierte milisegundos a horas.

Parámetros
ms number Duración en milisegundos
Devuelve número
Ejemplos
durationInHours(3600000) 1
durationInHours(stepDuration) Duración del paso en horas

durationInMinutes

(ms)

Convierte milisegundos a minutos.

Parámetros
ms number Duración en milisegundos
Devuelve número
Ejemplos
durationInMinutes(60000) 1
durationInMinutes(waitingTime) Tiempo de espera en minutos

durationInSeconds

(ms)

Convierte milisegundos a segundos.

Parámetros
ms number Duración en milisegundos
Devuelve número
Ejemplos
durationInSeconds(1500) 1.5

Construcción de fechas

Crea fechas a partir de sus componentes o analiza cadenas para convertirlas en fechas.

date

(year, month, day)

Crea una fecha UTC a partir del año, el mes y el día.

Parámetros
year number El año
month number El mes (1-12)
day number El día del mes
Devuelve fecha
Ejemplos
date(2024, 1, 1) 1704067200000
date(2024, 6, 15) 15 de junio de 2024

toDate

(value, format?)

Analiza un valor para convertirlo en una fecha. Acepta números, como milisegundos desde el inicio de la época, o cadenas.

Parámetros
value any El valor que se convertirá en una fecha
format (opcional) string Patrón de formato de fecha (opcional)
Devuelve fecha
Ejemplos
toDate(1704067200000) 1704067200000
toDate("2024-01-15") 15 de enero de 2024
toDate("31/12/2024 23:45:59", "dd/MM/yyyy HH:mm:ss") 1735688759000
Notas

Cuando se proporciona un formato, utilice los mismos tokens compatibles con formatDate. El análisis se basa en UTC.

today

()

Devuelve la fecha actual a medianoche UTC.

Devuelve fecha
Ejemplos
today() Fecha actual a medianoche

Límites de periodos de fecha

Trunca o redondea las fechas a los límites de un periodo.

startOfDay

(date)

Trunca una fecha al inicio del día, a medianoche.

Parámetros
date date La fecha que se truncará
Devuelve fecha
Ejemplos
startOfDay(StartTime) Medianoche del mismo día

startOfWeek

(date)

Devuelve el inicio de la semana, el lunes.

Parámetros
date date La fecha
Devuelve fecha
Ejemplos
startOfWeek(StartTime) Lunes de la misma semana

startOfMonth

(date)

Devuelve el primer día del mes.

Parámetros
date date La fecha
Devuelve fecha
Ejemplos
startOfMonth(StartTime) Primer día del mes

startOfYear

(date)

Devuelve el 1 de enero del año.

Parámetros
date date La fecha
Devuelve fecha
Ejemplos
startOfYear(StartTime) 1 de enero

endOfWeek

(date)

Devuelve el final de la semana, el domingo a las 23:59:59.

Parámetros
date date La fecha
Devuelve fecha
Ejemplos
endOfWeek(StartTime) Final del domingo

endOfMonth

(date)

Devuelve el final del mes a las 23:59:59.

Parámetros
date date La fecha
Devuelve fecha
Ejemplos
endOfMonth(StartTime) Último día del mes, final del día

endOfYear

(date)

Devuelve el 31 de diciembre a las 23:59:59.

Parámetros
date date La fecha
Devuelve fecha
Ejemplos
endOfYear(StartTime) 31 de diciembre, final del día

Atajos de fecha

Funciones prácticas para operaciones habituales de diferencia y suma de fechas.

daysBetween

(date1, date2)

Devuelve la diferencia en días entre dos fechas.

Parámetros
date1 date Fecha de inicio
date2 date Fecha de finalización
Devuelve número
Ejemplos
daysBetween(StartTime, EndTime) Duración en días entre dos fechas

hoursBetween

(date1, date2)

Devuelve la diferencia en horas entre dos fechas.

Parámetros
date1 date Fecha de inicio
date2 date Fecha de finalización
Devuelve número
Ejemplos
hoursBetween(StartTime, EndTime) Duración en horas entre dos fechas

minutesBetween

(date1, date2)

Devuelve la diferencia en minutos entre dos fechas.

Parámetros
date1 date Fecha de inicio
date2 date Fecha de finalización
Devuelve número
Ejemplos
minutesBetween(StartTime, EndTime) Duración en minutos entre dos fechas

secondsBetween

(date1, date2)

Devuelve la diferencia en segundos entre dos fechas.

Parámetros
date1 date Fecha de inicio
date2 date Fecha de finalización
Devuelve número
Ejemplos
secondsBetween(StartTime, EndTime) Duración en segundos entre dos fechas

addDays

(date, days)

Añade días a una fecha.

Parámetros
date date Fecha base
days number Número de días que se van a añadir
Devuelve fecha
Ejemplos
addDays(StartTime, 5) Fecha 5 días posterior

addHours

(date, hours)

Añade horas a una fecha.

Parámetros
date date Fecha base
hours number Número de horas que se van a añadir
Devuelve fecha
Ejemplos
addHours(StartTime, 3) Fecha 3 horas posterior

addMinutes

(date, minutes)

Añade minutos a una fecha.

Parámetros
date date Fecha base
minutes number Número de minutos que se van a añadir
Devuelve fecha
Ejemplos
addMinutes(StartTime, 30) Fecha 30 minutos posterior

addSeconds

(date, seconds)

Añade segundos a una fecha.

Parámetros
date date Fecha base
seconds number Número de segundos que se van a añadir
Devuelve fecha
Ejemplos
addSeconds(StartTime, 45) Fecha 45 segundos posterior

endOfDay

(date)

Devuelve el final del día, 23:59:59.999, para una fecha determinada.

Parámetros
date date Fecha de entrada
Devuelve fecha
Ejemplos
endOfDay(StartTime) 23:59:59 del mismo día

startOfQuarter

(date)

Devuelve el primer día del trimestre correspondiente a una fecha determinada.

Parámetros
date date Fecha de entrada
Devuelve fecha
Ejemplos
startOfQuarter(StartTime) 2024-04-01 para una fecha de junio

endOfQuarter

(date)

Devuelve el último instante del trimestre para una fecha determinada.

Parámetros
date date Fecha de entrada
Devuelve fecha
Ejemplos
endOfQuarter(StartTime) 2024-06-30T23:59:59Z para una fecha de junio

Funciones auxiliares de lógica

Condicional de múltiples opciones

Compara un valor con varios casos.

switch

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

Compara un valor con una lista de casos y devuelve el resultado correspondiente. Es similar a una función if con varias opciones.

Parámetros
value any Valor que se va a comparar
match1, result1, ... any Pares de valores de comparación y resultados
default (opcional) any Resultado predeterminado si no hay coincidencias, opcional
Devuelve cualquier tipo
Ejemplos
switch("a", "a", 1, "b", 2, 0) 1
switch(Status, "Open", 1, "Closed", 2, 0) 1 si está Open, 2 si está Closed; de lo contrario, 0
Notas

Acepta argumentos variables: switch(value, match1, result1, match2, result2, ..., default)

Comprobación de rangos

Comprueba si los valores están dentro de ciertos rangos o los limita.

between

(value, low, high)

Devuelve true si un valor está entre el límite inferior y el superior, ambos incluidos.

Parámetros
value number Valor que se va a comprobar
low number Límite inferior
high number Límite superior
Devuelve booleano
Ejemplos
between(5, 1, 10) true
between(Amount, 100, 1000) true si Amount está entre 100 y 1000

clamp

(value, min, max)

Limita un valor al rango [min, max].

Parámetros
value number Valor que se va a limitar
min number Valor mínimo
max number Valor máximo
Devuelve número
Ejemplos
clamp(15, 0, 10) 10
clamp(Score, 0, 100) Score limitado de 0 a 100

Asignación let

Asocia valores intermedios con nombres para utilizarlos en expresiones complejas.

let

(name, value, body)

Asocia un valor con un nombre y evalúa la expresión del cuerpo con esa asociación disponible.

Parámetros
name string Nombre de variable, literal de cadena
value any Expresión que se asociará
body any Expresión que utiliza la variable asociada
Devuelve cualquier tipo
Ejemplos
let("avg", caseAvg(Amount), Amount - avg) Desviación respecto al promedio del caso
let("x", Amount * 2, let("y", x + 3, x * y)) Asociaciones let anidadas

Funciones de flujo, actividad y SLA

Predicados de precedencia

Comprueba si las actividades están precedidas por otras actividades en un caso.

directlyPrecededBy

(activity, predecessor)

Devuelve true si la primera actividad está precedida directamente por la segunda actividad en el caso.

Parámetros
activity string La actividad que se comprobará
predecessor string La actividad predecesora esperada
Devuelve booleano
Ejemplos
directlyPrecededBy("Approve", "Review") true si Review precede directamente a Approve
Véase también

eventuallyPrecededBy

(activity, predecessor)

Devuelve true si la primera actividad está precedida posteriormente por la segunda actividad en el caso.

Parámetros
activity string La actividad que se comprobará
predecessor string La actividad predecesora esperada
Devuelve booleano
Ejemplos
eventuallyPrecededBy("Ship", "Order") true si Order aparece antes que Ship en el caso
Véase también

Detección de reprocesos

Identifica patrones de retrabajo en los que las actividades se repiten dentro de un caso.

isRework

Property

True si la actividad actual apareció antes en el caso.

Type boolean

reworkCount

Property

Número total de ejecuciones repetidas de actividades en el caso.

Type number

activityOccurrence

Property

Número de aparición de esta actividad en el caso: 1 la primera vez, 2 la segunda y así sucesivamente.

Type number

Consultas de actividades

Consulta la presencia y el número de apariciones de actividades dentro de un caso.

hasActivity

(activityName)

Devuelve true si la actividad indicada aparece en cualquier parte del caso.

Parámetros
activityName string Nombre de la actividad que se va a comprobar
Devuelve booleano
Ejemplos
hasActivity("Approve") true si el caso contiene una actividad Approve

activityCount

(activityName)

Devuelve el número de veces que la actividad indicada aparece en el caso.

Parámetros
activityName string Nombre de la actividad que se va a contar
Devuelve número
Ejemplos
activityCount("Review") Número de actividades Review en el caso

Medición del tiempo entre actividades

Mide el tiempo entre actividades específicas de un caso.

timeBetween

(activityA, activityB)

Devuelve el tiempo entre la primera aparición de la actividad A y la primera aparición de la actividad B.

Parámetros
activityA string Primera actividad
activityB string Segunda actividad
Devuelve número
Ejemplos
timeBetween("Submit", "Approve") Tiempo en ms desde Submit hasta Approve

timeSinceActivity

(activityName)

Tiempo transcurrido desde la última aparición de la actividad indicada antes del evento actual.

Parámetros
activityName string Nombre de la actividad
Devuelve número
Ejemplos
timeSinceActivity("Start") Tiempo desde la última actividad Start

timeToActivity

(activityName)

Tiempo hasta la siguiente aparición de la actividad indicada después del evento actual.

Parámetros
activityName string Nombre de la actividad
Devuelve número
Ejemplos
timeToActivity("Complete") Tiempo hasta la siguiente actividad Complete

Funciones de SLA

Supervisión de acuerdos de nivel de servicio y detección de incumplimientos.

slaBreached

(duration, threshold)

Devuelve true si una duración supera el umbral del SLA.

Parámetros
duration number Duración real
threshold number Umbral del SLA
Devuelve booleano
Ejemplos
slaBreached(100000, 86400000) false
slaBreached(caseThroughputTime, 86400000) true si el caso supera el SLA de 24 horas

slaRemaining

(startDate, slaDuration)

Devuelve el tiempo restante antes de incumplir el SLA o un valor negativo después del incumplimiento.

Parámetros
startDate date Marca de tiempo de inicio
slaDuration number Duración del SLA en milisegundos
Devuelve número
Ejemplos
slaRemaining(caseStartTime, 172800000) Tiempo restante para un SLA de 48 horas

caseAge

Property

Tiempo transcurrido desde el inicio del caso, en milisegundos desde el primer evento hasta ahora.

Type number

Detección de bucles propios

Detecta y cuenta patrones de bucle sobre sí mismos en los que la misma actividad aparece de forma consecutiva.

isSelfLoop

Property

Verdadero si la actividad actual es igual a la actividad anterior del caso.

Type boolean

selfLoopCount

Property

Número de repeticiones consecutivas de la misma actividad en el caso actual.

Type number

Análisis de recursos

Detecta transferencias y cambios de recursos dentro de un caso.

isResourceChange

(expr)

Devuelve true si el valor de la expresión cambió respecto al evento anterior.

Parámetros
expr any Expresión de columna que se comprobará para detectar cambios
Devuelve booleano
Ejemplos
isResourceChange(Resource) true cuando el recurso difiere del evento anterior

resourceHandoffCount

(expr)

Cuenta los cambios de valor en todo el caso.

Parámetros
expr any Expresión de columna cuyos cambios desea contar
Devuelve número
Ejemplos
resourceHandoffCount(Resource) 2 para Alice→Alice→Bob→Bob→Alice
Notas

Todavía no está disponible en expresiones basadas en Athena. Para consultas de backend, utilice isResourceChange(expr) junto con caseCountIf(...) en un atributo derivado.

Estadísticas, clasificación y cambios de valores

Funciones de clasificación

Clasifica los eventos según los valores de una expresión dentro de un caso o entre todos los eventos.

caseRank

(expr)

Clasificación del evento actual dentro del caso, ordenada por el valor de la expresión, con saltos en caso de empates.

Parámetros
expr number Expresión utilizada para clasificar
Devuelve número
Ejemplos
caseRank(Amount) Clasificación por Amount dentro del caso

caseDenseRank

(expr)

Clasificación densa dentro del caso, sin saltos en caso de empates.

Parámetros
expr number Expresión utilizada para clasificar
Devuelve número
Ejemplos
caseDenseRank(Amount) Clasificación densa por Amount dentro del caso

allRank

(expr)

Clasificación entre todos los eventos.

Parámetros
expr number Expresión utilizada para clasificar
Devuelve número
Ejemplos
allRank(Duration) Clasificación global por Duration

allPercentRank

(expr)

Clasificación porcentual entre todos los eventos, de 0 a 1.

Parámetros
expr number Expresión utilizada para clasificar
Devuelve número
Ejemplos
allPercentRank(Duration) Clasificación percentil (0-1)

Detección de cambios de valor

Detecta cuándo cambian los valores entre eventos.

changed

(expr)

Devuelve true si el valor de la expresión difiere del evento anterior.

Parámetros
expr any Expresión en la que se va a comprobar el cambio
Devuelve booleano
Ejemplos
changed(Resource) true si el recurso cambió con respecto al evento anterior

caseChanges

(expr)

Cuenta los cambios de valor entre todos los eventos del caso.

Parámetros
expr any Expresión en la que se van a comprobar los cambios
Devuelve número
Ejemplos
caseChanges(Resource) Número de transferencias de recursos en el caso
Notas

Todavía no está disponible en expresiones respaldadas por Athena. Para consultas del backend, utilice changed(expr) junto con caseCountIf(...) en un atributo derivado.

Agregaciones acumuladas condicionales

Agregaciones acumuladas con condiciones, calculadas hasta el evento actual.

caseRunningSumIf

(expr, condition)

Suma condicional acumulada hasta el evento actual.

Parámetros
expr number Expresión que se va a sumar
condition boolean Condición para filtrar eventos
Devuelve número
Ejemplos
caseRunningSumIf(Amount, Status == "Paid") Suma acumulada de Amount cuando Status es Paid

caseRunningCountIf

(condition)

Conteo condicional acumulado hasta el evento actual.

Parámetros
condition boolean Condición que se va a contar
Devuelve número
Ejemplos
caseRunningCountIf(Activity == "Error") Conteo acumulado de actividades Error

caseRunningAvgIf

(expr, condition)

Promedio condicional acumulado hasta el evento actual.

Parámetros
expr number Expresión cuyo promedio se va a calcular
condition boolean Condición para filtrar eventos
Devuelve número
Ejemplos
caseRunningAvgIf(Duration, Priority == "High") Duración media acumulada de los eventos de alta prioridad

Propiedades del tiempo transcurrido

Propiedades para medir el progreso y el tiempo transcurrido dentro de un caso.

elapsedSinceStart

Property

Tiempo transcurrido desde el inicio del caso, en milisegundos.

Type number

remainingInCase

Property

Tiempo restante hasta que finalice el caso, en milisegundos.

Type number

percentComplete

Property

Progreso del caso expresado como una fracción, de 0 a 1.

Type number

Agregaciones condicionales ampliadas

Funciones de agregación condicional adicionales para la mediana, la desviación estándar y los recuentos distintos.

caseMedianIf

(expr, condition)

Mediana condicional de los eventos del caso en los que la condición es verdadera.

Parámetros
expr number Expresión del valor
condition boolean Condición de filtro
Devuelve número
Ejemplos
caseMedianIf(Amount, Activity == "Review") Importe mediano de las actividades Review

allMedianIf

(expr, condition)

Mediana condicional de todos los eventos en los que la condición es verdadera.

Parámetros
expr number Expresión del valor
condition boolean Condición de filtro
Devuelve número
Ejemplos
allMedianIf(Amount, Status == "Complete") Mediana global de los eventos completados

caseStdDevIf

(expr, condition)

Desviación estándar condicional de los eventos del caso.

Parámetros
expr number Expresión del valor
condition boolean Condición de filtro
Devuelve número
Ejemplos
caseStdDevIf(Duration, Activity == "Review") Desviación estándar de las duraciones de Review en el caso

allStdDevIf

(expr, condition)

Desviación estándar condicional de todos los eventos.

Parámetros
expr number Expresión del valor
condition boolean Condición de filtro
Devuelve número
Ejemplos
allStdDevIf(Amount, Priority == "High") Desviación estándar global de la prioridad alta

caseCountDistinctIf

(expr, condition)

Recuento condicional de valores distintos en los eventos del caso.

Parámetros
expr any Expresión del valor
condition boolean Condición de filtro
Devuelve número
Ejemplos
caseCountDistinctIf(Category, Amount > 100) Categorías distintas con importes elevados

allCountDistinctIf

(expr, condition)

Recuento condicional de valores distintos en todos los eventos.

Parámetros
expr any Expresión del valor
condition boolean Condición de filtro
Devuelve número
Ejemplos
allCountDistinctIf(User, Department == "Sales") Usuarios distintos del departamento de Ventas

Agregaciones acumuladas ampliadas

Funciones de agregación acumulada adicionales para la mediana, la desviación estándar y los mínimos y máximos condicionales.

caseRunningMedian

(expr)

Mediana acumulada de los valores hasta el evento actual.

Parámetros
expr number Expresión del valor
Devuelve número
Ejemplos
caseRunningMedian(Amount) Importe mediano acumulado

caseRunningStdDev

(expr)

Desviación estándar acumulada hasta el evento actual.

Parámetros
expr number Expresión del valor
Devuelve número
Ejemplos
caseRunningStdDev(Amount) Desviación estándar acumulada

caseRunningMinIf

(expr, condition)

Mínimo condicional acumulado hasta el evento actual.

Parámetros
expr number Expresión del valor
condition boolean Condición de filtro
Devuelve número
Ejemplos
caseRunningMinIf(Amount, Activity == "Review") Mínimo acumulado de los importes de Review

caseRunningMaxIf

(expr, condition)

Máximo condicional acumulado hasta el evento actual.

Parámetros
expr number Expresión del valor
condition boolean Condición de filtro
Devuelve número
Ejemplos
caseRunningMaxIf(Amount, Priority == "High") Máximo acumulado de la prioridad alta

Funciones JSON

Extracción de JSON

Extrae valores de cadenas JSON mediante expresiones de ruta.

jsonExtract

(json, path)

Extrae un valor de una cadena JSON mediante una expresión JSONPath.

Parámetros
json string Cadena JSON
path string Expresión JSONPath, por ejemplo, "$.field"
Devuelve cualquier tipo
Ejemplos
jsonExtract("{\"name\":\"John\"}", "$.name") John

jsonValue

(json, path)

Extrae un valor escalar de una cadena JSON como texto.

Parámetros
json string Cadena JSON
path string Expresión JSONPath
Devuelve cadena
Ejemplos
jsonValue("{\"age\":30}", "$.age") "30"

jsonArrayLength

(json)

Devuelve la longitud de una matriz JSON.

Parámetros
json string Cadena de matriz JSON
Devuelve número
Ejemplos
jsonArrayLength("[1,2,3]") 3

Temas relacionados