eADM-regulærudtryksmotor

Oversigt

Regulærudtryksmotoren udfører parentesfunktioner og feltpladsholdere i eADM. Udtryk forekommer i:

Forbruger

Typisk anvendelse

Regelsæt (Regelsett)

Filtrer brugere, afdelinger og grupper; styr meddelelsesstrømme, synkroniseringstrin og tilladelser

Meddelelsesskabeloner

Dynamisk modtager, emne, brødtekst (HTML)

Eksporter skabeloner / synkroniser skabelonernes strømningslinjer

Mappning af målattributter

Kundeopsætning

Brugernavnsformulering, automatisk gruppenavngivning, positionsfilter

Formularskabeloner

Bindinger til formularfelter

Udtryksgenerator

Vis forhåndsvisning for en testbruger, en afdeling eller en gruppe

Sådan fungerer evalueringen

  1. Motoren gennemsøger udtrykket for [...] tokens.

  2. [ARRAYFOREACH...] kører først — før den inderste-først-gennemgang — så skabelonpladsholdere ??? og ???i bind pr. element adskilt med lodret streg.

  3. Ellers udvurderes det inderste parentespar først.

  4. Hver funktion returnerer et resultat i almindelig tekst, der erstatter parentesen.

  5. Når der ikke er flere funktioner tilbage, forbliver [FieldName] tokens erstattes fra det aktuelle objekt (og valgfrit historik-række i meddelelsesstrømme).

  6. Feltnavne, der ikke genkendes, forbliver som bogstavelige værdier [FieldName] i udskriften.

Lister adskilt med kommaer (|) anvendes til data med flere værdier — især inden for HR stillinger på en bruger.

Fiktive data, der anvendes i eksemplerne nedenfor

Medmindre andet er angivet, forudsætter eksemplerne, at kunden er Eksempel kommune med:

Objekt

Værdier

Bruger Kari Nordmann

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

Brugerpositioner (rørjusteret)

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

IT -afdelingen (type 2)

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

HR -afdelingen (under IT)

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

Systemrolle (rettighed)

Id=501, Navn=Bruker Fagsystem X, knyttet til system-id=12

Tilladelse vedrørende Kari

SystemRoleId=501, ManagerOf=2100, Kommentar=Automatisk tildelt, udløbsdato=tom

Objekttype-id’er (til opslag): Bruger=1, Afdeling=2, Gruppe=3, API-bruger=14.


Syntaksregler

  • Funktioner: [NAME;arg1;arg2;...] — argumenter adskilt med semikolon (;).

  • Felter: [FieldName] — værdien fra det aktuelle objekt (skelner ikke mellem store og små bogstaver).

  • Indlejrede udtryk: de indre parenteser udvurderes før de ydre.

  • Listeskilletegn: rørtegn | (lodret streg) mellem værdierne — f.eks. POS-01|POS-02. Skriv aldrig en bagstreg; | forekommer kun som Markdown-escaping i kildefiler, ikke i udtryk.

  • Datoer i felter gemmes ofte som dd.MM.yyyy HH:mm:ss; importfunktioner kan bruge yyyy-MM-dd og andre almindelige formater.

Forespørgsels-minisprog

Anvendes indendørs [FOREACH], [IFTHENELSE], og avanceret [OBJECT...] filtre.

Token

Betydning

=

Lige

>, <

Større end / mindre end

!

Ikke ens

*

Mønstermatch (like)

#

Værdi i listen

&

OG den næste betingelse

|

ELLER næste betingelse

Indsæt følgende foran dataene: object., system., systemrole., objectpermission., osv.


Rede

Først det indre felt, derefter den ydre funktion

Trin

Udtryksfragment

beslutter at

1

[start]

01.04.2026 00:00:00

2

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

01.04.2026

Blokeres, hvis det indre felt mangler: [SUBSTRING;0;10;[UnknownField]] forbliver uændret, når UnknownField findes ikke på objektet.

Typisk tilladelseskæde (læses indefra og ud):

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

  2. Afdeling → bruger-id for leder

  3. Bruger → visningsnavn for administrator

[ARRAYFOREACH...] er anderledes: den udvider en liste adskilt med lodrette streger før indre funktioner i skabelonudførelsen. Brug ??? for det aktuelle element og ???i på grund af dets 0-baserede indeks. Rede [ARRAYFOREACH...] inden i en anden [ARRAYFOREACH...] understøttes ikke — brug [ARRAYJOIN] / [ARRAYPREFIX] eller i stedet opkald fra søskende.


Adgangsniveauer

Rolle

Hvad det påvirker

Supermanager

Forhåndsvisning af udtryksgeneratoren

Virksomhedsadministrator

Fuldstændig funktionsliste i builder; [APITOKEN...], [SYNCSTEPPARAMETER...] i forhåndsvisning

Organisationsadministrator

Udtryk, der påvirker beskyttede felter i forhåndsvisningen

Superadministrator

[UPDATE...], [DECRYPT...], [ENCRYPT...] — udeladt fra denne vejledning

Automatisering (synkronisering, meddelelser, eksport) udfører udtryk med serverrettigheder. En funktion, der fungerer i produktionsmiljøet, kan stadig være blokeret i udtryksbyggeren for din rolle.


Pladsholdere i felter

Ikke funktioner — erstattet fra det aktuelle objekt (eller historiklinjen i begivenhedsstyrede meddelelsesstrømme).

