Op deze pagina

Geavanceerde functies

Deze groepen functies vullen de expressietaal aan. Hieronder staan per groep de functies met hun parameters, retourtype en voorbeelden.

Tekst- en patroonfuncties

Functies voor reguliere expressies

Functies voor het matchen en vervangen van patronen met reguliere expressies.

regexMatch

(text, pattern)

Test of een tekenreeks overeenkomt met een patroon voor een reguliere expressie.

Parameters
text string De te testen tekenreeks
pattern string Het patroon voor de reguliere expressie
Retourneert boolean
Voorbeelden
regexMatch("abc123", "[0-9]+") true
regexMatch("hello", "^[0-9]+$") false
Zie ook

regexReplace

(text, pattern, replacement)

Vervangt elke keer dat een patroon voor een reguliere expressie in een tekenreeks voorkomt.

Parameters
text string De invoertekenreeks
pattern string Het patroon voor de reguliere expressie waarop wordt gezocht
replacement string De vervangende tekenreeks
Retourneert string
Voorbeelden
regexReplace("abc123def456", "[0-9]+", "#") abc#def#
regexReplace("hello world", "\s+", " ") hello world
Zie ook

regexExtract

(text, pattern, group?)

Haalt de eerste match van een patroon voor een reguliere expressie uit een tekenreeks. Je kunt optioneel een specifieke capture group ophalen.

Parameters
text string De invoertekenreeks
pattern string Het patroon voor de reguliere expressie
group (optioneel) number De index van de capture group, 0 voor de volledige match (standaard: 0)
Retourneert string
Voorbeelden
regexExtract("abc123def", "[0-9]+") 123
regexExtract("2025-01-15", "(\d{4})-(\d{2})", 1) 2025
Zie ook

Stringhulpfuncties

Aanvullende functies voor tekstbewerking.

repeat

(text, count)

Herhaalt tekst een opgegeven aantal keer.

Parameters
text string Tekst om te herhalen
count number Aantal herhalingen
Retourneert string
Voorbeelden
repeat("ab", 3) "ababab"

countOccurrences

(text, search)

Telt niet-overlappende voorkomens van een substring.

Parameters
text string Tekst om in te zoeken
search string Substring om te vinden
Retourneert number
Voorbeelden
countOccurrences("abcabc", "abc") 2

split

(text, delimiter, index)

Splitst tekst op een scheidingsteken en geeft het n-de deel terug, vanaf 1.

Parameters
text string Tekst om te splitsen
delimiter string Scheidingsteken waarop je splitst
index number Index van het terug te geven deel, vanaf 1
Retourneert string
Voorbeelden
split("a-b-c", "-", 2) "b"

exact

(a, b)

Hoofdlettergevoelige vergelijking van strings. Geeft true terug als beide strings identiek zijn.

Parameters
a string Eerste tekenreeks
b string Tweede tekenreeks
Retourneert boolean
Voorbeelden
exact("Hello", "hello") false

Hulpfuncties voor datums en doorlooptijden

Hulpfuncties voor doorlooptijden

Converteert doorlooptijden in milliseconden naar gangbare tijdseenheden.

durationInDays

(ms)

Converteert milliseconden naar dagen.

Parameters
ms number Doorlooptijd in milliseconden
Retourneert number
Voorbeelden
durationInDays(86400000) 1
durationInDays(caseThroughputTime) Doorlooptijd in dagen

durationInHours

(ms)

Converteert milliseconden naar uren.

Parameters
ms number Doorlooptijd in milliseconden
Retourneert number
Voorbeelden
durationInHours(3600000) 1
durationInHours(stepDuration) Duur van de stap in uren

durationInMinutes

(ms)

Converteert milliseconden naar minuten.

Parameters
ms number Doorlooptijd in milliseconden
Retourneert number
Voorbeelden
durationInMinutes(60000) 1
durationInMinutes(waitingTime) Wachttijd in minuten

durationInSeconds

(ms)

Converteert milliseconden naar seconden.

Parameters
ms number Doorlooptijd in milliseconden
Retourneert number
Voorbeelden
durationInSeconds(1500) 1.5

Datums samenstellen

Maakt datums op basis van onderdelen of zet tekenreeksen om naar datums.

date

(year, month, day)

Maakt een UTC-datum op basis van een jaar, maand en dag.

