eADM-engine voor regeluitdrukkingen

eADM-engine voor regeluitdrukkingen

Overzicht

De regeluitdrukkingsengine evalueert haakjesfuncties en veldplaatshouders in eADM. Uitdrukkingen komen voor in:

Consument

Typische toepassing

Regelsets (Regelsett)

Gebruikers, afdelingen en groepen filteren; berichtenstromen, synchronisatiestappen en machtigingen regelen

Berichtsjablonen

Dynamische ontvanger, onderwerp, tekst (HTML)

Sjablonen exporteren / sjabloonstroomlijnen synchroniseren

Toewijzing van doelattributen

Klantconfiguratie

Gebruikersnaamformule, automatische groepsnaamgeving, functiefilter

Formuliersjablonen

Koppelingen van formuliervelden

Uitdrukkingsbouwer

Voorbeeld bekijken voor een testgebruiker, afdeling of groep

Hoe de evaluatie in zijn werk gaat

  1. De engine doorzoekt de uitdrukking op [...] tokens.

  2. [ARRAYFOREACH...] wordt als eerste uitgevoerd — vóór de ‘innermost-first’-doorloop — dus sjabloonplaatshouders ??? en ???i bind per door een pipe gescheiden element.

  3. Anders worden eerst de binnenste haakjes verwerkt.

  4. Elke functie retourneert een resultaat in platte tekst dat de haak vervangt.

  5. Als er geen functies meer over zijn, blijven [FieldName] tokens worden vervangen vanuit de huidig object (en eventueel geschiedenisrij (in berichtenstromen).

  6. Niet-herkende veldnamen blijven letterlijk behouden [FieldName] in de uitvoer.

Door komma’s gescheiden lijsten (|) worden gebruikt voor gegevens met meerdere waarden — met name op het gebied van HR functies voor een gebruiker.

Fictieve gegevens die in de onderstaande voorbeelden worden gebruikt

Tenzij anders vermeld, gaan de voorbeelden uit van de klant Eksempel kommune met:

Object

Kernwaarden

Gebruiker Kari Nordmann

Voornaam=Kari, Achternaam=Nordmann, DisplayName=Kari Nordmann, Gebruikersnaam=kari.nordmann, E-mail=kari.nordmann@eksempel.kommune.no, Start=01.04.2026 00:00:00, Afdeling=IT og digitalisering, Afdelingsnummer=100

Gebruikersposities (uitgelijnd met de buis)

APositionCodeId=POS-01|POS-02, AUnitId=IT-100|HR-200, APositionCodeName=Utvikler|HR-rådgiver, APrimaryPosition=true|false, APositionPercentage=100.0|20.0

Afdeling IT (type 2)

Id=2100, SourceId=IT-100, Afdelingsnummer=100, OrgUnitnr=IT-100, ParentDepartmentNumber=0

Afdeling HR (onderdeel van IT)

Id=2101, SourceId=HR-200, ParentDepartmentNumber=100

Systeemrol (toegangsrecht)

Id=501, Naam=Bruker Fagsystem X, gekoppeld aan systeem-id=12

Toestemming voor Kari

SystemRoleId=501, ManagerOf=2100, Opmerking=Automatisk tildelt, ExpiryDate=leeg

ID’s van objecttypen (voor opzoekacties): Gebruiker=1, Afdeling=2, Groep=3, API-gebruiker=14.


Syntaxregels

  • Functies: [NAME;arg1;arg2;...] — argumenten gescheiden door een puntkomma (;).

  • Velden: [FieldName] — waarde uit het huidige object (hoofdlettergevoelig).

  • Geneste uitdrukkingen: binnenste haakjes worden eerst verwerkt, daarna de buitenste.

  • Lijstscheidingsteken: pijpje | (verticale streep) tussen waarden — bijv. POS-01|POS-02. Typ nooit een backslash; | komt alleen voor als Markdown-escaping in bronbestanden, niet in uitdrukkingen.

  • Datums in velden worden vaak opgeslagen als dd.MM.yyyy HH:mm:ss; bij het importeren kan gebruik worden gemaakt van yyyy-MM-dd en andere gangbare formaten.

Mini-taal voor query's

Voor gebruik binnenshuis [FOREACH], [IFTHENELSE], en gevorderd [OBJECT...] filters.

Token

Betekenis

=

Gelijk

>, <

Groter dan / kleiner dan

!

Niet gelijk

*

Patroonvergelijking (like)

#

Waarde in lijst

&

EN de volgende voorwaarde

|

OF de volgende voorwaarde

Voeg aan de gegevens het voorvoegsel toe object., system., systemrole., objectpermission., enz.


Nestelen

Eerst het binnenste veld, daarna de buitenste functie

Stap

Uitdrukkingsfragment

Besluit om

1

[start]

01.04.2026 00:00:00

2

[SUBSTRING;0;10;01.04.2026 00:00:00]

01.04.2026

Wordt geblokkeerd als het binnenste veld ontbreekt: [SUBSTRING;0;10;[UnknownField]] blijft ongewijzigd wanneer UnknownField bevindt zich niet op het object.

Typische machtigingsketen (van binnen naar buiten gelezen):

[REFERENCE;DisplayName;UserId;1;[REFERENCE;Manager;Id;2;[OBJECTPERMISSION;ManagerOf;SystemRoleId;501]]]
  1. Toestemming → afdelings-id 2100

  2. Afdeling → gebruikers-ID van de manager

  3. Gebruiker → weergavenaam beheerder

[ARRAYFOREACH...] is anders: het vult een door verticale streepjes gescheiden lijst aan vóór interne functies in de sjabloon worden uitgevoerd. Gebruik ??? voor het huidige element en ???i vanwege de indexering vanaf 0. Nestelen [ARRAYFOREACH...] binnenin een andere [ARRAYFOREACH...] wordt niet ondersteund — gebruik [ARRAYJOIN] / [ARRAYPREFIX] of in plaats daarvan telefoontjes van broers en zussen.


Toegangsniveaus

Rol

Wat het beïnvloedt

Supermanager

Voorbeeld van de Expressie-builder

Bedrijfsbeheerder

Volledige lijst met functies in de builder; [APITOKEN...], [SYNCSTEPPARAMETER...] in het voorbeeld

Organisatiebeheerder

Uitdrukkingen die betrekking hebben op beschermde velden in het voorbeeld

Superbeheerder

[UPDATE...], [DECRYPT...], [ENCRYPT...] — niet opgenomen in deze gids

Automatisering (synchronisatie, berichten, exporten) voert uitdrukkingen uit met serverrechten. Een functie die in de productieomgeving werkt, kan in de uitdrukkingsbouwer voor jouw rol toch geblokkeerd zijn.


Plaatshouders voor velden

Geen functies — vervangen vanuit het huidige object (of de geschiedenisregel in gebeurtenisgestuurde berichtenstromen).

Voorbeeld: Sjabloon Hello [GivenName] [Surname] over Kari Nordmann → Hello Kari Nordmann

Plaatshouder

Typische bron

[GivenName], [Surname], [DisplayName]

Naam van de persoon

[UserName], [Email], [Upn], [Mail]

Account / e-mail

[Department], [DepartmentNumber]

Basisafdeling

[Start]

Datum en tijdstip van indiensttreding

[Manager]

Referentie van de manager van HR

[APositionCodeId], [AUnitId], [APositionCodeName]

Meerdere posities (door streepjes gescheiden)

Alleen geschiedenis (berichtstroom na synchronisatie): [OldValue], [NewValue], [EntryType], [AttributeName], [Comment].


Functieoverzicht met voorbeelden

Elk item bevat een overzicht van de parameters, een uitgewerkt voorbeeld met voorbeeldgegevens en de verwachte uitvoer.


Datum en tijd

[NÅ] / [NOW]

Geeft de datum en tijd van de server weer.

Parameter

Doel

(geen)

Huidige moment

+N / -N achtervoegsel

N dagen toevoegen of aftrekken

Uitdrukking

Veronderstelde serverdatum

Uitgang

[NÅ]

17 juni 2026 14:30:00

17.06.2026 14:30:00

[NOW+7]

17.06.2026

24.06.2026 14:30:00 (op hetzelfde tijdstip, +7 dagen)

Gebruik: Weergave van toestemmingsstatus en relevante deadlines in sjablonen.


[DATEFORMAT;date;format]

Pakt een datumstring opnieuw in.

Parameter

Doel

date

Invoerdatum, of door een verticaal streepje gescheiden datums

format

Uitvoerpatroon (bijv. yyyy-MM-dd, dd/MM/yyyy)

Uitdrukking

Invoer (na het omzetten van velden)

Uitgang

[DATEFORMAT;01.04.2026 00:00:00;yyyy-MM-dd]

2026-04-01

[DATEFORMAT;01.04.2026 00:00:00|15.06.2026 00:00:00;yyyy-MM-dd]

twee data

2026-04-01|2026-06-15

Gebruik: Exportformaten, ISO-datums in API-payloads.


[DATEDIFF;date1;date2;unit]

Het numerieke verschil tussen twee datums.

Parameter

Doel

date1

Latere of eerste datum

date2

Eerdere datum of referentiedatum

unit

d dagen (standaard), y jaren, m maanden, h uren, mi minuten, s seconden

Uitdrukking

Uitgang

Betekenis

[DATEDIFF;17.06.2026 00:00:00;01.04.2026 00:00:00;d]

77

77 dagen tussen de start en vandaag

[DATEDIFF;17.06.2026 00:00:00;01.04.2026 00:00:00;y]

0

In dit voorbeeld: hetzelfde kalenderjaar

Gebruik: Controles op de looptijd in regelsets, „aantal dagen tot aanvang“ in berichten.


[DAYOFYEAR;date]

Parameter

Doel

date

Datum van beoordeling

Uitdrukking

Uitgang

[DAYOFYEAR;01.04.2026 00:00:00]

91

Toepassing: Seizoensgebonden regels, trucs voor het boekjaar.


Tekenreeksbewerking

[SUBSTRING;start;length;text]

Parameter

Doel

start

Startindex vanaf 0

length

Aantal tekens dat moet worden overgenomen

text

Bronreeks (vaak een genest veld)

Uitdrukking

Besloten text

Uitgang

[SUBSTRING;0;10;01.04.2026 00:00:00]

01.04.2026

[SUBSTRING;0;4;POS-01]

POS-0

Gebruik: Alleen de datum uit de datum-tijdcombinatie in welkomstmails: [SUBSTRING;0;10;[Start]]01.04.2026.


[SPLIT;text;delimiter;index]

Parameter

Doel

text

Te splitsen tekenreeks

delimiter

Scheidingsteken (bijv. |, ;, spatie)

index

index van stukken beginnend bij 0, of last / last-1

Uitdrukking

Uitgang

[SPLIT;Kari|Nordmann;|;0]

Kari

[SPLIT;POS-01|POS-02;|;last]

POS-02

Gebruik: Aanhef op basis van het veld met de samengestelde naam; kies de code voor de laatste positie.


[REPLACE;text;find;replace]

Parameter

Doel

text

Oorspronkelijke tekst

find

Te vervangen deelstrings; pipe = meerdere; ^x = alleen bij het opstarten; x^ = alleen aan het einde

replace

Vervangende tekst

Uitdrukking

Uitgang

[REPLACE;kari.nordmann;.;-]

kari-nordmann

[REPLACE;+4712345678;+47|;;]

12345678

Gebruik: Telefoonnummers normaliseren, scheidingstekens in gebruikersnamen omwisselen.


[REPLACELIST;text;fromChars;toChars]

Teken-voor-teken-toewijzing (beide tekenlijsten moeten even lang zijn).

Parameter

Doel

text

Invoer

fromChars

Tekens die moeten worden omgezet

toChars

Tekens die moeten worden toegewezen aan

Uitdrukking

Uitgang

[REPLACELIST;abcåøæ;åøæaoe]

abcaoe

Toepassing: Correcties voor verouderde tekensets bij het importeren.


[RTRIM;text;chars] / [LTRIM;text;chars]

Parameter

Doel

text

Invoer; als deze het volgende bevat |, elk segment wordt bijgesneden

chars

Teken(s) die aan het einde (RTRIM) of aan het begin (LTRIM) moeten worden verwijderd

Uitdrukking

Uitgang

[RTRIM;POS-01|POS-02|;]

POS-01|POS-02 (het laatste lege segment is verwijderd)

[LTRIM;; Kari; ]

Kari

Gebruik: Pijplijsten opschonen na [ARRAYDIFF].


[RPAD;text;padChar;totalLength] / [LPAD;text;padChar;totalLength]

Parameter

Doel

text

Waarde invoeren

padChar

Opvulteken

totalLength

Doelbreedte

Uitdrukking

Uitgang

[RPAD;42;0;5]

42000

[LPAD;7;0;4]

0007

Toepassing: Personeelsnummers met vaste breedte bij het exporteren van bestanden.


[RIGHT;length;text]

Parameter

Doel

length

Hoeveel tekens vanaf de rechterkant

text

Bron

Uitdrukking

Uitgang

[RIGHT;4;12345678]

5678

Gebruik: De laatste cijfers van het nationale identiteitsnummer in testomgevingen.


[INITIALS;text;startWord;endWord]

Parameter

Doel

text

Volledige naam of zin

startWord

Begin van de woordenindex (0 als startpunt)

endWord

Woordenlijst tot het einde, of last / last-1

Uitdrukking

Uitgang

[INITIALS;Kari Marie Nordmann;0;last]

K M N (letters en spaties zoals weergegeven)

[INITIALS;Kari Marie Nordmann;1;1]

M

Gebruik: Korte codes in groepsnamen of e-mailaliassen.


[PRETTIFY;text]

Hoofdletters na een spatie of koppelteken.

Uitdrukking

Uitgang

[PRETTIFY;kari nordmann]

Kari Nordmann

[PRETTIFY;it-og-digitalisering]

It-Og-Digitalisering

Gebruik: Namen in berichten weergeven wanneer HR deze in hoofdletters verstuurt.


[LOWER;text] / [UPPER;text]

Uitdrukking

Uitgang

[LOWER;Kari.Nordmann@Eksempel.Kommune.NO]

kari.nordmann@eksempel.kommune.no

[UPPER;avdeling-it]

AVDELING-IT

Gebruik: Eerst normaliseren [CLEAN] in de regels voor gebruikersnamen.


[CLEAN;text] / [STRICTCLEAN;text] / [CNCLEAN;text]

Verwijder of vervang tekens die ongeschikt zijn voor gebruikersnamen, strikte ID’s of AD-algemene namen (CN).

Uitdrukking

Typische uitvoer

Gebruik

[CLEAN;Kari Åse Nordmann!]

kariasenordmann (niet-letters verwijderd, in kleine letters weergegeven)

Gebruikersnaam / uid

[CNCLEAN;Kari (test) Nordmann]

CN-veilige vorm voor AD

Groeps- of gebruikers-CN

De exacte uitvoer hangt af van de tekenregels van de klant; test dit in de Expressie-bouwer.


[GETKEYVALUE;key;delimiter;metadata]

Leest key<delimiter>value paren binnen een door verticale streepjes gescheiden metadatastring.

Parameter

Doel

key

Zoekopdracht

delimiter

Scheidingsteken tussen sleutel en waarde (vaak = of :)

metadata

Door komma’s gescheiden lijst van sleutel-waardetokens

Uitdrukking

metadata waarde

Uitgang

[GETKEYVALUE;cost;=;cost=IT|site=Oslo]

IT

Gebruik: Metadata voor aangepaste import op extensie-attributen.


Logica en controlestroom

[IFTHENELSE;query;thenValue;elseValue]

Parameter

Doel

query

Voorwaarde: huidig object (bijv. ObjectTypeId=1)

thenValue

Wordt geretourneerd als de zoekopdracht overeenkomt

elseValue

Wordt geretourneerd als dit niet het geval is

Context

Uitdrukking

Uitgang

Gebruiker Kari (type 1)

[IFTHENELSE;ObjectTypeId=1;Ansatt;Ikke ansatt]

Ansatt

Afdeling IT (type 2)

hetzelfde

Ikke ansatt

Gebruik: Eén sjabloon voor verschillende objecttypes.


[IFEMPTYUSE;primary;fallback;reversed]

Parameter

Doel

primary

Te testen waarde

fallback

Wordt gebruikt wanneer het primaire veld leeg is (standaard)

reversed

Optioneel true: gebruik de fallback wanneer de primaire optie niet leeg

Uitdrukking

Het verstrijken van Kari's toestemming

Uitgang

[IFEMPTYUSE;;Permanent tilgang]

leeg

Permanent tilgang

[IFEMPTYUSE;15.12.2026;Permanent tilgang]

15.12.2026

15.12.2026

[IFEMPTYUSE;[Manager];;true]

Manager=empty

`` (leeg — omgekeerd: alleen als uitwijkoptie wanneer er een manager is)

Gebruik: Standaardtekst voor ontbrekende vervaldatum, beheerder of opmerking.


[EXISTS;value;resultIfNonEmpty]

Parameter

Doel

value

Geteste tekenreeks

resultIfNonEmpty

Wordt alleen geretourneerd als value is niet-leeg

Uitdrukking

Veld ‘Kari Manager’

Uitgang

[EXISTS;ola.hansen;has-manager]

ola.hansen

has-manager

[EXISTS;;has-manager]

leeg

`` (leeg)

Gebruik: Geneste opzoekacties in Gate — alleen uitvoeren [REFERENCE...] wanneer [Manager] is ingesteld.


[TRANSFORM;input;mapping...]

Parameter

Doel

input

Waarde om in kaart te brengen

key|value paren

Vergelijk invoer met uitvoer

*|default

Joker als er geen sleutel overeenkomt

Uitdrukking

[Sex] = F

Uitgang

[TRANSFORM;F;M|Mann;F|Kvinne;*|Ukjent]

Kvinne

[TRANSFORM;X;M|Mann;F|Kvinne;*|Ukjent]

Ukjent

Gebruik: HR-codes → tekst weergeven in berichten.


[CONTAINS;valueList;targetList;ifYes;ifNo]

Parameter

Doel

valueList

Naalden met tussensteek

targetList

Door buizen gescheiden hooiberg

ifYes / ifNo

Aantal strings dat wordt geretourneerd bij een treffer / geen treffer

Uitdrukking

Uitgang

[CONTAINS;IT-100|FIN-300;HR-200|IT-100|SALG-400;ja;nei]

ja (IT-100 gevonden in het doel)

[CONTAINS;FIN-300;HR-200|IT-100;ja;nei]

nei

Gebruik: vertakkingen in de stijl van een regelset binnen een sjabloon.


Bewerkingen op arrays (gescheiden door vertikale streepjes)

Lijsten zien er als volgt uit: A|B|C. In veel HR-functieomschrijvingen wordt deze vorm gebruikt.

[COUNT;ignored;list]

Parameter

Doel

ignored

Plaatshouder (niet gebruikt)

list

Door komma’s gescheiden waarden

Uitdrukking

Uitgang

[COUNT;x;POS-01|POS-02|]

2 (lege segmenten aan het einde kunnen het aantal beïnvloeden — test dit met je eigen gegevens)

Gebruik: „Hoeveel functies heeft deze gebruiker?”


[ARRAYAPPEND;list1;list2]

Uitdrukking

Uitgang

[ARRAYAPPEND;POS-01|;POS-02|POS-03|]

POS-01|POS-02|POS-03|

Toepassing: Rollijsten uit twee machtigingsquery’s samenvoegen.


[ARRAYUNIQUE;list]

Uitdrukking

Uitgang

[ARRAYUNIQUE;A|B|A|C|]

A|B|C|

Gebruik: Verwijder dubbele afdelings-ID’s vóór het exporteren.


[ARRAYFILTER;list;allowed]

Behoudt alleen items die voorkomen in allowed.

Uitdrukking

Uitgang

[ARRAYFILTER;POS-01|POS-02|POS-99;POS-01|POS-02|]

POS-01|POS-02|

Gebruik: Voeg berichttypen toe aan de witte lijst voor een bericht.


[ARRAYDIFF;current;previous]

Items in current niet in previous.

Context

current

previous

Uitgang

Nieuwe functie toegevoegd

POS-01|POS-02|

POS-01|

POS-02|

Geen wijziging

POS-01|

POS-01|

``

Gebruik: Detecteren nieuwe functie in de berichtenstroom (in combinatie met [LASTVALUE;APositionCodeId]). Waarschuwing: onbetrouwbaar als er bij één import meerdere posities veranderen.


[ARRAYJOIN;list1;list2]

Voegt twee lijsten samen op basis van de index.

Uitdrukking

Uitgang

[ARRAYJOIN;Utvikler|HR-rådgiver;100%|20%]

Utvikler100%|HR-rådgiver20%

Gebruik: Combineer parallelle kolommen voor exportregels in CSV-stijl.


[ARRAYFOREACH;array;template] / [ARRAYFOREACH;array;separator;template]

Loopt door een door komma’s gescheiden lijst. Voor elk niet-leeg element wordt vervangen door ??? met het element en ???i met zijn 0-gebaseerde index in de sjabloon, evalueert geneste [...] in het sjabloon, en voegt vervolgens de resultaten samen.

Parameter

Doel

array

Door komma’s gescheiden lijst (vaak een veld zoals [APositionCodeName])

separator

Optionele verbindingsreeks tussen iteraties (standaard |)

template

Tekst of geneste uitdrukking; ??? = huidig item, ???i = index

Uitdrukking

Kari APositionCodeName

Uitgang

[ARRAYFOREACH;[APositionCodeName];Stilling: ???]

Utvikler|HR-rådgiver

Stilling: Utvikler|Stilling: HR-rådgiver

[ARRAYFOREACH;[APositionCodeId];, ;DEPT-???]

POS-01|POS-02

DEPT-POS-01, DEPT-POS-02

[ARRAYFOREACH;[APositionCodeId];[SUBSTRING;0;4;???]]

POS-01|POS-02

POS-|POS-

[ARRAYFOREACH;[APositionCodeName];???i:???]

Utvikler|HR-rådgiver

0:Utvikler|1:HR-rådgiver

Lege buissegmenten zijn overgeslagen (volgens dezelfde conventie als [ARRAYUNIQUE] / [ARRAYPREFIX]).

Niet ondersteund: [ARRAYFOREACH...] genest in een andere [ARRAYFOREACH...] — de evaluatie van de uitdrukking mislukt. Gebruik twee gelijkwaardige aanroepen of [ARRAYJOIN] in plaats daarvan.

Gebruik: Geef elke positie als een aparte regel in een bericht weer; voeg voor elke eenheids-ID een voorvoegsel toe voor de export.


[ARRAYPREFIX;list;mode;text]

Parameter

Doel

list

Door vertikalekantjes gescheiden items

mode

1 = zet voor elk item text; overige = achtervoegsel

text

Reeks met voor- of achtervoegsel

Uitdrukking

Uitgang

[ARRAYPREFIX;IT-100|HR-200;1;DEPT-]

DEPT-IT-100|DEPT-HR-200|

Gebruik: Externe ID’s van naamruimten.


[ARRAYTRIM;list;delimiter;maxCount]

Uitdrukking

Uitgang

[ARRAYTRIM;A|B|C|D;|;2]

A|B

Gebruik: Alleen de eerste N posities in een overzichtsmail.


[PRUNEARRAY;list;regex;reverse]

Parameter

Doel

list

Door vertikalekantjes gescheiden items

regex

.NET-reguliere expressie

reverse

true = bewaren in plaats daarvan artikelen die niet overeenkomen

Uitdrukking

Uitgang

[PRUNEARRAY;POS-01|TEMP-99|POS-02;^TEMP;false]

POS-01|POS-02

[PRUNEARRAY;POS-01|TEMP-99;^TEMP;true]

TEMP-99

Gebruik: Verwijder tijdelijke positiecodes uit de export.


[UNION;headers;list1;list2;...]

Voegt parallelle lijsten rij voor rij samen tot rijen met spaties of vertikale streepjes.

Uitdrukking

Conceptuele output

[UNION;Role|Dept;Admin|User;IT|HR]

Role Admin Dept IT|User HR (patroon: kolommen samenvoegen per index)

Toepassing: Tekstblokken met meerdere kolommen in rapporten.


Willekeurig, hash, uniekheid

[RND;min;max]

Parameter

Doel

min

Kleinste geheel getal (inclusief)

max

Maximaal geheel getal (in de praktijk exclusief — controleer je bereik)

Uitdrukking

Voorbeeld van de uitvoer

[RND;1000;9999]

4521 (verschilt per uitvoering)

Gebruik: Ticketnummers in testsjablonen.


[STRRND;minLen;maxLen;chars]

Parameter

Doel

minLen / maxLen

Lengtebereik

chars

Toegestane tekenset (leeg = standaard alfanumeriek)

Uitdrukking

Voorbeeld van de uitvoer

[STRRND;8;8;abcdefghjkmnpqrstuvwxyz]

kthqwrnb (varieert)

Gebruik: Eenmalige codes wanneer er geen wachtwoordregel wordt toegepast.


[PASSWORD;ruleId]

Parameter

Doel

ruleId

ID van de regel voor het genereren van wachtwoorden, geconfigureerd in eADM

Uitdrukking

Uitgang

[PASSWORD;3]

bijv. Xk9#mP2$vL (volgens regel 3 inzake complexiteit; varieert)

Gebruik: Het initiële wachtwoord in het welkomstbericht — ga hier zorgvuldig mee om.


[HASH;text]

Uitdrukking

Uitvoer (voorbeeld)

[HASH;kari.nordmann@eksempel.kommune.no]

MD5-hexadecimale tekenreeks van 32 tekens (vast voor dezelfde invoer)

Gebruik: Ondoorzichtige tokens in links (niet uitsluitend voor beveiligingskritische hashing).


[UNIQUE;base;fieldName;replacement]

Zorgt ervoor dat base nog niet bestaat in fieldName op een ander object; voegt toe 2, 3, … of invoegingen vóór replacement.

Parameter

Doel

base

Voorgestelde gebruikersnaam of e-mailadres

fieldName

Veld waarmee de uniekheid moet worden gecontroleerd (bijv. UserName)

replacement

Optionele achtervoegselmarkering die door een getal moet worden vervangen

Scenario

Uitdrukking

Uitgang

kari.nordmann gratis

[UNIQUE;kari.nordmann;UserName;.]

kari.nordmann

kari.nordmann genomen

hetzelfde

kari.nordmann2 of kari2.nordmann afhankelijk van de vervanging

Gebruik: Klantconfiguratie gebruikersnaam-uitdrukking samen met [CLEAN] / [LOWER].


Zoeken in databases en relaties

Deze lezen live eADM-gegevens voor de klant. De ID’s moeten in uw omgeving bestaan.

[REFERENCE;returnField;whereField;objectTypeId;searchValue;exactMatch]

Parameter

Doel

returnField

Veld(en) die moeten worden geretourneerd uit het overeenkomende object (§ (meerdere velden samenvoegt)

whereField

Veld waarop moet worden gezocht

objectTypeId

1 gebruiker, 2 afdeling, 3 groep

searchValue

Te bepalen waarde

exactMatch

true precies; false patroon

Uitdrukking

Oefenduel

Uitgang

[REFERENCE;OrgUnitnr;Id;2;2100]

Afdelingscode 2100 = IT

IT-100

[REFERENCE;DisplayName;UserId;1;ola.hansen]

Gebruikersbeheerder

Ola Hansen

Gebruik: Afdelingsnummer uit de toestemming ManagerOf id:

[REFERENCE;OrgUnitnr;Id;2;2100]

[OBJECTPERMISSION;returnField;whereField;filterValue;exactMatch;aggregate]

Leest de toegangsrechten van de huidige gebruiker.

Parameter

Doel

returnField

Toestemmingsveld (Comment, ManagerOf, ExpiryDate, SystemRoleId, …)

whereField

Veld waarop gefilterd moet worden

filterValue

De waarde van de wedstrijd, of * voor iedereen

exactMatch

Modus voor het vergelijken van tekenreeksen

aggregate

true = alle overeenkomsten die zijn samengevoegd met |; false = eerst alleen

Uitdrukking

Uitvoer (Kari)

[OBJECTPERMISSION;Comment;SystemRoleId;501;true;false]

Automatisk tildelt

[OBJECTPERMISSION;ManagerOf;SystemRoleId;501;true;false]

2100

Afkorting voor de rolnaam:

Uitdrukking

Uitgang

[OBJECTPERMISSION.SYSTEMROLE;Name;SystemRoleId;501]

Bruker Fagsystem X


[OBJECTHISTORIES;returnField;whereField;filterValue;exactMatch;aggregate]

Leest de objectgeschiedenis van de huidige gebruiker (audittrail van synchronisatie/gebruikersinterface).

Voorbeeldfilter

Uitdrukking

Typische uitvoer

Laatste toestemming toegevoegd

[OBJECTHISTORIES;Comment;EntryType;AddPermission;false;false]

Tildelt av admin

Gebruik: “Wie heeft deze toestemming verleend?” in berichtenstromen (vaak genest in [SPLIT] / [REFERENCE]).


[FOREACH;collection;query;returnFields;headers;format]

Parameter

Doel

collection

object, objectpermission, objecthistory, …

query

Filter (bedrijfsbereik wordt automatisch toegevoegd)

returnFields

Door komma’s gescheiden velden, optioneel object.Field

headers

Kolomtitels voor csv/html

format

csv, html, json, xml, eadm

Voorbeeld (conceptueel): Alle gebruikers met rol 501, CSV:

[FOREACH;objectpermission;SystemRoleId=501;object.DisplayName,object.Email;Name,Email;csv]

Uitvoer (dummy):

Name,Email
Kari Nordmann,kari.nordmann@eksempel.kommune.no
Ola Hansen,ola.hansen@eksempel.kommune.no

Gebruik: Managerrapport opgenomen in de tekst van de e-mail.


[DESCENDANTS;rootId;returnField;parentKey;foreignKey]

Parameter

Doel

rootId

Object-ID van de afdeling waarmee moet worden begonnen

returnField

Veld dat bij elk knooppunt moet worden verzameld

parentKey

Een onderliggend veld dat naar een bovenliggend veld verwijst (bijv. DepartmentNumber)

foreignKey

Veld voor de identificatiecode van de bovenliggende entiteit (bijv. ParentDepartmentNumber)

Start

Boom

Uitdrukking

Uitgang

IT-ID 2100

IT → HR

[DESCENDANTS;2100;SourceId;DepartmentNumber;ParentDepartmentNumber]

IT-100,HR-200

Gebruik: Alle subafdelingen vallen onder de bevoegdheid van een manager.


[SYSTEM;type;id;field]

Parameter

Doel

type

system, systemroleof systemroles

id

Numeriek ID of *

field

Veldnaam(en) die moeten worden geretourneerd

Uitdrukking

Uitvoer (dummy)

[SYSTEM;systemrole;501;Name]

Bruker Fagsystem X

[SYSTEM;system;12;Name]

Fagsystem X

Gebruik: Contactgegevens van de systeemeigenaar in de beheerdersmelding.


[SELECTION;rulesetId;returnField]

Parameter

Doel

rulesetId

Regelset die per object moet worden beoordeeld

returnField

Veld van elk object dat overeenkomt

Uitdrukking

Uitvoer (dummy)

[SELECTION;1001;Email]

kari.nordmann@eksempel.kommune.no|ola.hansen@eksempel.kommune.no|

Gebruik: Mailinglijst van iedereen die voldoet aan de regelset „Nieuwe medewerkers“.


[AVAILABLESYSTEM;field] / [AVAILABLEROLE;systemId;field]

Geeft waarden terug, gescheiden door verticale streepjes, voor systemen of rollen die voldoen aan de regel „Beschikbaar voor ” voor de huidige gebruiker.

Uitdrukking

Betekenis

[AVAILABLESYSTEM;Name]

Namen van systemen waarvoor Kari mogelijk toegangsrechten krijgt

[AVAILABLEROLE;12;Name]

Functienamen op systeem 12 waaraan zij mogelijk wordt toegewezen

Toepassing: dynamische keuzelijsten in formulieren of berichten.


[AVAILABLEDEPARTMENTS;fields;targetUserId]

Parameter

Doel

fields

Door komma’s gescheiden afdelingsvelden

targetUserId

Te evalueren gebruiker; leeg = huidig object

Gebruik: Geef een overzicht van de afdelingen die een manager kan beheren (op basis van ManagerOf, afdelings-ID’s en rollen in mega.eadm.no ).


[DATAOWNER;returnField]

Volgt de relatie tussen gegevens en eigenaar op het object; retourneert het veld van de eigenaar.

Uitdrukking

Uitvoer (indien de naam van de eigenaarsgroep is opgeslagen)

[DATAOWNER;Name]

IT dataeiere


[ANTECEDANTS.SYSTEMROLE;roleId;departmentId;returnField]

Managers die in het bezit zijn van roleId op voorouder afdelingen van departmentId.

Uitdrukking

Uitvoer (dummy)

[ANTECEDANTS.SYSTEMROLE;501;2101;Email]

it-leder@eksempel.kommune.no,

Gebruik: Escalatiemail wanneer de onderafdeling van HR geen lokale goedkeurder heeft.


[COUNTEMPLOYEE] / [COUNTMEMBERS]

Beoordeeld op basis van respectievelijk de afdeling of de groep.

Object

Uitdrukking

Uitvoer (dummy)

Afdeling IT

[COUNTEMPLOYEE]

47

Groep „Prosjekt Alfa“

[COUNTMEMBERS]

12


[GETLASTSYNCID]

Uitdrukking

Uitvoer (dummy)

[GETLASTSYNCID]

88421 (ID van het meest recent geïmporteerde bestand voor het bedrijf)

Toepassing: Problemen met voetteksten in beheerdersmails oplossen.


[LASTVALUE;attributeName]

Vorige waarde van het veld uit de laatste import van de HR- geschiedenis, anders de huidige waarde van het veld.

Context

Uitdrukking

Uitgang

Vóór de synchronisatie had Kari één functie

[LASTVALUE;APositionCodeId]

POS-01|

Na het toevoegen van POS-02

[APositionCodeId]

POS-01|POS-02|

Serveer bij [ARRAYDIFF;[APositionCodeId];[LASTVALUE;APositionCodeId]]POS-02|.


Functies (HR met meerdere functies)

Velden in de positie delen de index over pipes: index 0 = eerste plaats, 1 = seconde.

[POSITION;returnField;whereField;matchValue]

Parameter

Doel

returnField

Veld dat moet worden geretourneerd (bijv. APositionCodeName)

whereField

Veld om te vergelijken (bijv. AUnitId)

matchValue

Eenheid of code om te zoeken

Uitdrukking

Uitgang

[POSITION;APositionCodeName;AUnitId;IT-100]

Utvikler

[POSITION;APositionCodeName;AUnitId;HR-200]

HR-rådgiver


[POSITIONS;returnField;whereField;matchValue]

Hetzelfde als [POSITION] maar geeft een uitgelijnde reeks van verticale streepjes weer voor alle posities (een leeg vakje als er geen overeenkomst is).

Uitdrukking

Uitgang

[POSITIONS;APositionCodeName;AUnitId;IT-100]

Utvikler| (tweede positie leeg bij hetzelfde indexpatroon)


[GROUPPRIMARYPOSITION;returnField]

Keuzes primair positie: hoogste APositionPercentage, beslissingswedstrijd op basis van de vroegste APositionStartDate.

Kari-functies

Uitdrukking

Uitgang

100% IT, 20% HR

[GROUPPRIMARYPOSITION;APositionCodeName]

Utvikler


[ACTIVEPOSITIONCOUNT;asOfDate]

Uitdrukking

Uitgang

[ACTIVEPOSITIONCOUNT;17.06.2026 00:00:00]

2 (beide functies waren op die datum vacant)


Berichtenverkeer en integratie

[COUNTMESSAGESENT;messageId;fromDate]

Parameter

Doel

messageId

ID van het berichtsjabloon (optioneel als de workflow context biedt)

fromDate

Tel alleen verzendingen na deze datum mee (optioneel)

Uitdrukking

Uitvoer (dummy)

[COUNTMESSAGESENT;1936;01.06.2026 00:00:00]

1

Gebruik: de controle „Reeds op de hoogte gebracht?“ in de vervolgstroom.


[SYSTEMOWNER]

Hiervoor is de geschiedenisregel van de wijziging in de machtiging nodig (machtiging toevoegen/bewerken/verwijderen).

Context

Uitvoer (dummy)

Toestemming voor rol 501 toegevoegd

fagsystem-eier@eksempel.kommune.no

Gebruik: eigenaar van het CC-systeem wanneer geautomatiseerde toestemming wordt verleend.


[SYNCSTEPPARAMETER;key;companySyncStepId]

Parameter

Doel

key

Naam van de parameter bij de synchronisatiestap

companySyncStepId

ID van de stap voor klantsynchronisatie

Uitdrukking

Uitgang

[SYNCSTEPPARAMETER;ApiBaseUrl;42]

https://api.example.invalid/hr

Toegang: Bedrijfsbeheerder in het voorbeeldvenster van de Expression Builder.


[APITOKEN;apiUsername]

Parameter

Doel

apiUsername

API-gebruikersnaam (objecttype 14)

Uitdrukking

Uitgang

[APITOKEN;sync.service]

Ondoorzichtige tekenreeks van het sessietoken (kan variëren)

Toegang: Bedrijfsbeheerder in de previewversie. Alleen gebruiken in beveiligde server-side processen.


HTML-hulpfuncties (bericht-sjablonen)

[HTMLLISTMEMBEROF;displayField]

Bij een gebruiker die lid is van een groep: geeft een overzicht van de bovenliggende groepen.

Uitdrukking

Uitgang

[HTMLLISTMEMBEROF;Name]

<ul><li>Prosjekt Alfa</li><li>IT-utviklere</li></ul>


[HTMLLISTARRAY;list]

Uitdrukking

Uitgang

[HTMLLISTARRAY;Utvikler|HR-rådgiver]

<ul><li>Utvikler</li><li>HR-rådgiver</li></ul>


Besturingselementen voor formuliersjablonen

Wordt gebruikt in formuliersjablonen, niet in standaardregelsets.

Functie

Doel

[INPUTBOX;fieldId;label;default;value]

Tekstinvoer gekoppeld aan het ID van het formulierveld

[CHECKBOX;...]

Booleaanse invoer

[LISTBOX;...]

Uitklapmenu (vijf parameters)

[RADIO;...]

Radiogroep

[DATEBOX;...]

Datumkiezer

[AREABOX;...]

Tekst met meerdere regels

[BUTTON;...]

Actieknop

Voorbeeldpatroon: [INPUTBOX;1042;Avdeling;IT-100;] geeft de invoer met het label „Avdeling“ standaard weer als IT-100.

Markeringen [NOTIFY...], [HIDDEN...], [SERVERFUNCTION...] zijn hooks voor formuliergedrag, geen gegevensfuncties.


End-to-end-scenario's (fictieve gegevens)

Welkomstmail — alleen startdatum

Ny ansatt [DisplayName] starter [SUBSTRING;0;10;[Start]].

Uitvoer: Ny ansatt Kari Nordmann starter 01.04.2026.


Regel betreffende het verstrijken van de toestemming

Gyldig til: [IFEMPTYUSE;[OBJECTPERMISSION;ExpiryDate;SystemRoleId;501];Permanent tilgang]

Uitvoer: Gyldig til: Permanent tilgang


Manager afwezig — doorgeven aan de manager van de bovenliggende afdeling

[IFEMPTYUSE;
 [EXISTS;[Manager];];
 [REFERENCE;Email;UserId;1;[REFERENCE;Manager;Id;2;[REFERENCE;ParentDepartmentNumber;DepartmentNumber;2;[DepartmentNumber]]]]]

Kari, manager

Uitgang

leeg

ola.hansen@eksempel.kommune.no (e-mailadres van de afdelingsmanager)

set

leeg (EXISTS-tak — pas de logica van het sjabloon aan als je het e-mailadres van de manager nodig hebt wanneer dat aanwezig is)

Pas de combinatie van IFEMPTYUSE en EXISTS aan zodat deze overeenkomt met de bedoeling van je sjabloon; test dit in de Expressie-bouwer.


Alleen nieuwe functie — ontvanger van het bericht

Na het synchroniseren worden de volgende items toegevoegd POS-02:

[REFERENCE;Email;UserId;1;[POSITION;APositionManager;AUnitId;[RTRIM;[ARRAYDIFF;[APositionCodeId];[LASTVALUE;APositionCodeId]];|]]]

Uitvoer: E-mailadres van de manager van de afdeling waar de nieuwe functie onder valt (plaatshouder: ny-leder@eksempel.kommune.no).


Naam van de automatische beveiligingsgroep (door de klant ingesteld)

SG-[Department]-[CLEAN;[OrgUnitnr]]

Uitvoer: SG-IT og digitalisering-IT-100 (de exacte CLEAN-uitvoer kan afwijken).


Exporttoewijzing — samAccountName

[UserName]

Uitvoer: kari.nordmann


Regelset — gebruiker heeft een rol in het systeem

Uitdrukking van het regelattribuut :

[OBJECTPERMISSION.SYSTEMROLE;Name;SystemRoleId;501]

Berekende waarde: Bruker Fagsystem X — vergelijkingsoperator Er lik / exploitanten van lidmaatschappen.


Uitdrukkingsbouwer

Artikel

Detail

Waar

De uitdrukkingsbouwer voor koptekstpictogrammen, de bewerkingsprogramma’s voor berichtensjablonen, enkele eHub-schermen

Lijst met functies

Alle objectvelden voor het geselecteerde type plus standaardfuncties

Voorbeeld

Kies een testgebruiker/afdeling/groep; hiervoor is de status ‘supermanager’ vereist

Regelsets

Automatisering → Regelsets — minimale supermanager


Problemen oplossen

Symptoom

Waarschijnlijke oorzaak

Actie

Letterlijk [FUNCTION...] in de uitvoer

Het binnenste veld is leeg of bevat een typefout

Nesting corrigeren; veldnamen in het object controleren

Fout bij het evalueren van een uitdrukking

Genest [ARRAYFOREACH...]

Opdeel in broer- en zus-aanroepen of gebruik [ARRAYJOIN]

Lege tekenreeks

Geen overeenkomende ID / toestemming

Controleer de systeemrol-ID en de systeem-ID bij systeemtoegang

Verkeerde positie in de e-mail

Er zijn in één keer meerdere functies gewijzigd

Vertrouw niet uitsluitend op ARRAYDIFF/LASTVALUE

Voorbeeld geblokkeerd

Rol of beschermd veld

De rol uitbreiden of de testuitdrukking vereenvoudigen

Werkt in de builder, maar niet in het bericht

De gebeurtenisstroom heeft de objectgeschiedenis uit de synchronisatie nodig

Voer de import uit; controleer het type invoer in de geschiedenis


Sneloverzicht

Categorie

Functies

Datum/tijd

NÅ, NOW, DATEFORMAT, DATEDIFF, DAYOFYEAR

String

SUBSTRING, SPLIT, REPLACE, REPLACELIST, RTRIM, LTRIM, RPAD, LPAD, RIGHT, INITIALS, PRETTIFY, LOWER, UPPER, CLEAN, STRICTCLEAN, CNCLEAN, GETKEYVALUE

Logica

IFTHENELSE, IFEMPTYUSE, EXISTS, TRANSFORM, CONTAINS

Arrays

COUNT, ARRAYAPPEND, ARRAYUNIQUE, ARRAYFILTER, ARRAYDIFF, ARRAYJOIN, ARRAYFOREACH, ARRAYPREFIX, ARRAYTRIM, PRUNEARRAY, UNION

Beveiliging

HASH, WACHTWOORD, UNIEK, RND, STRRND

Opzoeken

REFERENTIE, OBJECTRECHT, OBJECTGESCHIEDENIS, VOOR ELKE, AFSTAMMERS, SYSTEEM, SELECTIE, BESCHIKBAAR SYSTEEM, BESCHIKBARE ROL, BESCHIKBARE AFDELINGEN, GEGEVENSEIGENAAR, VOORGANGERS.SYSTEEMROL, AANTAL WERKNEMERS, AANTAL LEDEN, LAATSTE SYNCHRONISATIEDATUM OPVRAGEN, LAATSTE WAARDE

Functies

POSITIE, POSITIES, GROEPSPRIMAIREPOSITIE, AANTAL ACTIEVE POSITIES

Berichten

COUNTMESSAGESENT, SYSTEMOWNER, SYNCSTEPPARAMETER, APITOKEN

HTML

HTMLLISTMEMBEROF, HTMLLISTARRAY

Formulieren

INVOERVELD, SELECTIEVAKJE, KNOP, KEUZELIJST, KIEZER, DATUMVELD, VULVAK


Aantekeningen van de AI-assistent

  1. Liever [DisplayName]velden van het -type voordat ze in functies worden ingekapseld.

  2. Vraag waar de uitdrukking is opgeslagen: regelset, bericht, export of klantconfiguratie.

  3. Vervang de dummy-ID's (501, 2100) met de echte systeemrol en afdeling ids uit toegang tot het systeem.

  4. Als je bij het importeren een filter instelt, worden overeenkomsten uitgesloten; in de regelset voor de synchronisatiestap worden overeenkomsten meegenomen.

  5. Voor de gegevensstromen van gebeurtenissen is de objectgeschiedenis van een synchronisatieronde nodig.

  6. Maak geneste voorbeelden binnenstebuiten — behalve [ARRAYFOREACH...], dat zich bindt aan ??? per element voordat de sjabloonfuncties worden uitgevoerd.

  7. Niet nesten [ARRAYFOREACH...]; gebruik aanroepen van broers en zussen of [ARRAYJOIN].

  8. Termen: regelset (Regelsett), berichtenstroom (meldingsflyt), systeemtoegang (systemtilgang), toestemming (tilgang), objectgeschiedenis (objekthistorikk).

Laatst bijgewerkt: