Estas familias de funciones completan el lenguaje de expresiones. A continuación, cada grupo incluye sus funciones, parámetros, tipo de retorno y ejemplos.
1. 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 de texto coincide con un patrón de expresión regular.
| Parámetros | | text | string | Cadena de texto que se va a comprobar | | pattern | string | Patrón de expresión regular | |
| Devuelve | boolean |
| Ejemplos | regexMatch("abc123", "[0-9]+") → true regexMatch("hello", "^[0-9]+$") → false |
| Véase también | |
regexReplace
(text, pattern, replacement) Reemplaza todas las coincidencias de un patrón de expresión regular en una cadena de texto.
| Parámetros | | text | string | Cadena de entrada | | pattern | string | Patrón de expresión regular que se va a buscar | | replacement | string | Cadena de reemplazo | |
| Devuelve | string |
| Ejemplos | regexReplace("abc123def456", "[0-9]+", "#") → abc#def# regexReplace("hello world", "\s+", " ") → hello world |
| Véase también | |
(text, pattern, group?) Extrae la primera coincidencia de un patrón de expresión regular de una cadena de texto. 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 devuelve la coincidencia completa (predeterminado: 0) | |
| Devuelve | string |
| Ejemplos | regexExtract("abc123def", "[0-9]+") → 123 regexExtract("2025-01-15", "(\d{4})-(\d{2})", 1) → 2025 |
| Véase también | |
Funciones para cadenas de texto
Funciones adicionales para manipular cadenas de texto.
repeat
(text, count) Repite un texto el número de veces especificado.
| Parámetros | | text | string | Texto que se 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 buscará | | search | string | Subcadena que se buscará | |
| Devuelve | número |
| Ejemplos | countOccurrences("abcabc", "abc") → 2 |
split
(text, delimiter, index) Divide un texto por un delimitador y devuelve la parte indicada, empezando por 1.
| Parámetros | | text | string | Texto que se dividirá | | delimiter | string | Delimitador | | index | number | Índice de la parte que se devolverá, empezando por 1 | |
| Devuelve | cadena |
| Ejemplos | split("a-b-c", "-", 2) → "b" |
exact
(a, b) Compara cadenas de texto distinguiendo entre mayúsculas y minúsculas. Devuelve true si son idénticas.
| Parámetros | | a | string | Primera cadena | | b | string | Segunda cadena | |
| Devuelve | booleano |
| Ejemplos | exact("Hello", "hello") → false |
2. Funciones auxiliares de fecha y duración
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 |
Creación de fechas
Crea fechas a partir de sus componentes o interpreta cadenas de texto como fechas.
date
(year, month, day) Crea una fecha UTC a partir del año, el mes y el día.
| Parámetros | | year | number | Año | | month | number | Mes (1-12) | | day | number | Día del mes | |
| Devuelve | fecha |
| Ejemplos | date(2024, 1, 1) → 1704067200000 date(2024, 6, 15) → 15 de junio de 2024 |
toDate
(value, format?) Interpreta un valor como fecha. Acepta números, como milisegundos desde la época Unix, y cadenas de texto.
| Parámetros | | value | any | Valor que se convertirá en 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 | Si especifica un formato, utilice los mismos tokens admitidos por formatDate. La interpretación se basa en UTC. |
today
() Devuelve la fecha actual a las 00:00 UTC.
| Devuelve | fecha |
| Ejemplos | today() → Fecha actual a las 00:00 |
Límites de los períodos de fechas
Trunca o redondea fechas a los límites de un período.
startOfDay
(date) Trunca una fecha al inicio del día (medianoche).
| Parámetros | | date | date | Fecha que se truncará | |
| Devuelve | fecha |
| Ejemplos | startOfDay(StartTime) → Medianoche del mismo día |
startOfWeek
(date) Devuelve el inicio de la semana (lunes).
| Parámetros | |
| Devuelve | fecha |
| Ejemplos | startOfWeek(StartTime) → Lunes de la misma semana |
startOfMonth
(date) Devuelve el primer día del mes.
| Parámetros | |
| Devuelve | fecha |
| Ejemplos | startOfMonth(StartTime) → Primer día del mes |
startOfYear
(date) Devuelve el 1 de enero del año.
| Parámetros | |
| Devuelve | fecha |
| Ejemplos | startOfYear(StartTime) → 1 de enero |
endOfWeek
(date) Devuelve el final de la semana (domingo a las 23:59:59).
| Parámetros | |
| Devuelve | fecha |
| Ejemplos | endOfWeek(StartTime) → Final del domingo |
endOfMonth
(date) Devuelve el final del mes a las 23:59:59.
| Parámetros | |
| Devuelve | fecha |
| Ejemplos | endOfMonth(StartTime) → Último día del mes, al final del día |
endOfYear
(date) Devuelve el 31 de diciembre a las 23:59:59.
| Parámetros | |
| Devuelve | fecha |
| Ejemplos | endOfYear(StartTime) → 31 de diciembre, al final del día |
Atajos para fechas
Funciones prácticas para calcular diferencias y sumas de fechas habituales.
daysBetween
(date1, date2) Devuelve la diferencia entre dos fechas en días.
| Parámetros | | date1 | date | Fecha de inicio | | date2 | date | Fecha de fin | |
| Devuelve | número |
| Ejemplos | daysBetween(StartTime, EndTime) → Duración en días entre dos fechas |
hoursBetween
(date1, date2) Devuelve la diferencia entre dos fechas en horas.
| Parámetros | | date1 | date | Fecha de inicio | | date2 | date | Fecha de fin | |
| Devuelve | número |
| Ejemplos | hoursBetween(StartTime, EndTime) → Duración en horas entre dos fechas |
minutesBetween
(date1, date2) Devuelve la diferencia entre dos fechas en minutos.
| Parámetros | | date1 | date | Fecha de inicio | | date2 | date | Fecha de fin | |
| Devuelve | número |
| Ejemplos | minutesBetween(StartTime, EndTime) → Duración en minutos entre dos fechas |
secondsBetween
(date1, date2) Devuelve la diferencia entre dos fechas en segundos.
| Parámetros | | date1 | date | Fecha de inicio | | date2 | date | Fecha de fin | |
| 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 añadirán | |
| Devuelve | fecha |
| Ejemplos | addDays(StartTime, 5) → Fecha cinco días después |
addHours
(date, hours) Añade horas a una fecha.
| Parámetros | | date | date | Fecha base | | hours | number | Número de horas que se añadirán | |
| Devuelve | fecha |
| Ejemplos | addHours(StartTime, 3) → Fecha tres horas después |
addMinutes
(date, minutes) Añade minutos a una fecha.
| Parámetros | | date | date | Fecha base | | minutes | number | Número de minutos que se añadirán | |
| Devuelve | fecha |
| Ejemplos | addMinutes(StartTime, 30) → Fecha 30 minutos después |
addSeconds
(date, seconds) Añade segundos a una fecha.
| Parámetros | | date | date | Fecha base | | seconds | number | Número de segundos que se añadirán | |
| Devuelve | fecha |
| Ejemplos | addSeconds(StartTime, 45) → Fecha 45 segundos después |
endOfDay
(date) Devuelve el final del día (23:59:59.999) correspondiente a una fecha.
| 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.
| 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 correspondiente a una fecha.
| Parámetros | | date | date | Fecha de entrada | |
| Devuelve | fecha |
| Ejemplos | endOfQuarter(StartTime) → 2024-06-30T23:59:59Z para una fecha de junio |
3. Funciones auxiliares de lógica
Condicional de varias opciones
Compara un valor con varias opciones.
switch
(value, match1, result1, ..., default?) Compara un valor con una lista de opciones y devuelve el resultado correspondiente. Es similar a una expresión if con varias opciones.
| Parámetros | | value | any | Valor que se 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 un número variable de argumentos: switch(value, match1, result1, match2, result2, ..., default) |
Comprobación de rangos
Comprueba si los valores están dentro de un rango o los limita a un rango.
between
(value, low, high) Devuelve true si un valor está entre los límites inferior y superior, incluidos ambos.
| Parámetros | | value | number | Valor que se comprobará | | low | number | Límite inferior | | high | number | Límite superior | |
| Devuelve | booleano |
| Ejemplos | 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 limitará | | min | number | Valor mínimo | | max | number | Valor máximo | |
| Devuelve | número |
| Ejemplos | clamp(Score, 0, 100) → Score limitado al rango de 0 a 100 |
Asignación con let
Asigna nombres a valores intermedios para usarlos en expresiones complejas.
let
(name, value, body) Asigna un valor a un nombre y, a continuación, evalúa la expresión del cuerpo con ese nombre disponible.
| Parámetros | | name | string | Nombre de variable (literal de cadena) | | value | any | Expresión que se asignará | | body | any | Expresión que utiliza la variable asignada | |
| 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)) → Asignaciones let anidadas |
4. Funciones de flujo, actividad y SLA
Predicados de precedencia
Comprueba si una actividad está precedida por otra actividad en un caso.
directlyPrecededBy
(activity, predecessor) Devuelve true si la segunda actividad precede directamente a la primera en el caso.
| Parámetros | | activity | string | Actividad que se comprobará | | predecessor | string | 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 segunda actividad precede a la primera en algún momento del caso.
| Parámetros | | activity | string | Actividad que se comprobará | | predecessor | string | 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 retrabajo
Identifica patrones de retrabajo en los que se repiten actividades dentro de un caso.
isRework
Property True si la actividad actual ya se realizó antes en el caso.
reworkCount
Property Número total de ejecuciones repetidas de actividades en el caso.
activityOccurrence
Property Número de veces que aparece esta actividad en el caso: 1 la primera vez, 2 la segunda y así sucesivamente.
Consultas de actividades
Comprueba si hay actividades en un caso y cuenta cuántas veces aparecen.
hasActivity
(activityName) Devuelve true si la actividad indicada aparece en algún punto del caso.
| Parámetros | | activityName | string | Nombre de la actividad que se comprobará | |
| Devuelve | booleano |
| Ejemplos | hasActivity("Approve") → true si el caso contiene una actividad Approve |
activityCount
(activityName) Devuelve el número de veces que aparece la actividad indicada en el caso.
| Parámetros | | activityName | string | Nombre de la actividad que se contará | |
| Devuelve | número |
| Ejemplos | activityCount("Review") → Número de actividades Review en el caso |
Tiempo entre actividades
Mide el tiempo entre actividades específicas de un caso.
timeBetween
(activityA, activityB) Devuelve el tiempo transcurrido 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 milisegundos 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 transcurrido desde la última actividad Start |
timeToActivity
(activityName) Tiempo que falta hasta la próxima 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 que falta hasta la próxima actividad Complete |
Funciones de SLA
Supervisa los acuerdos de nivel de servicio y detecta 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 que queda antes de incumplir un SLA o un valor negativo si ya se ha incumplido.
| Parámetros | | startDate | date | Marca de tiempo inicial | | 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 el momento actual.
Detección de bucles propios
Detecta y cuenta patrones de bucle propio en los que una misma actividad se repite consecutivamente.
isSelfLoop
Property True si la actividad actual coincide con la actividad anterior del caso.
selfLoopCount
Property Número de repeticiones consecutivas de la misma actividad en el caso actual.
Análisis de recursos
Detecta los traspasos y cambios de recursos dentro de un caso.
isResourceChange
(expr) Devuelve true si el valor de la expresión ha cambiado respecto al evento anterior.
| Parámetros | | expr | any | Expresión de columna para comprobar si hay cambios | |
| Devuelve | booleano |
| Ejemplos | isResourceChange(Resource) → true cuando el recurso difiere del evento anterior |
resourceHandoffCount
(expr) Cuenta los cambios de valor a lo largo del caso.
| Parámetros | | expr | any | Expresión de columna cuyos cambios se contarán | |
| Devuelve | número |
| Ejemplos | resourceHandoffCount(Resource) → 2 para Alice→Alice→Bob→Bob→Alice |
| Notas | Aún no está disponible en expresiones basadas en Athena. Para consultas de backend, use isResourceChange(expr) junto con caseCountIf(...) en un atributo derivado. |
5. Estadísticas, clasificación y cambios de valor
Funciones de clasificación
Clasifica 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 una expresión y con saltos en caso de empate.
| Parámetros | | expr | number | Expresión por la que se 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 empate.
| Parámetros | | expr | number | Expresión por la que se 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 por la que se 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 por la que se clasificará | |
| Devuelve | número |
| Ejemplos | allPercentRank(Duration) → Clasificación porcentual (0-1) |
Detección de cambios en valores
Detecta cambios en los valores entre eventos.
changed
(expr) Devuelve true si el valor de la expresión difiere del del evento anterior.
| Parámetros | | expr | any | Expresión en la que se comprobarán los cambios | |
| Devuelve | booleano |
| Ejemplos | changed(Resource) → true si el recurso cambió con respecto al evento anterior |
caseChanges
(expr) Cuenta los cambios de valor en todos los eventos del caso.
| Parámetros | | expr | any | Expresión en la que se comprobarán los cambios | |
| Devuelve | número |
| Ejemplos | caseChanges(Resource) → Número de traspasos de recursos en el caso |
| Notas | Aún no está disponible en expresiones basadas en Athena. Para consultas de backend, utilice changed(expr) junto con caseCountIf(...) en un atributo derivado. |
Agregaciones condicionales acumuladas
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 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) Recuento condicional acumulado hasta el evento actual.
| Parámetros | | condition | boolean | Condición que se contará | |
| Devuelve | número |
| Ejemplos | caseRunningCountIf(Activity == "Error") → Recuento acumulado de actividades Error |
caseRunningAvgIf
(expr, condition) Promedio condicional acumulado hasta el evento actual.
| Parámetros | | expr | number | Expresión para calcular el promedio | | condition | boolean | Condición para filtrar eventos | |
| Devuelve | número |
| Ejemplos | caseRunningAvgIf(Duration, Priority == "High") → Duración promedio acumulada de los eventos de prioridad alta |
Propiedades de 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.
remainingInCase
Property Tiempo restante hasta que finalice el caso, en milisegundos.
percentComplete
Property Progreso del caso expresado como una fracción entre 0 y 1.
Agregaciones condicionales ampliadas
Funciones adicionales de agregación condicional para calcular medianas, desviaciones estándar y recuentos de valores distintos.
caseMedianIf
(expr, condition) Calcula la mediana condicional de los eventos del caso que cumplen la condición.
| Parámetros | | expr | number | Expresión del valor | | condition | boolean | Condición del filtro | |
| Devuelve | número |
| Ejemplos | caseMedianIf(Amount, Activity == "Review") → Importe mediano de las actividades Review |
allMedianIf
(expr, condition) Calcula la mediana condicional de todos los eventos que cumplen la condición.
| Parámetros | | expr | number | Expresión del valor | | condition | boolean | Condición del filtro | |
| Devuelve | número |
| Ejemplos | allMedianIf(Amount, Status == "Complete") → Mediana global de los eventos completados |
caseStdDevIf
(expr, condition) Calcula la desviación estándar condicional de los eventos del caso.
| Parámetros | | expr | number | Expresión del valor | | condition | boolean | Condición del filtro | |
| Devuelve | número |
| Ejemplos | caseStdDevIf(Duration, Activity == "Review") → Desviación estándar de la duración de las actividades Review del caso |
allStdDevIf
(expr, condition) Calcula la desviación estándar condicional de todos los eventos.
| Parámetros | | expr | number | Expresión del valor | | condition | boolean | Condición del filtro | |
| Devuelve | número |
| Ejemplos | allStdDevIf(Amount, Priority == "High") → Desviación estándar global de los eventos de prioridad alta |
caseCountDistinctIf
(expr, condition) Cuenta los valores distintos que cumplen una condición en los eventos del caso.
| Parámetros | | expr | any | Expresión del valor | | condition | boolean | Condición del filtro | |
| Devuelve | número |
| Ejemplos | caseCountDistinctIf(Category, Amount > 100) → Categorías distintas con importes elevados |
allCountDistinctIf
(expr, condition) Cuenta los valores distintos que cumplen una condición en todos los eventos.
| Parámetros | | expr | any | Expresión del valor | | condition | boolean | Condición del filtro | |
| Devuelve | número |
| Ejemplos | allCountDistinctIf(User, Department == "Sales") → Usuarios distintos del departamento de ventas |
Agregaciones acumuladas ampliadas
Funciones adicionales de agregación acumulada para calcular medianas, desviaciones estándar y 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 del filtro | |
| Devuelve | número |
| Ejemplos | caseRunningMinIf(Amount, Activity == "Review") → Importe mínimo acumulado de las actividades Review |
caseRunningMaxIf
(expr, condition) Máximo condicional acumulado hasta el evento actual.
| Parámetros | | expr | number | Expresión del valor | | condition | boolean | Condición del filtro | |
| Devuelve | número |
| Ejemplos | caseRunningMaxIf(Amount, Priority == "High") → Máximo acumulado de los eventos de prioridad alta |
6. Funciones JSON
7. Temas relacionados