Parameters
year number Het jaar
month number De maand (1-12)
day number De dag van de maand
Retourneert datum
Voorbeelden
date(2024, 1, 1) 1704067200000
date(2024, 6, 15) 15 juni 2024

toDate

(value, format?)

Zet een waarde om naar een datum. Accepteert getallen, zoals epoch-milliseconden, of tekenreeksen.

Parameters
value any De waarde die je naar een datum wilt omzetten
format (optioneel) string Datumnotatiepatroon (optioneel)
Retourneert datum
Voorbeelden
toDate(1704067200000) 1704067200000
toDate("2024-01-15") 15 januari 2024
toDate("31/12/2024 23:45:59", "dd/MM/yyyy HH:mm:ss") 1735688759000
Notities

Gebruik bij een opgegeven notatie dezelfde ondersteunde tokens als bij formatDate. Het omzetten gebeurt op basis van UTC.

today

()

Geeft de huidige datum om middernacht UTC.

Retourneert datum
Voorbeelden
today() Huidige datum om middernacht

Grenzen van datumperioden

Kapt datums af of rondt ze af op het begin van een periode.

startOfDay

(date)

Kapt een datum af op het begin van de dag, om middernacht.

Parameters
date date De datum die je wilt afkappen
Retourneert datum
Voorbeelden
startOfDay(StartTime) Middernacht van dezelfde dag

startOfWeek

(date)

Geeft het begin van de week terug, op maandag.

Parameters
date date De datum
Retourneert datum
Voorbeelden
startOfWeek(StartTime) Maandag van dezelfde week

startOfMonth

(date)

Geeft de eerste dag van de maand terug.

Parameters
date date De datum
Retourneert datum
Voorbeelden
startOfMonth(StartTime) Eerste dag van de maand

startOfYear

(date)

Geeft 1 januari van het jaar terug.

Parameters
date date De datum
Retourneert datum
Voorbeelden
startOfYear(StartTime) 1 januari

endOfWeek

(date)

Geeft het einde van de week terug, zondag om 23:59:59.

Parameters
date date De datum
Retourneert datum
Voorbeelden
endOfWeek(StartTime) Einde van zondag

endOfMonth

(date)

Geeft het einde van de maand terug om 23:59:59.

Parameters
date date De datum
Retourneert datum
Voorbeelden
endOfMonth(StartTime) Laatste dag van de maand, einde van de dag

endOfYear

(date)

Geeft 31 december terug om 23:59:59.

Parameters
date date De datum
Retourneert datum
Voorbeelden
endOfYear(StartTime) 31 december, einde van de dag

Snelkoppelingen voor datums

Handige functies voor veelgebruikte bewerkingen met datumverschillen en datums optellen.

daysBetween

(date1, date2)

Geeft het verschil in dagen tussen twee datums terug.

Parameters
date1 date Startdatum
date2 date Einddatum
Retourneert number
Voorbeelden
daysBetween(StartTime, EndTime) Duur in dagen tussen twee datums

hoursBetween

(date1, date2)

Geeft het verschil in uren tussen twee datums terug.

Parameters
date1 date Startdatum
date2 date Einddatum
Retourneert number
Voorbeelden
hoursBetween(StartTime, EndTime) Duur in uren tussen twee datums

minutesBetween

(date1, date2)

Geeft het verschil in minuten tussen twee datums terug.

Parameters
date1 date Startdatum
date2 date Einddatum
Retourneert number
Voorbeelden
minutesBetween(StartTime, EndTime) Duur in minuten tussen twee datums

secondsBetween

(date1, date2)

Geeft het verschil in seconden tussen twee datums terug.

Parameters
date1 date Startdatum
date2 date Einddatum
Retourneert number
Voorbeelden
secondsBetween(StartTime, EndTime) Duur in seconden tussen twee datums

addDays

(date, days)

Telt dagen op bij een datum.

Parameters
date date Basisdatum
days number Aantal dagen om op te tellen
Retourneert datum
Voorbeelden
addDays(StartTime, 5) Datum 5 dagen later

addHours

(date, hours)

Telt uren op bij een datum.

Parameters
date date Basisdatum
hours number Aantal uren om op te tellen
Retourneert datum
Voorbeelden
addHours(StartTime, 3) Datum 3 uur later

addMinutes

(date, minutes)

