Expressions
Expressions zijn formules en functies die in Ultimo workflows, schermen, templates en berichten worden gebruikt. Ze maken het mogelijk om waarden te berekenen, te vergelijken, te formatteren en te transformeren. Dit artikel documenteert alle operators en functies. Zie workflow-engine voor de context waarin expressions worden gebruikt.
Syntaxbewerken
Property referencesbewerken
Waarden worden benaderd via ${...} syntax:
${Job.Description} - Property van een domain object
${Job.Equipment.Description} - Geneste property
${Jobs[0].Description} - Element uit een lijst (zero-based index)
${Counter} - Interne workflow property
Environment variabelenbewerken
Systeemwaarden via #{...} syntax:
#{Environment.CurrentDate} - Huidige datum
#{Environment.CurrentDateTime} - Huidige datum+tijd
#{User} - Huidige gebruiker
#{Settings.EmailSender} - Applicatie-instelling
#{UltimoSettings.StockLevelPerSite} - Ultimo setting
Expressies als waardebewerken
Expressies worden geactiveerd met het = prefix:
<Assign Name="..." Property="${Job.Deadline}" Value="=#adddays(#{Environment.CurrentDate}, 7)" />
Strings en quotesbewerken
Letterlijke strings worden omsloten door dubbele aanhalingstekens ("). Een aanhalingsteken in een string escape je met backslash (\"). Een backslash zelf met dubbele backslash (\\).
Keyword Emptybewerken
Gebruik Empty om te controleren of een waarde leeg is:
${Job.Description} != Empty - Beschrijving is ingevuld
${Equipment} == Empty - Equipment is niet gezet
${Equipment.Jobs} == Empty - Equipment heeft geen jobs (lege lijst)
Operatorsbewerken
Logische operatorsbewerken
| Operator | Beschrijving | XML-variant | Voorbeeld |
|---|---|---|---|
&& |
Logische AND | && |
${A} == True && ${B} == True |
\|\| |
Logische OR | ${A} == True \|\| ${B} == True |
|
! |
Logische NOT | !${IsActive} |
Let op: In XML moet
&&worden geschreven als&&.
Vergelijkingsoperatorsbewerken
| Operator | Beschrijving | XML-variant |
|---|---|---|
== |
Gelijk aan | Equals |
!= |
Niet gelijk aan | NotEquals |
> |
Groter dan | GreaterThan of > |
>= |
Groter dan of gelijk | GreaterThanOrEqual of >= |
< |
Kleiner dan | SmallerThan of < |
<= |
Kleiner dan of gelijk | SmallerThanOrEqual of <= |
Let op: In XML-condities moet je
<en>gebruiken in plaats van<en>.
Rekenkundige operatorsbewerken
| Operator | Beschrijving | Voorbeeld |
|---|---|---|
+ |
Optellen | ${A} + ${B} |
- |
Aftrekken | ${A} - ${B} |
* |
Vermenigvuldigen | ${A} * ${B} |
/ |
Delen | ${A} / ${B} |
Bitwise operatorsbewerken
| Operator | Beschrijving |
|---|---|
& |
Bitwise AND |
\| |
Bitwise OR |
Haakjesbewerken
Haakjes worden ondersteund voor groepering:
(${A} > 3) && (${B} < 9)
Niet ondersteunde operatorsbewerken
| Operator | Status |
|---|---|
= |
Niet ondersteund (gebruik ==) |
% |
Niet ondersteund |
String functiesbewerken
#substring(str, start [, len])bewerken
Retourneert een deel van een string. Start is zero-based. Zonder len wordt de rest van de string teruggegeven.
#substring("building", 3, 4) --> "ldin"
#substring(${DocumentFile}, 0, #length(${Equipment.Id}))
Beschikbaar in: Screen, Workflow, Message, Template
#length(str)bewerken
Retourneert de lengte van een string.
#length("Battery") --> 7
Beschikbaar in: Screen, Workflow, Message, Template
#replace(str, needle, replacement)bewerken
Vervang alle voorkomens van needle door replacement.
#replace("basically", "ally", "") --> "basic"
Beschikbaar in: Workflow, Message, Template
#concat(str, str [, str ...])bewerken
Voeg meerdere strings samen.
#concat(${FirstName}, " ", ${LastName}) --> "John Smith"
Beschikbaar in: Workflow, Message, Template
#contains(str, needle)bewerken
Retourneert true als de string de zoekterm bevat.
#contains("ABBABAAA", "AB") --> True
#contains("ABBABAAA", "AC") --> False
Beschikbaar in: Workflow, Message, Template
#startswith(str, searchstring)bewerken
Retourneert true als de string begint met de zoekterm.
#startswith("fileserver", "file") --> True
#startswith("fileserver", "cer") --> False
Beschikbaar in: Screen, Workflow, Message, Template
#endswith(str, searchstring)bewerken
Retourneert true als de string eindigt met de zoekterm.
#endswith("readme.docx", ".docx") --> True
Beschikbaar in: Screen, Workflow, Message, Template
#upper(str) / #lower(str)bewerken
Converteer naar hoofd- of kleine letters.
#upper("text") --> "TEXT"
#lower("TEXT") --> "text"
Beschikbaar in: Screen, Workflow, Message, Template
#trim(str)bewerken
Verwijder witruimte aan het begin en einde van een string.
#trim(" This is a test ") --> "This is a test"
Beschikbaar in: Screen, Workflow, Message, Template
#split(str [, delimiter [, removeEmpty]])bewerken
Splits een string in een lijst op basis van een scheidingsteken.
#split("aaa bbb ccc") --> ['aaa', 'bbb', 'ccc']
#split("a;b;c", ";") --> ['a', 'b', 'c']
#split("a;;b;;c", ";", True) --> ['a', 'b', 'c']
#split("a;b,c", #createlist(";", ",")) --> ['a', 'b', 'c']
Beschikbaar in: Workflow, Message, Template
#fillstart(input, fill, length)bewerken
Vul een string aan het begin tot de gewenste lengte.
#fillstart("a", "0", 5) --> "0000a"
#fillstart("42", "0", 6) --> "000042"
Beschikbaar in: Workflow, Message, Template
#format(object, formatstr)bewerken
Formatteer een decimale waarde.
#format(${DecimalProperty}, ".000") --> "200.000"
Beschikbaar in: Workflow, Message, Template
#guid([format])bewerken
Genereer een uniek GUID.
#guid() --> "0b81b4e32b6943a39e6ce19e7782a88c"
#guid("D") --> "0b81b4e3-2b69-43a3-9e6c-e19e7782a88c"
Beschikbaar in: Workflow, Message, Template
#getextension(str) / #getfilename(str)bewerken
Haal extensie of bestandsnaam op.
#getextension("readme.docx") --> ".docx"
#getfilename("temp\readme.docx") --> "readme.docx"
Beschikbaar in: Workflow, Message, Template
#htmltoplain(str) / #plaintohtml(str)bewerken
Converteer tussen HTML en platte tekst.
#htmltoplain(${Job.ReportText})
#plaintohtml(${Job.ReportText})
Beschikbaar in: Workflow, Message, Template
#sanitizehtml(str)bewerken
Verwijder onveilige HTML-tags. Gebruik ook voor conversie van RawHtml naar FormattedText.
#sanitizehtml(${Job.ReportText})
Beschikbaar in: Workflow
#uriescape(str)bewerken
Percent-escape een string voor gebruik in URI's.
#uriescape("http://ultimo.com/research & development")
--> "http%3A%2Fultimo.com%2Fresearch%20%26%20development"
Beschikbaar in: Workflow, Message, Template
#getlanguagevalue(string, languageCode)bewerken
Haal de waarde van een specifieke taal op uit een meertalige string.
#getlanguagevalue(${Site.Description}, "EN") --> "Nunspeet Office"
Beschikbaar in: Workflow
#tomultilingual(string [, languageCode])bewerken
Converteer een string naar een meertalige string. Zonder taalcode wordt de gebruikerstaal gebruikt.
#tomultilingual(${Job.Description})
#tomultilingual(${Job.Description}, "NL")
Beschikbaar in: Workflow
#toneutral(string)bewerken
Converteer een string naar een neutrale (taalonafhankelijke) string.
Beschikbaar in: Workflow
#createmultilingual(lang, val [, lang, val]*)bewerken
Maak een meertalige string aan met opgegeven taal/waarde-paren.
#createmultilingual("NL", "Installatie", "EN", "Equipment", "DE", "Anlagen")
Beschikbaar in: Template
#parsedatetimestring(str)bewerken
Parseer een datum/tijd string.
#parsedatetimestring("2018-07-26 22:08:05")
Beschikbaar in: Workflow
Datum functiesbewerken
Huidige datum/tijdbewerken
#{Environment.CurrentDate} - Huidige datum
#{Environment.CurrentDateTime} - Huidige datum+tijd
#gettoday() - Huidige datum/tijd
Datum toevoegen/aftrekkenbewerken
| Functie | Beschrijving | Voorbeeld |
|---|---|---|
#adddays(date, n) |
Dagen toevoegen | #adddays(${Job.Date}, 5) |
#addhours(datetime, n) |
Uren toevoegen | #addhours(${Time}, 2) |
#addminutes(datetime, n) |
Minuten toevoegen | #addminutes(${Time}, 30) |
#addseconds(datetime, n) |
Seconden toevoegen | #addseconds(${Time}, 10) |
#addmonths(date, n) |
Maanden toevoegen | #addmonths(${Date}, 3) |
#addyears(date, n) |
Jaren toevoegen | #addyears(${Date}, 1) |
Gebruik negatieve waarden om af te trekken:
=#addyears(#{Environment.CurrentDateTime}, -1) - Een jaar geleden
=#adddays(${Job.Deadline}, -7) - Een week voor deadline
Beschikbaar in: Screen, Workflow, Message, Template
#dateadd(datepart, number, date)bewerken
Generieke functie om een waarde toe te voegen aan een datumonderdeel.
| Datepart | Beschrijving |
|---|---|
y |
Jaren |
m |
Maanden |
d |
Dagen |
h |
Uren |
n |
Minuten |
s |
Seconden |
#dateadd("d", 5, ${Date}) --> 10-9-2018 -> 15-9-2018
#dateadd("y", 2, ${Date}) --> 10-9-2018 -> 10-9-2020
Beschikbaar in: Screen, Workflow, Message, Template
Datum onderdelen ophalenbewerken
| Functie | Retourneert | Voorbeeld |
|---|---|---|
#getday(date) |
Dagnummer | #getday(${Date}) --> 8 |
#getdayofweek(date) |
Engelse dagnaam | #getdayofweek(${Date}) --> "Saturday" |
#getdayofweekname(date) |
Engelse dagnaam | Zelfde als getdayofweek |
#getmonth(date) |
Maandnummer | #getmonth(${Date}) --> 4 |
#getyear(date) |
Jaar | #getyear(${Date}) --> 2017 |
#gethours(date) |
Uren | #gethours(${Date}) --> 12 |
#getminutes(date) |
Minuten | #getminutes(${Date}) --> 13 |
#getseconds(date) |
Seconden | #getseconds(${Date}) --> 33 |
Beschikbaar in: (Screen), Workflow, Message, Template
#getdatedifference(datepart, startdate, enddate [, bool])bewerken
Bereken het verschil tussen twee datums. Resultaat is negatief als enddate voor startdate ligt.
#getdatedifference("d", ${Job.RecordCreateDate}, ${Job.ScheduledStartDate}) --> 8 (dagen)
Dateparts: y (jaren), m (maanden), d (dagen), h (uren), n (minuten), s (seconden)
Als de boolean op false staat wordt de long-waarde teruggegeven (hogere precisie).
Beschikbaar in: Screen, Workflow, Message, Template
Datum constructiebewerken
| Functie | Beschrijving | Voorbeeld |
|---|---|---|
#getdate(year, month, day) |
Maak een datum | #getdate(2020, 10, 5) |
#setdatetime(y, m, d, h, min [, s]) |
Maak een datum+tijd | #setdatetime(2018, 5, 1, 23, 0) |
#settime(hours, minutes) |
Maak een tijd | #settime(8, 30) --> 08:30:00 |
#startofday(date) |
Begin van de dag | #startofday(${Date}) --> 00:00:00 |
#formatdate(date, formatstr, bool)bewerken
Formatteer een datum als string. De boolean bepaalt of het resultaat met hoofdletter begint.
#formatdate(#{Environment.CurrentDate}, "d", false) --> "5/16/2018"
#formatdate(#{Environment.CurrentDateTime}, "f", false) --> "Wednesday, May 16, 2018 2:42 PM"
Formatstrings volgen de .NET standaard datum/tijd formaat specificatie.
Beschikbaar in: Workflow, Message, Template
Unix timebewerken
#fromunixtime(1714903932) - Unix timestamp naar DateTime
#tounixtime(${Job.RecordCreateDate}) - DateTime naar Unix timestamp
Beschikbaar in: Workflow
Numerieke functiesbewerken
#abs(number)bewerken
Absolute waarde.
#abs(-1) --> 1
#abs(-1.5) --> 1.5
Beschikbaar in: Screen, Workflow, Message, Template
#round(number [, precision])bewerken
Afronden op een opgegeven aantal decimalen.
#round(16.95, 0) --> 17
#round(123.456, 2) --> 123.46
Beschikbaar in: Screen, Workflow, Message, Template
#ceil(number [, precision])bewerken
Altijd naar boven afronden.
#ceil(5.676, 2) --> 5.68
Beschikbaar in: Screen, Workflow, Message, Template
#floor(number [, precision])bewerken
Altijd naar beneden afronden (trunceren).
#floor(1.711, 2) --> 1.71
#floor(-1.951, 1) --> -2
Beschikbaar in: Screen, Workflow, Message, Template
#max(number, number ...) / #min(number, number ...)bewerken
Maximum of minimum van een reeks getallen. Alleen beschikbaar in Screen (conditional formatting).
#max(2, 4) --> 4
#min(2, 4) --> 2
#random([lowerLimit,] upperLimit)bewerken
Genereer een willekeurig geheel getal.
#random(10) --> 0 t/m 10
#random(50, 100) --> 50 t/m 100
Beschikbaar in: Workflow, Message, Template
#isnumeric(input)bewerken
Controleer of een waarde numeriek is.
#isnumeric(${Job.Extra1}) --> True
Beschikbaar in: Workflow, Message, Template
Formatteringbewerken
| Functie | Beschrijving | Voorbeeld |
|---|---|---|
#formatnumber(n, decimals) |
Formatteer getal | #formatnumber(5, 2) --> "5.00" |
#formathours(hours) |
Decimale uren naar tijd | #formathours(1.50) --> "1:30" |
#formatminutes(minutes) |
Minuten naar uren:minuten | #formatminutes(150) --> "2:30" |
Beschikbaar in: Workflow, Message, Template
Geld functiesbewerken
#createcompanymoney(${Amount}, "ReservationLine.InvoiceCost")
#createtransactionmoney(${Amount}, "EUR", "ReservationLine.InvoiceCost")
Beschikbaar in: Screen, Workflow, Message, Template
Lijst functiesbewerken
#exists(needle, haystack)bewerken
Controleer of een waarde voorkomt in een lijst.
#exists(${Job.Id}, "0000002") --> True/False
Beschikbaar in: Workflow, Message, Template
#elementat(list, index)bewerken
Haal een element op basis van index (zero-based). Alternatieve syntax: ${List[0]}.
#elementat(${Jobs}, 1) --> Tweede job in de lijst
${Jobs[2].Description} --> Beschrijving van derde job
Beschikbaar in: Workflow, Message, Template
#createlist([elements])bewerken
Maak een nieuwe lijst aan. Zonder argumenten wordt een lege lijst gemaakt.
#createlist("a", "b", "c") --> List[Object] { "a", "b", "c" }
#createlist() --> Lege lijst
Beschikbaar in: Workflow
#range([start,] length)bewerken
Maak een lijst met opeenvolgende getallen.
#range(6) --> 0, 1, 2, 3, 4, 5
#range(6, 5) --> 6, 7, 8, 9, 10
Beschikbaar in: Workflow
#containskey(dictionary, key)bewerken
Controleer of een dictionary een sleutel bevat.
#containskey(${PropertyValues}, "Description") --> True/False
Beschikbaar in: Workflow
#containselement(haystackList, needleList, containsAll)bewerken
Controleer of elementen uit de ene lijst voorkomen in de andere.
#containselement(${haystack}, ${needle}, False) --> True als MINSTENS EEN match
#containselement(${haystack}, ${needle}, True) --> True als ALLE matchen
Beschikbaar in: Screen, Workflow, Message, Template
Werken met lijsten: indexer syntaxbewerken
Elementen in lijsten zijn zero-based benaderbaar:
${Jobs[0].Description} - Eerste job
${Jobs[1].Equipment.Id} - Equipment van tweede job
${List.Count} - Aantal elementen
Type conversiebewerken
| Functie | Van | Naar | Beschikbaar in |
|---|---|---|---|
#tostring(input) |
Any | String | Workflow |
#todecimal(str) |
String | Decimal | Workflow, Message, Template |
#todouble(str) |
String | Double | Workflow, Message, Template |
#tointeger(input) |
Any | Integer | Workflow |
#tonullableinteger(input) |
Any | Integer? | Workflow |
#toboolean(input) |
Any | Boolean | Workflow |
#tostring(100) --> "100"
#todecimal("12.95") --> 12.95 (Decimal)
#todouble("-1.797693") --> -1.797693 (Double)
Object functiesbewerken
#coalesce(value [, value ...])bewerken
Retourneert de eerste niet-null waarde (vergelijkbaar met SQL COALESCE).
#coalesce(${Job.Equipment}, ${Job.Building}, "Onbekend")
Beschikbaar in: Screen, Workflow, Message, Template
#getpropertyvalue(object, propertyname)bewerken
Haal dynamisch een property-waarde op van een object.
#getpropertyvalue(${Job}, "Description")
Beschikbaar in: Workflow
#getsetting(domainObject, settingName)bewerken
Haal de waarde van een applicatie-instelling op, gebaseerd op het TableContext van het domain object.
#getsetting(${Job}, "Job.RoundHours") --> True/False
Alternatieve syntax met expliciete table/context:
#getsetting("Job", "JobContext.Fleet", "Job.RoundHours")
#getsetting("Job", 16384, "Job.RoundHours")
Beschikbaar in: Workflow
#settingenabled(domainObject, settingName)bewerken
Controleer of een setting actief is (retourneert Boolean).
#settingenabled(${Job}, "Job.RoundHours") --> True/False
Beschikbaar in: Workflow
Overige functiesbewerken
#moduleenabled(string)bewerken
Controleer of een licentiemodule actief is.
#moduleenabled("multilingual") --> True/False
Beschikbaar in: Workflow
#applicationelementenabled(string)bewerken
Controleer of een specifiek applicatie-element actief is (via GUID).
#applicationelementenabled("37050ff7-cac3-4418-877d-62c464d89461")
Beschikbaar in: Workflow, Message, Template
#color(string)bewerken
Retourneert de hex-kleurcode voor een benoemde kleur.
| Variabele | Beschrijving |
|---|---|
signal-color-good |
Groen signaal |
signal-color-bad |
Rood signaal |
signal-color-warning |
Oranje waarschuwing |
signal-color-information |
Blauw informatie |
condition-excellent t/m condition-very-bad |
Conditie-kleuren |
#color("signal-color-bad") --> "#c83232"
Beschikbaar in: Workflow, Message, Template
Metadata functies (alleen Template)bewerken
| Functie | Beschrijving |
|---|---|
#getdecimaldigits(columnName) |
Aantal decimalen van een kolom |
#getinputwidth(columnName) |
Breedte van een kolom |
#getdecimaldigits("JobiValue2") --> 2
#getinputwidth("JobDescr") --> 200
#xmldecode(str)bewerken
Decodeer een XML-gecodeerde string.
#xmldecode("<node>value</node>") --> "<node>value</node>"
Beschikbaar in: Workflow, Message, Template
#xmlencode(str)bewerken
Codeer een string naar XML.
#xmlencode("value") --> "<node>value</node>"
Beschikbaar in: Workflow, Message, Template
#uriunescape(str)bewerken
Decodeer een percent-escaped URI terug naar een reguliere string.
#uriunescape("Ultimo%20logo.png") --> "Ultimo logo.png"
Beschikbaar in: Workflow
#label(labelId)bewerken
Retourneert de vertaalde waarde van een label-ID uit de database.
#label("Change") --> "Wijzigen" (in NL omgeving)
#label("CHOOSERECORDS_MESSAGE")
Beschikbaar in: Workflow, Message, Template
#geturl(domainObject [, screenName])bewerken
Retourneert de interne URL van een object in Ultimo.
#geturl(${Job}) --> "https://server/ultimo_open.html#screen/open?jobid=0000108"
Beschikbaar in: Workflow, Message, Template
Context- en statusbeschrijvingenbewerken
Functies om context- en statusbeschrijvingen van entiteiten op te halen in de juiste taal.
| Functie | Beschrijving | Voorbeeld |
|---|---|---|
#contextdescription(obj) |
Context beschrijving (lowercase) | #contextdescription(${Equipment}) --> "instrument" |
#contextdescription_capital(obj) |
Context beschrijving met hoofdletter | #contextdescription_capital(${Equipment}) --> "Instrument" |
#contextdescription_plural(obj) |
Meervoud | #contextdescription_plural(${Equipment}) --> "instruments" |
#contextdescription_plural_capital(obj) |
Meervoud met hoofdletter | #contextdescription_plural_capital(${Equipment}) --> "Instruments" |
#the_contextdescription(obj) |
Met lidwoord "the" | #the_contextdescription(${Equipment}) |
#the_contextdescription_capital(obj) |
Met lidwoord "The" | #the_contextdescription_capital(${Equipment}) |
#statusdescription_capital(obj) |
Statusbeschrijving met hoofdletter | #statusdescription_capital(${Equipment}) --> "Active" |
Beschikbaar in: Workflow, Message, Template
Template functiesbewerken
In TextTemplates (email templates, rapport templates) zijn uitgebreide template-constructies beschikbaar. Deze worden gebruikt in de Subject en Body van TextTemplates die in de database zijn opgeslagen.
Conditionele logicabewerken
#if / #elseif / #else / #end
Voer conditionele logica uit in templates.
#if(${Job.Context} == 1)
Technische Dienst
#elseif(${Job.Context} == 4)
Service desk
#elseif(${Job.Context} == 1024)
Actie
#else
Onbekend
#end
#switch / #case / #default
Switch-constructie voor meerdere waarden.
#foreach(${Job} in ${Jobs})
#switch(${Job.Context})
#case 1: Technische Dienst
#case 4: Service desk
#case 128: IT Incident
#default: Onbekend
#end
#end
Iteratiebewerken
#foreach / #end (template)
Itereer door een lijst in een template. Ondersteunt diverse sub-secties voor opmaak.
#foreach(${Job} in ${Jobs})
#nodata
Er zijn geen jobs gevonden.
#beforeall
=== Overzicht Jobs ===
#odd
Oneven rij: ${Job.Id}
#even
Even rij: ${Job.Id}
#each
Beschrijving: ${Job.Description}
#before
Item nummer: ${Job.Id}
#after
Item gecontroleerd OK
#between
-----------------------------
#afterall
=== Einde overzicht ===
#end
Sub-secties binnen #foreach:
| Sectie | Beschrijving |
|---|---|
#nodata |
Wordt getoond als de lijst leeg is |
#beforeall |
Header tekst voor alle items |
#afterall |
Footer tekst na alle items |
#before |
Wordt voor elk item getoond |
#after |
Wordt na elk item getoond |
#between |
Wordt tussen items getoond (niet na het laatste) |
#each |
Standaard sectie voor elk item |
#odd |
Alleen voor items op oneven index |
#even |
Alleen voor items op even index |
#order / #orderby
Sorteer items in een foreach.
#foreach(${Number} in ${Numbers})
#order
ascending
#each
${Number}
#end
#foreach(${Job} in ${Jobs})
#orderby
Description ascending
Context descending
Status
#each
${Job}
#end
Macro'sbewerken
#macro / #call
Definieer herbruikbare blokken en roep ze aan.
#macro Tested(${Job})
#if(${Job.Context} == 1)
Technische Dienst
#elseif(${Job.Context} == 4)
Service desk
#else
#contextdescription_capital(${Job})
#end
#end
#foreach(${Job} in ${Jobs})
#call Tested(${Job})
#between
Item nummer: ${Job.Id}
Beschrijving: ${Job.Description}
#beforeall
Inventarislijst
#end
Overige template functiesbewerken
#includecss(path)
Voeg een CSS-bestand in vanuit de FileService. Het CSS-bestand moet in de FileServiceData staan.
#includecss(css/style.css)
<p class="uppercase">Deze tekst wordt hoofdletters.</p>
#dumpcontext()
Debug-functie die alle variabelen in de huidige scope toont.
#dumpcontext()
Resultaat: Stack level: 1 Name: 'Job', Value: 'Job.Id='0000007'', Type: 'Job'
Beschikbaar in: Template
Gerelateerde artikelenbewerken
- workflow-engine - Workflow engine overzicht
- workflow-instructies - Alle workflow instructies
- workflow-patronen - Praktische patronen