En esta página

Introducción a las expresiones

El lenguaje de expresiones de ProcessMind le permite crear atributos calculados, definir condiciones para gateways y transformar datos dentro de sus modelos de procesos. Esta función le permite obtener nueva información a partir de sus datos sin modificar la fuente.

¿Qué puede hacer con las expresiones?

  • Atributos calculados: cree nuevas columnas de datos a partir de las existentes. Por ejemplo, calcule el tiempo de procesamiento entre eventos:

    dateDiff(StartTime, EndTime, "minute")
  • Lógica condicional: defina reglas de negocio para categorizar datos o controlar el flujo del proceso:

    if(Amount > 10000, "High Value",
      if(Amount > 1000, "Medium", "Low")
    )
  • Transformación de datos: limpie, dé formato y transforme datos de texto:

    upper(trim(CustomerName))
  • Análisis basado en el tiempo: extraiga componentes temporales y cree intervalos de tiempo para el análisis:

    bucket(hour(StartTime), 6, "Night", 12, "Morning", 18, "Afternoon", "Evening")

Sintaxis de las expresiones

Las expresiones utilizan una sintaxis conocida, similar a la de las fórmulas de las hojas de cálculo:

  • Las funciones se llaman con paréntesis:

    round(3.14, 1)
  • Los operadores funcionan entre valores:

    Amount * 1.1
  • Las cadenas se escriben entre comillas dobles:

    "Hello"
  • Los nombres de columna pueden utilizarse directamente:

    StartTime
    Amount
  • Los paréntesis controlan el orden de evaluación:

    (a + b) * c
  • Identificadores entre comillas: si un nombre de columna contiene espacios o caracteres especiales, escríbalo entre comillas invertidas:

    `Order Amount` * 0.1

Ejemplos rápidos

  • Calcular la duración en horas

    dateDiff(StartTime, EndTime, "hour")
  • Categorizar por importe

    if(Amount >= 10000, "Enterprise", 
       if(Amount >= 1000, "Business", "Consumer")
    )
  • Extraer el año y el mes

    concat(toString(year(Timestamp)), "-", padLeft(toString(month(Timestamp)), 2, "0"))
  • Comprobar si faltan datos

    ifNull(Department, "Unassigned")
  • Calcular el porcentaje del total

    divide(Amount, allSum(Amount), 0) * 100
  • Contar errores del caso

    caseCountIf(Status == "Error")

Temas relacionados