Telt minuten op bij een datum.

Parameters
date date Basisdatum
minutes number Aantal minuten om op te tellen
Retourneert datum
Voorbeelden
addMinutes(StartTime, 30) Datum 30 minuten later

addSeconds

(date, seconds)

Telt seconden op bij een datum.

Parameters
date date Basisdatum
seconds number Aantal seconden om op te tellen
Retourneert datum
Voorbeelden
addSeconds(StartTime, 45) Datum 45 seconden later

endOfDay

(date)

Geeft het einde van de dag terug, 23:59:59.999, voor een bepaalde datum.

Parameters
date date Invoerdatum
Retourneert datum
Voorbeelden
endOfDay(StartTime) 23:59:59 op dezelfde dag

startOfQuarter

(date)

Geeft de eerste dag van het kwartaal terug voor een bepaalde datum.

Parameters
date date Invoerdatum
Retourneert datum
Voorbeelden
startOfQuarter(StartTime) 2024-04-01 voor een datum in juni

endOfQuarter

(date)

Geeft het laatste moment van het kwartaal voor een bepaalde datum terug.

Parameters
date date Invoerdatum
Retourneert datum
Voorbeelden
endOfQuarter(StartTime) 2024-06-30T23:59:59Z voor een datum in juni

Logische hulpfuncties

Voorwaardelijke keuze uit meerdere opties

Vergelijkt een waarde met meerdere gevallen.

switch

(value, match1, result1, ..., default?)

Vergelijkt een waarde met een lijst van gevallen en geeft het bijbehorende resultaat terug. Vergelijkbaar met een if met meerdere opties.

Parameters
value any De waarde die je wilt vergelijken
match1, result1, ... any Paren van vergelijkingswaarden en resultaten
default (optioneel) any Standaardresultaat als er geen overeenkomst is, optioneel
Retourneert elke waarde
Voorbeelden
switch("a", "a", 1, "b", 2, 0) 1
switch(Status, "Open", 1, "Closed", 2, 0) 1 bij Open, 2 bij Closed, anders 0
Notities

Accepteert een variabel aantal argumenten: switch(value, match1, result1, match2, result2, ..., default)

Bereikcontrole

Controleert of waarden binnen bereiken vallen of beperkt ze tot een bereik.

between

(value, low, high)

Geeft true terug als een waarde tussen low en high ligt, inclusief de grenzen.

Parameters
value number De waarde die je wilt controleren
low number Ondergrens
high number Bovengrens
Retourneert boolean
Voorbeelden
between(5, 1, 10) true
between(Amount, 100, 1000) true als Amount tussen 100 en 1000 ligt

clamp

(value, min, max)

Beperkt een waarde tot het bereik [min, max].

Parameters
value number De waarde die je wilt beperken
min number Minimumwaarde
max number Maximumwaarde
Retourneert number
Voorbeelden
clamp(15, 0, 10) 10
clamp(Score, 0, 100) Score beperkt tot 0-100

Let-binding

Koppelt tussenwaarden aan namen voor gebruik in complexe expressies.

let

(name, value, body)

Koppelt een waarde aan een naam en evalueert de body-expressie met die binding.

Parameters
name string Variabelenaam, stringliteral
value any Expressie om te koppelen
body any Expressie die de gekoppelde variabele gebruikt
Retourneert elke waarde
Voorbeelden
let("avg", caseAvg(Amount), Amount - avg) Afwijking van het casegemiddelde
let("x", Amount * 2, let("y", x + 3, x * y)) Geneste let-bindings

Functies voor flow, activiteiten en SLA

Predicaten voor voorafgaande activiteiten

Controleert of activiteiten in een case worden voorafgegaan door andere activiteiten.

directlyPrecededBy

(activity, predecessor)

Geeft true als de eerste activiteit in de case direct wordt voorafgegaan door de tweede activiteit.

Parameters
activity string De activiteit die je wilt controleren
predecessor string De verwachte voorgaande activiteit
Retourneert boolean
Voorbeelden
directlyPrecededBy("Approve", "Review") true als Review direct voorafgaat aan Approve
Zie ook

eventuallyPrecededBy

(activity, predecessor)

Geeft true als de eerste activiteit in de case uiteindelijk wordt voorafgegaan door de tweede activiteit.