Eksempel: Skabelon Hello [GivenName] [Surname] om Kari Nordmann → Hello Kari Nordmann

Pladsholder

Typisk kilde

[GivenName], [Surname], [DisplayName]

Personnavn

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

Konto / e-mail

[Department], [DepartmentNumber]

Grundskolen

[Start]

Startdato og -tidspunkt for ansættelsen

[Manager]

Anbefaling fra HR-afdelingen

[APositionCodeId], [AUnitId], [APositionCodeName]

Flere positioner (adskilt med lodrette streger)

Kun historik (besked vises efter synkronisering): [OldValue], [NewValue], [EntryType], [AttributeName], [Comment].


Funktionsoversigt med eksempler

Hver post indeholder en liste over parametre, et eksempel med fiktive data og det forventede resultat.


Dato og klokkeslæt

[NÅ] / [NOW]

Returnerer serverens dato og klokkeslæt.

Parameter

Formål

(ingen)

Nuværende øjeblik

+N / -N endelse

Tilføj eller træk N dage fra

Udtryk

Antaget serverdato

Output

[NÅ]

17.06.2026 kl. 14:30:00

17.06.2026 14:30:00

[NOW+7]

17.06.2026

24.06.2026 14:30:00 (samme tidspunkt, +7 dage)

Anvendelse: Visning af tilladelsesstatus og relative frister i skabeloner.


[DATEFORMAT;date;format]

Omformaterer en datostreng.

Parameter

Formål

date

Indtast en dato eller datoer adskilt med lodrette streger

format

Udgangsmønster (f.eks. yyyy-MM-dd, dd/MM/yyyy)

Udtryk

Indtastning (efter feltopløsning)

Output

[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]

to datoer

2026-04-01|2026-06-15

Anvendelse: Eksportformater, ISO-datoer i API-data.


[DATEDIFF;date1;date2;unit]

Den numeriske forskel mellem to datoer.

Parameter

Formål

date1

Senere dato eller primær dato

date2

Tidligere dato eller referencedato

unit

d dage (standard), y år, m måneder, h timer, mi minutter, s sekunder

Udtryk

Output

Betydning

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

77

77 dage fra start til i dag

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

0

Samme kalenderår i dette eksempel

Anvendelse: Kontrol af ansættelsesperioder i regelsæt, »dage indtil start« i meddelelser.


[DAYOFYEAR;date]

Parameter

Formål

date

Dato for evaluering

Udtryk

Output

[DAYOFYEAR;01.04.2026 00:00:00]

91

Anvendelse: Sæsonbestemte regler, regnskabsårsrelaterede finesser.


Strengmanipulation

[SUBSTRING;start;length;text]

Parameter

Formål

start

Startindeks med udgangspunkt i 0

length

Antal tegn, der skal medtages

text

Kildestreng (ofte et indlejret felt)

Udtryk

Beslutning text

Output

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

01.04.2026

[SUBSTRING;0;4;POS-01]

POS-0

Anvendelse: Kun dato fra dato og klokkeslæt i velkomstmails: [SUBSTRING;0;10;[Start]]01.04.2026.


[SPLIT;text;delimiter;index]

Parameter

Formål

text

Streng, der skal opdeles

delimiter

Separator (f.eks. |, ;, mellemrum)

index

0-baseret stykkeindeks, eller last / last-1

Udtryk

Output

[SPLIT;Kari|Nordmann;|;0]

Kari

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

POS-02

Anvendelse: Hilsen fra feltet med det sammensatte navn; vælg koden for den sidste position.


[REPLACE;text;find;replace]

Parameter

Formål

text

Oprindelig tekst

find

Delstreng(er), der skal erstattes; pipe = flere; ^x = kun ved start; x^ = kun i slutningen

replace

Erstatningstekst

Udtryk

Output

[REPLACE;kari.nordmann;.;-]

kari-nordmann

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

12345678

Anvendelse: Normalisering af telefonnumre, udskiftning af separatorer i brugernavne.


[REPLACELIST;text;fromChars;toChars]

Tegn-for-tegn-tabel (begge tegnlister skal have samme længde).

Parameter

Formål

text

Indtastning

fromChars

Tegn, der skal kortlægges fra

toChars

Tegn, der skal tilordnes

Udtryk

Output

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

abcaoe

Anvendelse: Rettelser af ældre tegnsæt ved import.


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

Parameter

Formål

text

Indtastning; hvis den indeholder |, hvert segment beskæres

chars

Tegn, der skal fjernes fra slutningen (RTRIM) eller starten (LTRIM)

Udtryk

Output

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

POS-01|POS-02 (det efterfølgende tomme segment er fjernet)

[LTRIM;; Kari; ]

Kari

Anvendelse: Rens rørlisterne efter [ARRAYDIFF].


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

Parameter

Formål

text

Værdi, der skal indtastes

padChar

Udfyld tegn

totalLength

Målbredde

Udtryk

Output

[RPAD;42;0;5]

42000

[LPAD;7;0;4]

0007

Anvendelse: Medarbejdernumre med fast bredde i fileksport.


[RIGHT;length;text]

Parameter

Formål

length

Hvor mange tegn fra højre

text

Kilde

Udtryk

Output

[RIGHT;4;12345678]

5678

