Veld

Een veld is een geheugenveld of een functie. Velden worden gebruikt in parameters van taakacties of waarden van (andere) geheugenvelden.

Voorbeeld

In een taakactie kan bij een parameter een vaste waarde opgegeven worden, zoals in onderstaand voorbeeld:



Indien deze parameterwaarde altijd gelijk is voor de betreffende parameter, kan een vaste waarde worden ingevoerd. Indien de waarde dynamisch moet worden bepaald, kan gebruikt worden gemaakt van een veld.


Stel dat in bovenstaand voorbeeld altijd het huidige jaar (op basis van de systeemdatum) moet worden opgegeven. In dat geval kan een functie worden gebruikt:



In bovenstaand voorbeeld zal de functie, tijdens het uitvoeren van de taakactie, het huidige jaar op de aangegeven plek als waarde invullen.

Notatie

In onderstaande tabel worden alle mogelijke onderdelen van de notatie besproken:


Voorbeeld

Beschrijving

{@NaamVeld( parameter1 ; parameter2 )}

Een veld wordt altijd omsloten door accolades.

{@NaamVeld( parameter1 ; parameter2 )}

Tussen de eerste accolade en de naam van het veld wordt altijd een zogenaamde identifier opgegeven. Dit is een teken dat het type veld aangeeft. In de paragraaf Identifier worden de mogelijke types besproken.

{@NaamVeld( parameter1 ; parameter2 )}

Direct na de identifier wordt de naam van het veld opgegeven. Deze naam mag geen spaties bevatten. Een naam bestaat alleen uit letters, cijfers en/of underscores ("_").

{@NaamVeld( parameter1 ; parameter2 )}

Tussen de naam en de sluit accolade kan optioneel één of meerdere parameters opgegeven worden tussen ronde haakjes.

{@NaamVeld( parameter1 ; parameter2 )}

Indien er meerdere parameters worden opgegeven, dienen deze gescheiden te zijn door een puntkomma (";")

Identifier

Een identifier is een enkel teken waarmee het type veld wordt aangegeven. De volgende typen zijn mogelijk:


Identifier

Type veld

@

Functie

!

Een taak geheugenveld

&

Een globaal geheugenveld

Veldparameters

Indien een veld parameters accepteert, worden deze, gescheiden door een puntkomma, opgegeven, zoals in onderstaand voorbeeld:


{@Left( "abcdef" ; 3 )}


In bovenstaand voorbeeld accepteert de functie 2 parameters. Elke functie kent zijn eigen aantal mogelijk op te geven parameters.

In het voorbeeld wordt onder andere de volgende parameterwaarde gebruikt (aangegeven in geel):


{@Left( "abcdef" ; 3 )}


Deze functie verwacht hier een tekst als eerste parameter. De tekst wordt hier opgegeven tussen aanhalingstekens. Het is niet verplicht om aanhalingstekens op te geven. Bovenstaande functie mag dus ook als volgt worden opgegeven:


{@Left( abcdef ; 3 )}


Indien de parameterwaarde zelf echter een puntkomma bevat, zal BPM Server een probleem ondervinden met het lezen van de parameters. Stel de parameterwaarde bevat een puntkomma tussen "abc" en "def", zoals volgt:


{@Left( abc;def ; 3 )}


Aangezien een puntkomma als scheidingsteken wordt gebruikt voor parameters, kan BPM Server niet anders besluiten dat:

  • parameter 1 is abc
  • parameter 2 is def
  • parameter 3 is 3


Terwijl eigenlijk bedoeld was:

  • parameter 1 is abc;def
  • parameter 2 is 3


Bovenstaand probleem wordt opgelost door de parameterwaarde tussen aanhalingstekens te plaatsen. Hierdoor zal BPM Server alles, wat zich tussen de aanhalingstekens bevindt, als één parameterwaarde beschouwen. Het is daarom raadzaam om tekstwaarden altijd tussen aanhalingstekens te plaatsen, ook al is dit wellicht niet altijd noodzakelijk. Het plaatsen van de parameterwaarde tussen aanhalingstekens bevordert tevens de leesbaarheid van het veld.

Uitpakken van velden