Parameters
activity string De activiteit die je wilt controleren
predecessor string De verwachte voorgaande activiteit
Retourneert boolean
Voorbeelden
eventuallyPrecededBy("Ship", "Order") true als Order vóór Ship voorkomt in de case
Zie ook

Herhaald werk detecteren

Herkenningspatronen voor rework waarbij activiteiten binnen een case worden herhaald.

isRework

Property

True als de huidige activiteit eerder in de case is uitgevoerd.

Type boolean

reworkCount

Property

Totaal aantal herhaalde uitvoeringen van activiteiten in de case.

Type number

activityOccurrence

Property

Het volgnummer van deze activiteit in de case: 1 voor de eerste keer, 2 voor de tweede keer, enzovoort.

Type number

Activiteitsquery’s

Vraagt aanwezigheid en aantallen van activiteiten binnen een case op.

hasActivity

(activityName)

Geeft true terug als de genoemde activiteit ergens in de case voorkomt.

Parameters
activityName string Naam van de activiteit die je wilt controleren
Retourneert boolean
Voorbeelden
hasActivity("Approve") true als de case een Approve-activiteit bevat

activityCount

(activityName)

Geeft terug hoe vaak de genoemde activiteit in de case voorkomt.

Parameters
activityName string Naam van de activiteit die je wilt tellen
Retourneert number
Voorbeelden
activityCount("Review") Aantal Review-activiteiten in de case

Timing tussen activiteiten

Meet de tijd tussen specifieke activiteiten in een case.

timeBetween

(activityA, activityB)

Geeft de tijd terug tussen de eerste keer dat activiteit A en activiteit B voorkomen.

Parameters
activityA string Eerste activiteit
activityB string Tweede activiteit
Retourneert number
Voorbeelden
timeBetween("Submit", "Approve") Tijd in ms van Submit tot Approve

timeSinceActivity

(activityName)

Verstreken tijd sinds de laatste keer dat de genoemde activiteit vóór de huidige gebeurtenis voorkwam.

Parameters
activityName string Naam van de activiteit
Retourneert number
Voorbeelden
timeSinceActivity("Start") Tijd sinds de laatste Start-activiteit

timeToActivity

(activityName)

Tijd tot de volgende keer dat de genoemde activiteit na de huidige gebeurtenis voorkomt.

Parameters
activityName string Naam van de activiteit
Retourneert number
Voorbeelden
timeToActivity("Complete") Tijd tot de volgende Complete-activiteit

SLA-functies

Bewaking van Service Level Agreements en detectie van overschrijdingen.

slaBreached

(duration, threshold)

Geeft true terug als een doorlooptijd de SLA-drempel overschrijdt.

Parameters
duration number Werkelijke doorlooptijd
threshold number SLA-drempel
Retourneert boolean
Voorbeelden
slaBreached(100000, 86400000) false
slaBreached(caseThroughputTime, 86400000) true als de case de SLA van 24 uur overschrijdt

slaRemaining

(startDate, slaDuration)

Geeft de resterende tijd tot een SLA-overschrijding terug, of een negatieve waarde na de overschrijding.

Parameters
startDate date Start-timestamp
slaDuration number SLA-duur in milliseconden
Retourneert number
Voorbeelden
slaRemaining(caseStartTime, 172800000) Resterende tijd voor een SLA van 48 uur

caseAge

Property

Verstreken tijd sinds de start van de case, in milliseconden vanaf de eerste gebeurtenis tot nu.

Type number

Zelflussen detecteren

Detecteert en telt self-loop-patronen waarbij dezelfde activiteit opeenvolgend voorkomt.

isSelfLoop

Property

Waar als de huidige activiteit dezelfde is als de vorige activiteit in de case.

Type boolean

selfLoopCount

Property

Aantal opeenvolgende herhalingen van dezelfde activiteit in de huidige case.

Type number

Resource-analytics

Detecteert overdrachten en wijzigingen van bronnen binnen een case.

isResourceChange

(expr)

Geeft true terug als de waarde van de expressie is gewijzigd sinds het vorige event.

Parameters
expr any Kolomexpressie waarop wijzigingen worden gecontroleerd
Retourneert boolean
Voorbeelden
isResourceChange(Resource) true wanneer de bron verschilt van het vorige event

resourceHandoffCount

(expr)

Telt waardewijzigingen binnen de case.