Anvendelse: De sidste cifre i det nationale identifikationsnummer i testmiljøer.


[INITIALS;text;startWord;endWord]

Parameter

Formål

text

Fulde navn eller sætning

startWord

Startpunkt for ordindeks (0-baseret)

endWord

Ordliste til slutningen, eller last / last-1

Udtryk

Output

[INITIALS;Kari Marie Nordmann;0;last]

K M N (bogstaver og mellemrum som angivet)

[INITIALS;Kari Marie Nordmann;1;1]

M

Anvendelse: Kortkoder i gruppenavne eller e-mail-aliaser.


[PRETTIFY;text]

Store bogstaver efter mellemrum eller bindestreg.

Udtryk

Output

[PRETTIFY;kari nordmann]

Kari Nordmann

[PRETTIFY;it-og-digitalisering]

It-Og-Digitalisering

Anvendelse: Vis navne i meddelelser, når HR skriver med store bogstaver.


[LOWER;text] / [UPPER;text]

Udtryk

Output

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

kari.nordmann@eksempel.kommune.no

[UPPER;avdeling-it]

AVDELING-IT

Anvendelse: Normaliser først [CLEAN] i reglerne for brugernavne.


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

Fjern eller udskift tegn, der ikke er tilladt i brugernavne, strenge id’er eller AD-fællesnavne (CN).

Udtryk

Typisk output

Anvendelse

[CLEAN;Kari Åse Nordmann!]

kariasenordmann (tegn, der ikke er bogstaver, er fjernet; skrevet med små bogstaver)

Brugernavn / uid

[CNCLEAN;Kari (test) Nordmann]

CN-sikker formular til AD

Gruppe- eller bruger-CN

Det nøjagtige resultat afhænger af kundens tegnregler; test det i udtryksbyggeren.


[GETKEYVALUE;key;delimiter;metadata]

Læser key<delimiter>value par inden for en metadatestreng, der er adskilt med lodrette streger.

Parameter

Formål

key

Nøgle til at finde

delimiter

Skilletegn mellem nøgle og værdi (ofte = eller :)

metadata

Liste over nøgle-værdi-tokens adskilt med kommaer

Udtryk

metadata værdi

Output

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

IT

Anvendelse: Brugerdefinerede importmetadata for udvidelsesattributter.


Logik og kontrolflow

[IFTHENELSE;query;thenValue;elseValue]

Parameter

Formål

query

Betingelse for det aktuelle objekt (f.eks. ObjectTypeId=1)

thenValue

Returneres, hvis forespørgslen matcher

elseValue

Returneres, hvis ikke

Kontekst

Udtryk

Output

Bruger Kari (type 1)

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

Ansatt

IT-afdelingen (type 2)

det samme

Ikke ansatt

Anvendelse: En enkelt skabelon til blandede objekttyper.


[IFEMPTYUSE;primary;fallback;reversed]

Parameter

Formål

primary

Værdi, der skal testes

fallback

Anvendes, når »primary« er tom (standard)

reversed

Valgfrit true: Brug reserveindstillingen, når den primære er ikke tom

Udtryk

Karis tilladelses udløb

Output

[IFEMPTYUSE;;Permanent tilgang]

tom

Permanent tilgang

[IFEMPTYUSE;15.12.2026;Permanent tilgang]

15.12.2026

15.12.2026

[IFEMPTYUSE;[Manager];;true]

Leder=empty

`` (tom — omvendt: bruges kun som alternativ, hvis der findes en manager)

Anvendelse: Standardtekst, hvis udløbsdato, ansvarlig eller kommentar mangler.


[EXISTS;value;resultIfNonEmpty]

Parameter

Formål

value

Testet streng

resultIfNonEmpty

Returneres kun, hvis value er ikke tom

Udtryk

Feltet »Kari Manager«

Output

[EXISTS;ola.hansen;has-manager]

ola.hansen

has-manager

[EXISTS;;has-manager]

tom

`` (tom)

Anvendelse: Indlejrede opslag i Gate — udføres kun [REFERENCE...] når [Manager] er indstillet.


[TRANSFORM;input;mapping...]

Parameter

Formål

input

Værdi, der skal kortlægges

key|value par

Sammenlign inddata med uddata

*|default

Jokertegn, hvis ingen nøgle matcher

Udtryk

[Sex] = F

Output

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

Kvinne

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

Ukjent

Anvendelse: HR-koder → vis tekst i meddelelser.


[CONTAINS;valueList;targetList;ifYes;ifNo]

Parameter

Formål

valueList

Nåle adskilt med rør

targetList

Høstak med rør som afgrænsning

ifYes / ifNo

Strenge, der returneres ved match / ingen match

Udtryk

Output

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

ja (IT-100 fundet i målet)

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

nei

Anvendelse: Forgrening i stil med et regelsæt inden for en skabelon.


Operationer med arrays (adskilt med lodrette streger)

Lister ser sådan ud A|B|C. Mange felter i HR-stillingsbeskrivelser bruger denne form.

[COUNT;ignored;list]

Parameter

Formål

ignored

Pladsholder (ubrugt)

list

Værdier adskilt med kommaer

Udtryk

Output

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

2 (tomme afsluttende segmenter kan påvirke tællingen — afprøv det med dine egne data)

Anvendelse: »Hvor mange stillinger har denne bruger?«


