Skip to main content
Skip table of contents

Expressies & scripts

Wat is een expressie?

Een expressie is een regel code (oneliner) die on the fly een waarde retourneert. Expressies brengen flexibiliteit binnen je configureerde dienstverlening. Op deze manier kan je gemakkelijker inspelen op verschillende scenarios. Binnen Skryv bestaan verschillende expressie types (talen) en het hangt van de context af welke je moet gebruiken.

Voorbeeld

${number > 10} retourneert true indien het getal groter is dan 10, indien niet false.

Wat is een script?

Een script is een stuk code dat complexer is dan een expressie. Scripts kunnen logica bevatten zoals loops, conditionele statements, en functies. Ze worden gebruikt om meer geavanceerde bewerkingen uit te voeren die niet mogelijk zijn met eenvoudige expressies. Scripts kunnen geschreven worden in JavaScript of Groovy.

Voorbeeld

Hieronder een eenvoudig JavaScript script dat binnen de context van een workflow execution een getal neemt en de vierkantswortel ervan teruggeeft.

CODE
// Procesvariabele 'mijnGetal' ophalen en toewijzen aan script variabele 'number'
var number = execution.getVariable("mijnGetal");

// Vierkantswortel nemen en resultaat toewijzen aan script variabele 'sqrtValue'
var sqrtValue = Math.sqrt(number);

// Script variabele 'sqrtValue' wegschrijven naar procesvariabele 'vierkantsWortel'
execution.setVariable("vierkantsWortel", sqrtValue);

Best practice: enkel de hoogstnodige logica in je proces

Expressies en scripts zijn voor je proces wat olie is voor een motor. Ze brengen op elk punt van de workflow precies die hoeveelheid informatie en logica die nodig is om het proces efficiënt te laten verlopen. Maar net zoals je ook niet te veel olie in een motor mag gieten, moet je erover waken dat je ook niet te veel informatie en logica in je proces stopt. De reden hiervoor is dat procesvariabelen, expressies en scripts lastig zijn om te onderhouden (moeilijk om het overzicht te bewaren, stroef om te migreren en te testen). Vandaar de stelregel: breng enkel de hoogstnodige logica onder in je proces, d.w.z. enkel die logica die belangrijk is voor business en/of die cruciaal is om je proces correct te laten verlopen. De overige logica breng je beter onder in stukken code die we vanuit de workflow aanspreken. Klik hier voor meer best practices.

Expressie types

Afhankelijk van het niveau waarop je een expressie wil gebruiken, gebruik je een ander type. Klik door op de hyperlinks voor meer info en voorbeelden.

Niveau

Type

Beschrijving

BPMN-workflow

Klik op deze link voor meer info en voorbeelden.

  • Expressies worden geschreven in JUEL.

  • Skryv platform specifieke expressies.

  • JUEL staat voor 'Java Unified Expression Language' en is de expressietaal die ondersteund wordt door de Camunda Engine.

  • Skryv platform specifieke expressies worden bijvoorbeeld gebruikt om waardes weg te schrijven naar een formulier, om de ID van een communicatie op te halen of om een extensie aan te roepen.

Formulier logica

Klik op deze link voor meer info en voorbeelden.

  • JavaScript

  • Skryv platform specifieke expressies.

Skryv platform specifieke expressies worden hier toegepast om logica (formliervariabelen) aan te maken. Op basis van deze formuliervariabelen kan je vervolgens het gedrag van het formulier bepalen (bijvoorbeeld een bepaalde sectie in het formulier wordt enkel getoond indien een variabele true is).

Formulier validatie

Klik op deze link voor meer info en voorbeelden.

  • JavaScript

  • Skvyr platform specifieke expressies.

Skryv platform specifieke expressies worden hier toegepast om veldwaardes te valideren (bijvoorbeeld een ingevoerde datum wordt geweigerd als deze in het verleden valt).

Communicatie (e-mail of document)

Klik op deze link voor meer info en voorbeelden.

Handlebars

Handlebars worden gebruikt binnen communicatietemplates enerzijds om te verwijzen naar dossiervelden (bijvoorbeeld naam en voornaam aanvrager ophalen) of om er dynamische content aan toe te voegen (bijvoorbeeld afhankelijk of een subsidie is goedgekeurd of afgekeurd een andere tekst visualiseren).

Beslissings-tabellen

Klik op deze link voor meer info en voorbeelden

Ondersteuning van diverse types zoals FEEL, JUEL, JavaScript, Groovy, Python en Ruby.

  • Expressies worden gebruikt voor het transformeren of bewerken van input parameters (bijvoorbeeld het omzetten van een string waarde naar een datum waarde).

  • Voor het opbouwen van de beslissingsregels zelf, gebruik je FEEL (Friendly Enough Expression Language), bijvoorbeeld het checken van input parameters tegen gepredefinieerde waardes zoals ‘Is leeftijd hoger dan 18?’.

Script types

Afhankelijk van het niveau waarop je een script wil gebruiken, gebruik je een ander type. Klik door op de hyperlinks voor meer info en voorbeelden.

Niveau

Type

Beschrijving

BPMN-workflow

Klik op deze link voor meer info en voorbeelden.

Scripts worden geschreven in JavaScript.

Wees waakzaam dat je scripts niet te uitgebreid of complex worden (lees: meer dan enkele regels). Als dit dreigt zo te worden, is het beter om over te schakelen op een extensie.

Beslissings-tabellen

Klik op deze link voor meer info en voorbeelden.

Ondersteuning van diverse types zoals FEEL, JUEL, JavaScript, Groovy, Python en Ruby.

Wees waakzaam dat je scripts niet te uitgebreid of complex worden (lees: meer dan enkele regels).

JavaScript errors detected

Please note, these errors can depend on your browser setup.

If this problem persists, please contact our support.