Parameters
expr any Kolomexpressie waarvan je de wijzigingen wilt tellen
Retourneert number
Voorbeelden
resourceHandoffCount(Resource) 2 voor Alice→Alice→Bob→Bob→Alice
Notities

Nog niet beschikbaar in expressies op basis van Athena. Gebruik voor backendquery's isResourceChange(expr) samen met caseCountIf(...) in een afgeleid attribuut.

Functies voor statistiek, rangschikking en waardewijzigingen

Rangschikkingsfuncties

Rangschikt gebeurtenissen op basis van expressiewaarden binnen een case of over alle gebeurtenissen.

caseRank

(expr)

Rang van de huidige gebeurtenis binnen de case, gesorteerd op expressiewaarde, met gelijke rangen bij gelijke waarden.

Parameters
expr number Expressie waarop je wilt rangschikken
Retourneert number
Voorbeelden
caseRank(Amount) Rangschikking op Amount binnen de case

caseDenseRank

(expr)

Dense rank binnen de case, zonder gaten bij gelijke waarden.

Parameters
expr number Expressie waarop je wilt rangschikken
Retourneert number
Voorbeelden
caseDenseRank(Amount) Dense rank op Amount binnen de case

allRank

(expr)

Rangschikking over alle gebeurtenissen.

Parameters
expr number Expressie waarop je wilt rangschikken
Retourneert number
Voorbeelden
allRank(Duration) Globale rangschikking op Duration

allPercentRank

(expr)

Percentielrang over alle gebeurtenissen, van 0 tot 1.

Parameters
expr number Expressie waarop je wilt rangschikken
Retourneert number
Voorbeelden
allPercentRank(Duration) Percentielrang (0-1)

Veranderingen in waarden detecteren

Detecteert wanneer waarden tussen gebeurtenissen veranderen.

changed

(expr)

Geeft true terug als de expressiewaarde verschilt van de vorige gebeurtenis.

Parameters
expr any Expressie waarvoor je veranderingen wilt controleren
Retourneert boolean
Voorbeelden
changed(Resource) true als de resource sinds de vorige gebeurtenis is veranderd

caseChanges

(expr)

Telt waardeveranderingen over alle gebeurtenissen in de case.

Parameters
expr any Expressie waarvoor je veranderingen wilt controleren
Retourneert number
Voorbeelden
caseChanges(Resource) Aantal resource-overdrachten in de case
Notities

Nog niet beschikbaar in Athena-backed expressies. Gebruik voor backendquery's changed(expr) samen met caseCountIf(...) in een afgeleid attribuut.

Voorwaardelijke doorlopende aggregatiefuncties

Lopende aggregaties met voorwaarden, berekend tot en met de huidige gebeurtenis.

caseRunningSumIf

(expr, condition)

Lopende conditionele som tot en met de huidige gebeurtenis.

Parameters
expr number Expressie om op te tellen
condition boolean Voorwaarde om gebeurtenissen te filteren
Retourneert number
Voorbeelden
caseRunningSumIf(Amount, Status == "Paid") Lopende som van Amount waarvoor Status Paid is

caseRunningCountIf

(condition)

Lopende conditionele telling tot en met de huidige gebeurtenis.

Parameters
condition boolean Voorwaarde om te tellen
Retourneert number
Voorbeelden
caseRunningCountIf(Activity == "Error") Lopende telling van Error-activiteiten

caseRunningAvgIf

(expr, condition)

Lopend conditioneel gemiddelde tot en met de huidige gebeurtenis.

Parameters
expr number Expressie waarvan je het gemiddelde wilt berekenen
condition boolean Voorwaarde om gebeurtenissen te filteren
Retourneert number
Voorbeelden
caseRunningAvgIf(Duration, Priority == "High") Lopende gemiddelde doorlooptijd van gebeurtenissen met hoge prioriteit

Eigenschappen voor verstreken tijd

Eigenschappen voor het meten van voortgang en verstreken tijd binnen een case.

elapsedSinceStart

Property

Verstreken tijd sinds de start van de case, in milliseconden.

Type number

remainingInCase

Property

Resterende tijd tot het einde van de case, in milliseconden.

Type number

percentComplete

Property

Voortgang binnen de case als fractie, van 0 tot 1.

Type number

Uitgebreide voorwaardelijke aggregatiefuncties

