In questa pagina

Introduzione alle espressioni

Il linguaggio delle espressioni di ProcessMind consente di creare attributi calcolati, definire condizioni per i gateway e trasformare i dati all’interno dei modelli di processo. Questa funzionalità permette di ricavare nuovi insight dai dati senza modificarne la fonte.

Che cosa è possibile fare con le espressioni?

  • Attributi calcolati: creare nuove colonne di dati derivate da quelle esistenti. Ad esempio, calcolare il tempo di elaborazione tra gli eventi:

    dateDiff(StartTime, EndTime, "minute")
  • Logica condizionale: definire regole aziendali per categorizzare i dati o controllare il flusso del processo:

    if(Amount > 10000, "High Value",
      if(Amount > 1000, "Medium", "Low")
    )
  • Trasformazione dei dati: pulire, formattare e trasformare i dati testuali:

    upper(trim(CustomerName))
  • Analisi basata sul tempo: estrarre componenti temporali e creare intervalli temporali per l’analisi:

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

Sintassi delle espressioni

Le espressioni utilizzano una sintassi familiare, simile a quella delle formule dei fogli di calcolo:

  • Le funzioni vengono chiamate con le parentesi:

    round(3.14, 1)
  • Gli operatori vengono applicati tra i valori:

    Amount * 1.1
  • Le stringhe sono racchiuse tra virgolette doppie:

    "Hello"
  • I nomi delle colonne possono essere utilizzati direttamente:

    StartTime
    Amount
  • Le parentesi controllano l’ordine di valutazione:

    (a + b) * c
  • Identificatori tra virgolette: se il nome di una colonna contiene spazi o caratteri speciali, lo racchiuda tra accenti gravi:

    `Order Amount` * 0.1

Esempi rapidi

  • Calcolare la durata in ore

    dateDiff(StartTime, EndTime, "hour")
  • Categorizzare in base all’importo

    if(Amount >= 10000, "Enterprise", 
       if(Amount >= 1000, "Business", "Consumer")
    )
  • Estrarre anno e mese

    concat(toString(year(Timestamp)), "-", padLeft(toString(month(Timestamp)), 2, "0"))
  • Verificare la presenza di dati mancanti

    ifNull(Department, "Unassigned")
  • Calcolare la percentuale sul totale

    divide(Amount, allSum(Amount), 0) * 100
  • Contare gli errori nel caso

    caseCountIf(Status == "Error")

Argomenti correlati