En esta página

Funciones avanzadas

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

regexExtract

(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
date date Fecha
Devuelve fecha
Ejemplos
startOfWeek(StartTime) → Lunes de la misma semana

startOfMonth

(date)

Devuelve el primer día del mes.

Parámetros
date date 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 Fecha
Devuelve fecha
Ejemplos
startOfYear(StartTime) → 1 de enero

endOfWeek

(date)

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

Parámetros
date date 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 Fecha
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
date date Fecha
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(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 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 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.

Type boolean

reworkCount

Property

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

Type number

activityOccurrence

Property

Número de veces que aparece esta actividad en el caso: 1 la primera vez, 2 la segunda y así sucesivamente.

Type number

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.

Type number

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.

Type boolean

selfLoopCount

Property

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

Type number

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.

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 entre 0 y 1.

Type number

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

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 y lo devuelve como cadena.

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

7. Temas relacionados

Diseñe mejores procesos. Conecte su arquitectura. Mantenga el control.

Acceda de inmediato, sin tarjeta de crédito ni esperas. Transforme la forma de trabajar de su organización en diseños de procesos claros y conectados.

Defina la arquitectura de procesos, los responsables y los controles, y alinee las funciones y responsabilidades en todos los niveles.

Comience su prueba gratuita y establezca una base fiable para gobernar, gestionar y mejorar continuamente sus procesos.