Aanvullende conditionele aggregatiefuncties voor mediaan, standaardafwijking en unieke tellingen.

caseMedianIf

(expr, condition)

Conditionele mediaan over case-events waarvoor de voorwaarde waar is.

Parameters
expr number Waarde-expressie
condition boolean Filtervoorwaarde
Retourneert number
Voorbeelden
caseMedianIf(Amount, Activity == "Review") Mediaanbedrag voor Review-activiteiten

allMedianIf

(expr, condition)

Conditionele mediaan over alle events waarvoor de voorwaarde waar is.

Parameters
expr number Waarde-expressie
condition boolean Filtervoorwaarde
Retourneert number
Voorbeelden
allMedianIf(Amount, Status == "Complete") Globale mediaan voor voltooide events

caseStdDevIf

(expr, condition)

Conditionele standaardafwijking over case-events.

Parameters
expr number Waarde-expressie
condition boolean Filtervoorwaarde
Retourneert number
Voorbeelden
caseStdDevIf(Duration, Activity == "Review") Standaardafwijking van Review-doorlooptijden in de case

allStdDevIf

(expr, condition)

Conditionele standaardafwijking over alle events.

Parameters
expr number Waarde-expressie
condition boolean Filtervoorwaarde
Retourneert number
Voorbeelden
allStdDevIf(Amount, Priority == "High") Globale standaardafwijking voor hoge prioriteit

caseCountDistinctIf

(expr, condition)

Conditionele telling van unieke waarden over case-events.

Parameters
expr any Waarde-expressie
condition boolean Filtervoorwaarde
Retourneert number
Voorbeelden
caseCountDistinctIf(Category, Amount > 100) Unieke categorieën met hoge bedragen

allCountDistinctIf

(expr, condition)

Conditionele telling van unieke waarden over alle events.

Parameters
expr any Waarde-expressie
condition boolean Filtervoorwaarde
Retourneert number
Voorbeelden
allCountDistinctIf(User, Department == "Sales") Unieke gebruikers op de afdeling Sales

Uitgebreide doorlopende aggregatiefuncties

Aanvullende doorlopende aggregatiefuncties voor mediaan, standaardafwijking en conditioneel minimum en maximum.

caseRunningMedian

(expr)

Doorlopende mediaan van waarden tot en met het huidige event.

Parameters
expr number Waarde-expressie
Retourneert number
Voorbeelden
caseRunningMedian(Amount) Doorlopende mediaan van het bedrag

caseRunningStdDev

(expr)

Doorlopende standaardafwijking tot en met het huidige event.

Parameters
expr number Waarde-expressie
Retourneert number
Voorbeelden
caseRunningStdDev(Amount) Doorlopende standaardafwijking

caseRunningMinIf

(expr, condition)

Doorlopend conditioneel minimum tot en met het huidige event.

Parameters
expr number Waarde-expressie
condition boolean Filtervoorwaarde
Retourneert number
Voorbeelden
caseRunningMinIf(Amount, Activity == "Review") Doorlopend minimum van Review-bedragen

caseRunningMaxIf

(expr, condition)

Doorlopend conditioneel maximum tot en met het huidige event.

Parameters
expr number Waarde-expressie
condition boolean Filtervoorwaarde
Retourneert number
Voorbeelden
caseRunningMaxIf(Amount, Priority == "High") Doorlopend maximum voor hoge prioriteit

JSON-functies

JSON-extractie

Haalt waarden uit JSON-strings met behulp van padexpressies.

jsonExtract

(json, path)

Haalt een waarde uit een JSON-string met behulp van een JSONPath-expressie.

Parameters
json string JSON-string
path string JSONPath-expressie, bijvoorbeeld "$.field"
Retourneert elke waarde
Voorbeelden
jsonExtract("{\"name\":\"John\"}", "$.name") John

jsonValue

(json, path)

Haalt een scalaire waarde uit een JSON-string als string.

Parameters
json string JSON-string
path string JSONPath-expressie
Retourneert string
Voorbeelden
jsonValue("{\"age\":30}", "$.age") "30"

jsonArrayLength

(json)

Geeft de lengte van een JSON-array terug.

Parameters
json string JSON-arraystring
Retourneert number
Voorbeelden
jsonArrayLength("[1,2,3]") 3

Gerelateerde onderwerpen