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 | |
(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 | |
| 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, el 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, 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, 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(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(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.
reworkCount
Property Número total de ejecuciones repetidas de actividades en el caso.
activityOccurrence
Property Número de aparición de esta actividad en el caso: 1 la primera vez, 2 la segunda y así sucesivamente.
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.
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.
selfLoopCount
Property Número de repeticiones consecutivas de la misma actividad en el caso actual.
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.
remainingInCase
Property Tiempo restante hasta que finalice el caso, en milisegundos.
percentComplete
Property Progreso del caso expresado como una fracción, de 0 a 1.
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
Temas relacionados