Indien gebruik wordt gemaakt van velden in de parameters van een taakactie, worden deze velden uiteindelijk uitgepakt bij het uitvoeren van de taakactie. Dit houdt in dat het veld wordt omgezet naar een resultaatwaarde.

Voorbeeld


Indien de taakactie in bovenstaand voorbeeld wordt uitgevoerd, zal de gebruikte functie worden uitgepakt. De functie wordt letterlijk vervangen door het resultaat van de functie.


Dus:

{@Year}


wordt vervangen door het resultaat (stel: huidig jaar is 2014):

2014

Voorbeeld

Bij een taakactie parameter is de volgende waarde ingevoerd:

De factuur is op {@Day}-{@Month}-{@Year} verstuurd.


Bij het uitvoeren van de taakactie zullen de gebruikte velden vervangen worden naar een resultaatwaarde. De waarde zal bij het uitvoeren dus het volgende resultaat opleveren (stel: huidige datum is 3 mei 2014):

De factuur is op 03-05-2014 verstuurd.


In bovenstaande voorbeelden is telkens een functie gebruikt. Het uitpakken van geheugenvelden verloopt op dezelfde manier. De resultaatwaarde van een geheugenveld is in dat geval de waarde van het geheugenveld op het moment van uitvoer.

Nesten van velden

Het nesten van velden wil zeggen dat een veld binnen een ander veld kan worden gebruikt, zoals bijvoorbeeld het veld dat parameterwaarde dient voor een ander veld.


Dus: {@Right( {@Year} ; 2 )}


In bovenstaand voorbeeld wordt de functie {@Year} gebruikt als parameter voor de functie {@Right}. Beter gezegd: de resultaatwaarde van de functie {@Year} wordt als parameter voor de functie {@Right} gebruikt.


Het uitpakken van de expressie in de voorbeeld gebeurt in 2 stappen:

  1. Eerst wordt het binnenste veld uitgepakt: de functie {@Year}. Na stap 1 het tussenresultaat als volgt (stel: huidig jaar is 2014): {@Right( 2014 ; 2 )}
  2. Daarna wordt het buitenste veld uitgepakt. Het eindresultaat is dan als volgt: 14


Het uitpakken gebeurt van binnen naar buiten. In het bovenstaande voorbeeld ging dit in 2 stappen. Dit kunnen echter ook meerdere stappen zijn, zoals in het volgende voorbeeld, waar 3 geneste velden zitten:


{@BeginDateMonth( {@DateIncDays( {@Date} ; 5 )} )}


In bovenstaand voorbeeld zal eerst de {@Date}-functie worden uitgepakt, vervolgens de {@DateIncDays}-functie en tenslotte de {@BeginDateMonth}-functie.


Veldnamen bepalen a.d.h.v resultaatwaarden

Een veldnaam kan bepaald worden aan de hand van het resultaat van een ander veld.


Stel: Er zijn twee (globale) geheugenvelden aangemaakt met de volgende inhoud:


Geheugenveld

Waarde van het geheugenveld

{&eaMailAdresNL}

verkoopbinnenland@hasteren.nl

{&eaMailAdresDE}

verkoopbuitenland@hasteren.nl


Daarnaast is er een dataregel taakgeheugenveld "drKlant" waarin zich een kolom, genaamd "LandCode", bevindt. Het juiste e-mailadres kan nu bepaald worden aan de hand van de volgende expressie:


{&eaMailAdres{!drKlant( "LandCode" )}}


Deze expressie wordt door BPM Server uitgepakt in 2 stappen. Het geneste veld is "drKlant". Deze zal als eerste uitgepakt worden. Stel dat de waarde van het geheugenveld "DE" is. Dit betekent dat het veld {!drKlant( "LandCode" )} wordt vervangen door DE.


Na het uitpakken resulteert dit dus in de volgende waarde:


{&eaMailAdresDE}


Met behulp van de waarde van het geheugenveld "drKlant" is dus het geheugenveld "eaMailAdresDE" bepaald. Uiteindelijk leidt dit naar het eindresultaat verkoopbuitenland@hasteren.nl.

Opmaaktekst resultaatwaarde

Bij vrijwel elk veld is het mogelijk een opmaak toe te passen.