[ARRAYAPPEND;list1;list2]

Udtryk

Output

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

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

Anvendelse: Sammenføj rollelister fra to tilladelsesforespørgsler.


[ARRAYUNIQUE;list]

Udtryk

Output

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

A|B|C|

Anvendelse: Fjern dubletter blandt afdelings-id’er inden eksport.


[ARRAYFILTER;list;allowed]

Bevarer kun de elementer, der forekommer i allowed.

Udtryk

Output

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

POS-01|POS-02|

Anvendelse: Tilføj positionstyper til en meddelelses hvidliste.


[ARRAYDIFF;current;previous]

Varer i current ikke i previous.

Kontekst

current

previous

Output

Ny stilling tilføjet

POS-01|POS-02|

POS-01|

POS-02|

Ingen ændringer

POS-01|

POS-01|

``

Anvendelse: Registrer ny stilling i meddelelsesflowet (sammen med [LASTVALUE;APositionCodeId]). Advarsel: upålideligt, hvis flere positioner ændres i én import.


[ARRAYJOIN;list1;list2]

Sammenkæder to lister efter indeks.

Udtryk

Output

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

Utvikler100%|HR-rådgiver20%

Anvendelse: Sammenlæg parallelle kolonner for at oprette eksportlinjer i CSV-format.


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

Gennemløber en adskilt med komma liste. For hvert element, der ikke er tomt, erstattes ??? sammen med elementet og ???i med sin 0-baserede indeksering i skabelonen evaluerer indlejrede [...] i skabelonen og sammenkæder derefter resultaterne.

Parameter

Formål

array

Liste adskilt med kommaer (ofte et felt som [APositionCodeName])

separator

Valgfri sammenkædningsstreng mellem iterationer (standard |)

template

Tekst eller indlejret udtryk; ??? = det aktuelle element, ???i = indeks

Udtryk

Kari APositionCodeName

Output

