Scriban is een scripttaal waarmee binnen Ternair berekende waardes kunnen worden gegenereerd. Met Scriban kun je bijvoorbeeld een voorletter afleiden uit een voornaam, een dynamische systeemdatum vastleggen of het aantal dagen tot een verjaardag berekenen.
Scriban-scripts worden binnen het Snapshot blok ingevoerd via Mapping > + > Berekende waarde. De uitkomst van het script wordt vervolgens als kolom in het snapshot opgenomen.
Algemene werkwijze
De scripts in dit document zijn herbruikbare voorbeelden. Pas ze als volgt aan op de eigen situatie:
Vervang de tekst tussen vierkante haken (bijvoorbeeld [VELDNAAM] of [GEBOORTEDATUM]) door de exacte naam van het bronveld uit de dataset.
Plaats het volledige script (inclusief de openings- en sluittekens {{ en }}) in het invoerveld van Berekende waarde.
Let op: Veldnamen zijn hoofdlettergevoelig. Een verkeerd geschreven veldnaam zorgt voor een leeg of onverwacht resultaat.
Voorletter bepalen uit een voornaam
Toepassing: genereer de eerste letter van een voornaam in hoofdletter, gevolgd door een punt (bijvoorbeeld Jan → J.). Handig voor een formele aanhef in e-mailings.
{{ vNaam = [VELDNAAM] if vNaam | string.whitespace else (vNaam | string.slice 0 1 | string.upcase ) | string.append "." end }} |
Toelichting: vervang [VELDNAAM] door de kolomnaam waarin de voornaam staat. Het script controleert of het veld een waarde bevat; zo ja, dan wordt de eerste letter genomen, omgezet naar hoofdletter en voorzien van een punt. Is het veld leeg, dan blijft ook de voorletter leeg.
Systeemdatum vastleggen
Toepassing: vastleggen wanneer een proces draait of een mutatie plaatsvindt — bijvoorbeeld voor logging-doeleinden.
Variant A – op seconde-niveau:
Variant B – op milliseconde-niveau:
Toelichting: beide scripts geven de huidige systeemdatum en -tijd terug. De milliseconde-variant voegt :%L toe voor extra precisie en is bruikbaar wanneer meerdere mutaties binnen dezelfde seconde uniek herkenbaar moeten zijn.
Aantal dagen tot een verjaardag
Toepassing: bereken hoeveel dagen het nog duurt tot de eerstvolgende verjaardag van een contact. Handig om campagnes te triggeren voor contacten die binnen een bepaalde periode jarig zijn.
{{ vDatum = [GEBOORTEDATUM] if (vDatum != NULL) bday = date.parse vDatum now = date.now bday_this_year = date.parse (date.now.year) + '-' + (bday.month) + '-' + (bday.day) bday_next_year = date.parse (date.now.year + 1) + '-' + (bday.month) + '-' + (bday.day) next_bday = bday_this_year > now ? bday_this_year : bday_next_year days_until_next_bday = math.floor ((next_bday - now).total_days) days_until_next_bday else NULL end }} |
Toelichting: vervang [GEBOORTEDATUM] door het veld waarin de geboortedatum staat. Het script controleert eerst of de verjaardag dit jaar nog komt; zo niet, dan rekent het door naar volgend jaar. Vervolgens wordt het aantal hele dagen tussen vandaag en die verjaardag teruggegeven. Is het veld leeg, dan is de uitkomst NULL.
Datum relatief ten opzichte van vandaag (gisteren of morgen)
Toepassing: bereken een datum relatief tot vandaag — bijvoorbeeld voor het ophalen van data van gisteren of het bepalen van een vervaldatum in de toekomst.
{{ AddMinusDays = -1 # Pas dit getal aan: negatief = verleden, positief = toekomst date.add_days date.now AddMinusDays | date.to_string "%Y-%m-%d" }} |
Wijzig de waarde van AddMinusDays om de gewenste datum te bepalen. Bijvoorbeeld:
-1 = gisteren
1 = morgen
-7 = een week geleden
30 = over 30 dagen
Aantal dagen sinds een datum
Toepassing: bereken hoeveel dagen er verstreken zijn sinds een specifieke datum. Veelgebruikt bij RFM-analyses, bijvoorbeeld om te bepalen hoeveel dagen geleden een klant voor het laatst een aankoop heeft gedaan.
Toelichting: vervang [DATUM] door het datumveld waarmee gerekend moet worden. Het script geeft het aantal hele dagen tussen vandaag en die datum terug.