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
| Concept | Voorbeeld | Uitleg |
|---|---|---|
| Relaties | @actions | Verwijst naar gekoppelde entiteiten |
| Velden | .budget | Haalt 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.
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
| Type | Voorbeeld | Beschrijving |
|---|---|---|
| Number | 42, 3.14 | Getallen |
| Text | "hallo" | Tekst tussen aanhalingstekens |
| Boolean | true, false | Waar/onwaar |
| Date | 2024-06-15 | Datum in ISO-formaat |
| Null | null | Geen waarde |
| Array | [1, 2, 3] | Lijst van waarden |