[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

Tomme rørsegmenter er sprunget over (samme konvention som [ARRAYUNIQUE] / [ARRAYPREFIX]).

Understøttes ikke: [ARRAYFOREACH...] indlejret i en anden [ARRAYFOREACH...] — udtrykket kan ikke evalueres. Brug to på hinanden følgende opkald eller [ARRAYJOIN] i stedet.

Anvendelse: Formater hver position som en separat linje i en besked; sæt et præfiks for hvert enheds-id ved eksport.


[ARRAYPREFIX;list;mode;text]

Parameter

Formål

list

Elementer adskilt med lodrette streger

mode

1 = indsæt følgende foran hvert punkt: text; andet = endelse

text

Præfiks- eller suffiksstreng

Udtryk

Output

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

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

Anvendelse: Eksterne id’er i navneområdet.


[ARRAYTRIM;list;delimiter;maxCount]

Udtryk

Output

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

A|B

Anvendelse: Kun de første N positioner i en oversigtsmail.


[PRUNEARRAY;list;regex;reverse]

Parameter

Formål

list

Elementer adskilt med lodrette streger

regex

.NET-regulære udtryk

reverse

true = beholde i stedet varer, der ikke passer sammen

Udtryk

Output

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

POS-01|POS-02

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

TEMP-99

Anvendelse: Fjern midlertidige positionskoder fra eksporten.


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

Sammenfletter parallelle lister række for række til rækker, der består af mellemrum og lodstreger.

Udtryk

Konceptuelt resultat

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

Role Admin Dept IT|User HR (mønster: sammenkædning af kolonner pr. indeks)

Anvendelse: Tekstblokke med flere kolonner i rapporter.


Tilfældighed, hash, entydighed

[RND;min;max]

Parameter

Formål

min

Mindste heltal (inklusive)

max

Største heltal (i praksis eksklusivt — tjek dit interval)

Udtryk

Eksempel på udskrift

[RND;1000;9999]

4521 (varierer fra gang til gang)

Anvendelse: Billetnumre i testskabeloner.


[STRRND;minLen;maxLen;chars]

Parameter

Formål

minLen / maxLen

Længdeinterval

chars

Tilladt tegnsæt (tom = standard: alfanumerisk)

Udtryk

Eksempel på udskrift

[STRRND;8;8;abcdefghjkmnpqrstuvwxyz]

kthqwrnb (varierer)

Anvendelse: Engangskoder, når der ikke anvendes en adgangskoderegel.


[PASSWORD;ruleId]

Parameter

Formål

ruleId

ID for den regel til generering af adgangskoder, der er konfigureret i eADM

Udtryk

Output

[PASSWORD;3]

f.eks. Xk9#mP2$vL (følger regel 3 om kompleksitet; varierer)

Anvendelse: Indledende adgangskode i velkomstbeskeden — skal håndteres sikkert.


[HASH;text]

Udtryk

Resultat (eksempel)

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

MD5-heksadecimalstreng på 32 tegn (giver altid det samme resultat for samme indtastning)

Anvendelse: Uigennemsigtige tokens i links (ikke udelukkende til sikkerhedskritisk hashing).


[UNIQUE;base;fieldName;replacement]

Sikrer base findes ikke allerede i fieldName på et andet objekt; tilføjer 2, 3, … eller indsætninger før replacement.

Parameter

Formål

base

Foreslået brugernavn eller e-mailadresse

fieldName

Felt, der skal kontrolleres for entydighed i forhold til (f.eks. UserName)

replacement

Valgfri suffiksmarkør, der skal erstattes med et tal

Scenarie

Udtryk

Output

kari.nordmann gratis

[UNIQUE;kari.nordmann;UserName;.]

kari.nordmann

kari.nordmann taget

det samme

kari.nordmann2 eller kari2.nordmann afhængigt af udskiftning

Anvendelse: Kundeopsætning udtryk for brugernavn sammen med [CLEAN] / [LOWER].


Databaseopslag og relationer

Disse læser live eADM-data for kunden. ID’erne skal findes i dit miljø.

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

Parameter

Formål

returnField

Felt(er), der skal returneres fra det matchede objekt (§ (forbinder flere felter)

whereField

Felt, der skal matches på

objectTypeId

1 bruger, 2 afdeling, 3 gruppe

searchValue

Værdi, der skal findes

exactMatch

true nøjagtig; false mønster

Udtryk

Venskabskamp

Output

[REFERENCE;OrgUnitnr;Id;2;2100]

Afdelings-id 2100 = IT

IT-100

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

Brugeradministrator

Ola Hansen

Anvendelse: Afdelingsnummer fra tilladelsen ManagerOf id:

[REFERENCE;OrgUnitnr;Id;2;2100]

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

Læser tilladelser for den aktuelle bruger.

Parameter

Formål

returnField

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

whereField

Felt, der skal bruges til filtrering

filterValue

Matchværdi, eller * for alle

exactMatch

Tegnstrengssammenligningsfunktion

aggregate

true = alle resultater, der er forbundet med |; false = kun først

Udtryk

Output (Kari)

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

Automatisk tildelt

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

2100

Forkortelse for rollenavn:

Udtryk

Output

[OBJECTPERMISSION.SYSTEMROLE;Name;SystemRoleId;501]

Bruker Fagsystem X


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

Henter objektets historik for den aktuelle bruger (logspor fra synkronisering/brugergrænseflade).

Eksempel på filter

Udtryk

Typisk output

Seneste tilføjelse af tilladelse

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

Tildelt av admin

Anvendelse: "Hvem har tildelt denne tilladelse?" i meddelelsesforløb (ofte indlejret i [SPLIT] / [REFERENCE]).


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

Parameter

Formål

collection

object, objectpermission, objecthistory, …

query

Filter (virksomhedsomfang tilføjes automatisk)

returnFields

Felter adskilt med kommaer, valgfrit object.Field

headers

Kolonneoverskrifter til CSV/HTML

format

csv, html, json, xml, eadm

Eksempel (konceptuelt): Alle brugere med rolle 501, CSV:

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

Output (dummy):

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

Anvendelse: Ledelsesrapport indlejret i e-mailens brødtekst.


[DESCENDANTS;rootId;returnField;parentKey;foreignKey]

Parameter

Formål

rootId

Afdelingsobjekt-id, der skal bruges som udgangspunkt

returnField

Felt, der skal indsamles fra hver node

parentKey

Underfelt, der peger på overordnet felt (f.eks. DepartmentNumber)

foreignKey

Felt til forældreidentifikator (f.eks. ParentDepartmentNumber)

Start

Træ

Udtryk

Output

IT-id 2100

IT → HR

[DESCENDANTS;2100;SourceId;DepartmentNumber;ParentDepartmentNumber]

IT-100,HR-200

Anvendelse: Alle underafdelinger, der er omfattet af en leders tilladelse.


[SYSTEM;type;id;field]

Parameter

Formål

type

system, systemrole, eller systemroles

id

Numerisk id eller *

field

Feltnavn(e), der skal returneres

Udtryk

Output (dummy)

[SYSTEM;systemrole;501;Name]

Bruker Fagsystem X

[SYSTEM;system;12;Name]

Fagsystem X

Anvendelse: Kontaktoplysninger på systemejeren i administratorbeskeden.


[SELECTION;rulesetId;returnField]

Parameter

Formål

rulesetId

Regelsæt, der skal vurderes for hvert enkelt objekt

returnField

Felt fra hvert objekt, der matcher

Udtryk

Output (dummy)

[SELECTION;1001;Email]

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

Anvendelse: Mailingliste over alle, der opfylder regelsættet »Nye medarbejdere«.


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

Returnerer værdier adskilt med lodrette streger for systemer eller roller, der opfylder regelsættet »Tilgængelig for« for den aktuelle bruger.

Udtryk

Betydning

[AVAILABLESYSTEM;Name]

Navne på systemer, som Kari kan få adgang til

[AVAILABLEROLE;12;Name]

Rollenavne på system 12, som hun kan blive tildelt

Anvendelse: Dynamiske udvælgelseslister i formularer eller meddelelser.


[AVAILABLEDEPARTMENTS;fields;targetUserId]

Parameter

Formål

fields

Afdelingsfelter adskilt med kommaer

targetUserId

Bruger skal vurdere; tom = det aktuelle objekt

Anvendelse: Viser de afdelinger, som en leder kan administrere (fra ManagerOf, enheds-id’er, mega.eadm.no-roller ).


[DATAOWNER;returnField]

Følger data-ejer-relationen på objektet; returnerer feltet fra ejeren.

Udtryk

Udskrift (hvis navnet på ejergruppen er gemt)

[DATAOWNER;Name]

IT dataeiere


[ANTECEDANTS.SYSTEMROLE;roleId;departmentId;returnField]

Ledere, der besidder roleIdforfader afdelinger under departmentId.

Udtryk

Output (dummy)

[ANTECEDANTS.SYSTEMROLE;501;2101;Email]

it-leder@eksempel.kommune.no,

Anvendelse: Eskaleringsmail, når en underafdeling under HR ikke har en lokal godkendende person.


[COUNTEMPLOYEE] / [COUNTMEMBERS]

Vurderes henholdsvis på afdelings- eller gruppeniveau.

Objekt

Udtryk

Output (dummy)

IT-afdelingen

[COUNTEMPLOYEE]

47

Gruppen »Prosjekt Alfa«

[COUNTMEMBERS]

12


[GETLASTSYNCID]

Udtryk

Output (dummy)

[GETLASTSYNCID]

88421 (det seneste importfil-id for virksomheden)

Anvendelse: Fejlfinding i sidefødder i administrator-e-mails.


[LASTVALUE;attributeName]

Den tidligere værdi for feltet fra den seneste import af HR- historik, ellers den aktuelle værdi for feltet.

Kontekst

Udtryk

Output

Før synkroniseringen havde Kari én stilling

[LASTVALUE;APositionCodeId]

POS-01|

Efter tilføjelse af POS-02

[APositionCodeId]

POS-01|POS-02|

Serveres sammen med [ARRAYDIFF;[APositionCodeId];[LASTVALUE;APositionCodeId]]POS-02|.


Stillinger (HR med flere stillinger)

Feltpositioner deler indeks på tværs af rør: indeks 0 = første plads, 1 = sekund.

[POSITION;returnField;whereField;matchValue]

Parameter

Formål

returnField

Felt, der skal returneres (f.eks. APositionCodeName)

whereField

Felt, der skal matches (f.eks. AUnitId)

matchValue

Enhed eller kode, der skal søges efter

Udtryk

Output

[POSITION;APositionCodeName;AUnitId;IT-100]

Utvikler

[POSITION;APositionCodeName;AUnitId;HR-200]

HR-rådgiver


[POSITIONS;returnField;whereField;matchValue]

Det samme som [POSITION] men returnerer en sammenhængende række af tegn på tværs af alle positioner (et tomt felt, hvor der ikke er noget match).

Udtryk

Output

[POSITIONS;APositionCodeName;AUnitId;IT-100]

Utvikler| (den anden plads er tom ved samme indeksmønster)


[GROUPPRIMARYPOSITION;returnField]

Valg primær placering: øverst APositionPercentage, tie-break efter tidligste APositionStartDate.

Kari-stillinger

Udtryk

Output

100 % IT, 20 % HR

[GROUPPRIMARYPOSITION;APositionCodeName]

Utvikler


[ACTIVEPOSITIONCOUNT;asOfDate]

Udtryk

Output

[ACTIVEPOSITIONCOUNT;17.06.2026 00:00:00]

2 (begge stillinger var besat på den dato)


Meddelelser og integration

[COUNTMESSAGESENT;messageId;fromDate]

Parameter

Formål

messageId

Meddelelsesskabelon-id. Valgfrit — hvis det udelades (svarer til 0, f.eks. [COUNTMESSAGESENT;]), se Manglende messageId nedenfor

fromDate

Medregn kun afsendelser efter denne dato (valgfrit)

Udtryk

Output (dummy)

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

1

Udeladt messageId: Hvis id'et for meddelelsesskabelonen ikke er angivet ([COUNTMESSAGESENT;] er lig med 0), udtrykket udregnes i sammenhæng med den meddelelsesskabelon, hvis afsendelse udløste regelsættet. Med andre ord betyder det »er den meddelelse, der netop nu sendes, allerede blevet sendt til denne modtager?«, og ikke noget bestemt skabelon-id. Derfor kan det samme regelsæt genbruges som beskyttelse mod dobbeltudsendelse for flere forskellige meddelelsesskabeloner, i stedet for at man skal oprette et separat regelsæt for hver enkelt skabelon.

Advarsel: Forhåndsvisning af regelsættet i udtryksgeneratoren fungerer ikke, når messageId udelades, fordi der uden for en egentlig afsendelse af en besked ikke er nogen udløsende beskedskabelon, der kan levere denne kontekst.

Anvendelse: »Er der allerede sendt en besked?«-kontrol i opfølgningsforløbet; fælles kontrol mod dobbeltudsendelse på tværs af flere meddelelsesskabeloner.


[SYSTEMOWNER]

Kræver en historikpost fra en ændring af tilladelsen (tilladelse til at tilføje/redigere/slette).

Kontekst

Output (dummy)

Tilladelse til rolle 501 tilføjet

fagsystem-eier@eksempel.kommune.no

Anvendelse: CC-systemejer, når der gives automatisk tilladelse.


[SYNCSTEPPARAMETER;key;companySyncStepId]

Parameter

Formål

key

Parameternavn i synkroniseringstrinnet

companySyncStepId

Instans-id for kundesynkroniseringstrin

Udtryk

Output

[SYNCSTEPPARAMETER;ApiBaseUrl;42]

https://api.example.invalid/hr

Adgang: Virksomhedsadministrator i forhåndsvisning af udtryksbyggeren.


[APITOKEN;apiUsername]

Parameter

Formål

apiUsername

API-brugerens login-navn (objekttype 14)

Udtryk

Output

[APITOKEN;sync.service]

Uigennemsigtig streng med sessionstoken (varierer)

Adgang: Virksomhedsadministrator i forhåndsvisning. Må kun bruges i sikrede serverbaserede arbejdsgange.


HTML-hjælpefunktioner (meddelelsesskabeloner)

[HTMLLISTMEMBEROF;displayField]

For en bruger, der er medlem af en gruppe: viser overordnede grupper.

Udtryk

Output

[HTMLLISTMEMBEROF;Name]

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


[HTMLLISTARRAY;list]

Udtryk

Output

[HTMLLISTARRAY;Utvikler|HR-rådgiver]

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


Kontrolelementer i formularskabeloner

Anvendes i formularskabeloner, ikke i standardregelsæt.

Funktion

Formål

[INPUTBOX;fieldId;label;default;value]

Tekstindtastning knyttet til formularfeltets id

[CHECKBOX;...]

Boolsk indgang

[LISTBOX;...]

Rullemenu (fem parametre)

[RADIO;...]

Radiogruppe

[DATEBOX;...]

Dato-vælger

[AREABOX;...]

Tekst på flere linjer

[BUTTON;...]

Handlingsknap

Eksempel på mønster: [INPUTBOX;1042;Avdeling;IT-100;] viser indtastningen med betegnelsen »Avdeling«, hvor standardværdien er IT-100.

Markører [NOTIFY...], [HIDDEN...], [SERVERFUNCTION...] er adfærdshooks, ikke datafunktioner.


End-to-end-scenarier (fiktive data)

Velkomstmail — kun startdato

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

Resultat: Ny ansatt Kari Nordmann starter 01.04.2026.


Linje om udløb af tilladelse

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

Resultat: Gyldig til: Permanent tilgang


Lederen er fraværende — eskaler sagen til lederen i den overordnede afdeling

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

Kari, leder

Output

tom

ola.hansen@eksempel.kommune.no (e-mail til afdelingslederen)

sæt

tom (EXISTS-gren — tilpas skabelonlogikken, hvis du har brug for lederens e-mailadresse, når den er angivet)

Juster kombinationen af IFEMPTYUSE og EXISTS, så den passer til formålet med din skabelon; test den i udtryksbyggeren.


Kun ny stilling — modtager af meddelelsen

Efter synkronisering tilføjes POS-02:

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

Resultat: E-mail-adresse til lederen for den nye stillings afdeling (fiktiv: ny-leder@eksempel.kommune.no).


Navn på autosikkerhedsgruppe (kundeopsætning)

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

Resultat: SG-IT og digitalisering-IT-100 (det nøjagtige CLEAN-output kan variere).


Eksportkortlægning — samAccountName

[UserName]

Resultat: kari.nordmann


Regelsæt — brugeren har en rolle i systemet

Regelattributudtryk :

[OBJECTPERMISSION.SYSTEMROLE;Name;SystemRoleId;501]

Beregnet værdi: Bruker Fagsystem X — sammenligningsoperatør Er lig / medlemsudbydere.


Udtryksgenerator

Vare

Detaljer

Hvor

Udtryksgenerator til overskriftsikoner, redigeringsværktøjer til meddelelsesskabeloner, visse eHub-skærmbilleder

Funktionsoversigt

Alle objektfelter for den valgte type samt standardfunktioner

Forhåndsvisning

Vælg testbruger/afdeling/gruppe; kræver superadministratorrettigheder

Regelsæt

Automatisering → Regelsæt — minimum supermanager

To indtastningsmåder for værdien af en regelbetingelse

Hver betingelseslinje under fanen »Regler« i et regelsæt har et felt kald et »Attribut« (eller »Argument«) med to små ikoner, der skifter mellem indtastningsmodus:

  • Dropdown-tilstand (ikonet med op-/ned-pile) — standardindstillingen. Viser en dropdown-liste med objektets attributværdier, som kan søges i, grupperet efter type (bruger-, gruppe-, afdelings- eller formularattributter, afhængigt af hvad regelsættet bruges sammen med).

  • Fri tekst-tilstand (tastaturikon) — ændrer feltet til et almindeligt tekstfelt. Brug dette til at indtaste fastkodet tekst eller et funktionsudtryk ved hjælp af den parentes-syntaks, der er beskrevet tidligere i denne artikel, f.eks. [COUNTMESSAGESENT;7166].

I friteksttilstand er der stadig autofuldførelse: Når man skriver en del af et funktions- eller feltnavn (f.eks. [count) overflader, der har fælles egenskaber og funktioner, såsom [COUNTEMPLOYEE], [COUNTMEMBERS], og [COUNTMESSAGESENT;message id].

Test af et udtryk med »Rediger udtryk«

Når et betingelsesfelt er i friteksttilstand, kan man ved at klikke på et ekstra ikon ved siden af det åbne dialogboksen »Rediger udtryk «. Brug den til at afprøve et funktionsudtryk på et konkret objekt, inden reglen gemmes.

I dialogboksen vises følgende:

  • Objekttype — regelsættets primære objekttype (f.eks. Bruger) og hvilke sekundære kontekster der er tilgængelige (Funktion, Funktionsalias, Begivenhed, Historik).

  • Kontekst — et testobjekt, der skal bruges til evalueringen. Brug »Søg« til at vælge et bestemt objekt, eller vælg »Vælg tilfældigt«, så eADM vælger et.

  • Udtryk — et redigerbart tekstfelt, der er forudfyldt med betingelsens aktuelle udtryk.

  • Resultat — det evaluerede resultat, der vises, når man klikker på »Udfør«.

Når du redigerer, vises der en hjælpetip, når du holder markøren over en funktion i udtrykket. Den indeholder funktionens fulde syntaks, en kort beskrivelse og betydningen af hver parameter. Hjælpetipet fremhæver hele udtrykket i grønt og viser den del, der svarer til den aktuelle markørposition, med fed skrift, hvilket gør det betydeligt nemmere at finde rundt i lange eller dybt indlejrede udtryk.

Bemærk: Ligesom det generelt er tilfældet med udtryksgeneratoren, kræver det administratorrettigheder at teste et udtryk i »Rediger udtryk« (se »Adgangsniveauer« ovenfor).


Fejlfinding

Symptom

Sandsynlig årsag

Handling

Bogstaveligt [FUNCTION...] i output

Indre felt er tomt eller indeholder en stavefejl

Rettelse af indlejring; kontrol af feltnavne på objektet

Fejl ved udtryksberegning

Indlejret [ARRAYFOREACH...]

Opdel i søskendeopkald eller brug [ARRAYJOIN]

Tom streng

Intet matchende id / tilladelse

Bekræft systemrolle-id og system-id i systemadgangen

Forkert placering i e-mailen

Flere stillinger blev ændret på én gang

Stol ikke udelukkende på ARRAYDIFF/LASTVALUE

Forhåndsvisning blokeret

Rolle eller beskyttet felt

Udvid rollen eller forenkle testudtrykket

Fungerer i Builder, men ikke i Message

Begivenhedsforløbet kræver objekthistorik fra synkroniseringen

Udfør import; kontroller posttypen i historikken

Preview kører ikke / går ned uden at vise nogen fejlmeddelelse

[COUNTMESSAGESENT;] bruges sammen med messageId udeladt

Forventet — konteksten for den udløsende meddelelsesskabelon findes kun under en faktisk afsendelse. Test den omgivende logik uden denne betingelse, eller angiv midlertidigt en reel messageId kun til forhåndsvisning


Hurtigoversigt

Kategori

Funktioner

Dato/klokkeslæt

NÅ, NOW, DATEFORMAT, DATEDIFF, DAYOFYEAR

Streng

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

Logik

IFTHENELSE, IFEMPTYUSE, EXISTS, TRANSFORM, CONTAINS

Arrays

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

Sikkerhed

HASH, PASSWORD, UNIQUE, RND, STRRND

Opslag

REFERENCE, OBJECTPERMISSION, OBJECTHISTORIES, FOREACH, DESCENDANTS, SYSTEM, SELECTION, AVAILABLESYSTEM, AVAILABLEROLE, AVAILABLEDEPARTMENTS, DATAOWNER, ANTECEDANTS.SYSTEMROLE, COUNTEMPLOYEE, COUNTMEMBERS, GETLASTSYNCID, LASTVALUE

Stillinger

POSITION, POSITIONER, GRUPPENS PRIMÆRE POSITION, ANTAL AKTIVE POSITIONER

Beskeder

COUNTMESSAGESENT, SYSTEMOWNER, SYNCSTEPPARAMETER, APITOKEN

HTML

HTMLLISTMEMBEROF, HTMLLISTARRAY

Formularer

INPUTBOX, CHECKBOX, BUTTON, LISTBOX, RADIO, DATEBOX, AREABOX


Noter om AI-assistenten

  1. Foretrækker [DisplayName]-felter, inden de indsættes i funktioner.

  2. Spørg, hvor udtrykket findes: regelsæt, besked, eksport eller kundeopsætning.

  3. Erstat fiktive id’er (501, 2100) med kundens rigtige systemrolle og afdeling id'er fra systemadgang.

  4. Filtrering ved import udelukker resultater, der matcher; regelsættet for synkroniseringstrinnet inkluderer resultater, der matcher.

  5. Begivenhedsmeddelelsesforløb kræver objekthistorik fra en synkroniseringskørsel.

  6. Opret indlejrede eksempler indefra og ud — bortset fra [ARRAYFOREACH...], som binder ??? pr. element, inden skabelonfunktionerne udføres.

  7. Undgå indlejring [ARRAYFOREACH...]; brug søskendeopkald eller [ARRAYJOIN].

  8. [COUNTMESSAGESENT;] med den messageId »omitted« vurderes i forhold til den meddelelsesskabelon, der netop sendes, så ét regelsæt kan styre flere meddelelsesskabeloner — men forhåndsvisningen fungerer ikke uden for en egentlig afsendelse.

  9. Der er to måder at indstille værdien for en regelbetingelse på: rullemenu (attributvælger) eller fritekst (tastaturikon, fastkodet tekst eller udtryk), hvor funkt ionen »Rediger udtryk« er tilgængelig i friteksttilstand, så man kan teste udtrykket mod et eksempelobjekt.

  10. Begreber: regelsæt (Regelsett), meddelelsesflow (meldingsflyt), systemadgang (systemtilgang), tilladelse (tilgang), objekthistorik (objekthistorikk).

Senest opdateret: