Ga naar hoofdinhoud

Wat is DXL?

DXL (dare2plan Expression Language) is een expressietaal waarmee je berekeningen en metrics kunt definiëren in dare2plan. Met DXL kun je dynamische waarden berekenen op basis van data uit plannen, richtingen, resultaten en acties.

Waarom DXL?

In strategische planning werk je vaak met data die berekend moet worden:

  • Voortgangspercentages - Hoeveel procent van de acties is afgerond?
  • Budgetoverzichten - Wat is het totale budget van alle acties?
  • Risicoscores - Kans × Impact voor risicoanalyse
  • KPI's en metrics - Custom indicatoren op basis van je data
  • Datumberekeningen - Hoeveel dagen tot de deadline?

DXL maakt het mogelijk om deze berekeningen te definiëren als formules die automatisch worden bijgewerkt wanneer de onderliggende data verandert.

Hoe werkt het?

Een DXL-expressie is een formule die data ophaalt en verwerkt. Hier zijn een paar eenvoudige voorbeelden:

// Tel het aantal acties
@actions.count()

// Bereken het gemiddelde budget
@actions.budget.avg()

// Percentage voltooide acties
@actions[status == "done"].count() / @actions.count() * 100

Belangrijke concepten

ConceptVoorbeeldUitleg
Relaties@actionsVerwijst naar gekoppelde entiteiten
Velden.budgetHaalt een veld op van een entiteit
Methodes.sum()Voert een berekening uit
Filters[status == "done"]Filtert op een conditie

Waar wordt DXL gebruikt?

DXL wordt gebruikt in:

  • Metrics - Berekende waarden in plannen en richtingen
  • Dashboards - KPI's en indicatoren
  • Rapportages - Berekende kolommen en samenvattingen
  • Templates - Standaard metrics voor plantypen

Voorbeeld: Risicoanalyse

Een klassiek voorbeeld is risicoanalyse met kans × impact. Stel je hebt een risico-richting met twee dimensies:

  • Kans: Hoe waarschijnlijk is het risico? (slugs: laag, gemiddeld, hoog)
  • Impact: Hoe groot is de schade als het gebeurt? (slugs: beperkt, ernstig, catastrofaal)

Match op de dimensiewaarde met slugs:

match @dim:kans {
laag => "Laag risico",
gemiddeld => "Gemiddeld risico",
hoog => "Hoog risico",
_ => "Onbekend"
}

Dit geeft een categorisering die automatisch wordt bepaald op basis van de gekozen dimensiewaarde. De vergelijking gebeurt op GUID.

Slugs

DXL gebruikt leesbare slugs (zoals kans, hoog) die automatisch naar GUID's worden gecompileerd. Dit maakt expressies makkelijk leesbaar en onderhoudbaar.

Aan de slag

  • Voorbeelden - Praktische voorbeelden van DXL-expressies
  • Referentie - Volledige documentatie van alle functies

Snelle referentie

Veelgebruikte patronen

// Aantal items
@actions.count()

// Som van waarden
@actions.budget.sum()

// Gefilterde telling
@actions[status == "done"].count()

// Percentage
@actions[status == "done"].count() / @actions.count() * 100

// Gemiddelde
@results.score.avg()

// Minimum en maximum
@actions.due_date.min()
@actions.budget.max()

// Conditionele waarde
if progress >= 100 then "Afgerond" else "Lopend"

// Null-veilige berekening
budget ?? 0

Datatypen

TypeVoorbeeldBeschrijving
Number42, 3.14Getallen
Text"hallo"Tekst tussen aanhalingstekens
Booleantrue, falseWaar/onwaar
Date2024-06-15Datum in ISO-formaat
NullnullGeen waarde
Array[1, 2, 3]Lijst van waarden