eADM-motor for regeluttrykk

eADM-motor for regeluttrykk

Oversikt

Regeluttrykkmotoren utfører parentesfunksjoner og feltplassholdere i eADM. Uttrykk forekommer i:

Forbruker

Typisk bruk

Regelsett (Regelsett)

Filtrer brukere, avdelinger og grupper; reguler meldingsflyt, synkroniseringstrinn og tillatelser

Meldingsmaler

Dynamisk mottaker, emne, brødtekst (HTML)

Eksporter maler / synkroniser malenes flytlinjer

Tilordning av målattributter

Kundeoppsett

Uttrykk for brukernavn, automatisk navngiving av grupper, posisjonsfilter

Skjemaer

Bindinger til skjemafelt

Uttrykksgenerator

Forhåndsvisning for en testbruker, en avdeling eller en gruppe

Slik fungerer evalueringen

  1. Motoren søker etter uttrykket [...] tokens.

  2. [ARRAYFOREACH...] kjører først — før «innermost-first»-gjennomgangen — så malplassholdere ??? og ???i bind per element adskilt med vertikalt strek.

  3. Ellers tolkes det innerste parentesparet først.

  4. Hver funksjon returnerer et resultat i ren tekst som erstatter parentesen.

  5. Når det ikke er flere funksjoner igjen, gjenstår [FieldName] tokens erstattes fra nåværende objekt (og valgfritt historikk-rad i meldingsflyt).

  6. Feltnavn som ikke gjenkjennes, beholdes som bokstavelige uttrykk [FieldName] i utdataene.

Lister adskilt med pipe-tegn (|) brukes til data med flere verdier — spesielt innen HR stillinger på en bruker.

Eksempeldata brukt i eksemplene nedenfor

Med mindre annet er angitt, forutsetter eksemplene at kunden er Eksempel kommune med:

Objekt

Kjerneverdier

Bruker Kari Nordmann

Fornavn=Kari, Etternavn=Nordmann, DisplayName=Kari Nordmann, Brukernavn=kari.nordmann, E-post=kari.nordmann@eksempel.kommune.no, Start=01.04.2026 00:00:00, Avdeling=IT og digitalisering, avdelingsnummer=100

Brukerposisjoner (rørjustert)

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

IT -avdelingen (type 2)

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

Avdeling HR (underavdeling av IT)

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

Systemrolle (rettighet)

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

Tillatelse for Kari

SystemRoleId=501, ManagerOf=2100, Kommentar=Automatisk tildelt, utløpsdato=tom

Objekttype-ID-er (for oppslag): Bruker=1, Avdeling=2, Gruppe=3, API-bruker=14.


Syntakskonvensjoner

  • Funksjoner: [NAME;arg1;arg2;...] — argumenter atskilt med semikolon (;).

  • Felt: [FieldName] — verdien fra det aktuelle objektet (skiller ikke mellom store og små bokstaver).

  • Innebygde uttrykk: de indre parentesene tolkes før de ytre.

  • Listeskilletegn: rørtegn | (vertikal strek) mellom verdiene — f.eks. POS-01|POS-02. Skriv aldri en tilbakeslag; | forekommer kun som Markdown-escaping i kildefilene, ikke i uttrykk.

  • Datoer i felter lagres ofte som dd.MM.yyyy HH:mm:ss; import kan bruke yyyy-MM-dd og andre vanlige formater.

Spørsmålsspråk

Brukes innendørs [FOREACH], [IFTHENELSE], og avansert [OBJECT...] filtre.

Token

Betydning

=

Lik

>, <

Større enn / mindre enn

!

Ikke lik

*

Mønsteravstemming (like)

#

Verdi i listen

&

OG neste betingelse

|

ELLER neste betingelse

Sett følgende foran dataene: object., system., systemrole., objectpermission., osv.


Reirbygging

Først det indre feltet, deretter den ytre funksjonen

Trinn

Uttrykksfragment

vedtar å

1

[start]

01.04.2026 00:00:00

2

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

01.04.2026

Blokkeres hvis det indre feltet mangler: [SUBSTRING;0;10;[UnknownField]] forblir uendret når UnknownField finnes ikke på objektet.

Typisk tillatelseskjede (leses fra innsiden og ut):

[REFERENCE;DisplayName;UserId;1;[REFERENCE;Manager;Id;2;[OBJECTPERMISSION;ManagerOf;SystemRoleId;501]]]
  1. Tillatelse → avdelings-ID 2100

  2. Avdeling → bruker-ID for leder

  3. Bruker → visningsnavn for leder

[ARRAYFOREACH...] er annerledes: den utvider en liste med skilletegn som er rørtegn før indre funksjoner i malen. Bruk ??? for det aktuelle elementet og ???i på grunn av den 0-baserte indekseringen. Reirbygging [ARRAYFOREACH...] inne i en annen [ARRAYFOREACH...] støttes ikke — bruk [ARRAYJOIN] / [ARRAYPREFIX] eller i stedet ringe søsknene sine.


Tilgangsnivåer

Rolle

Hva det påvirker

Supermanager

Forhåndsvisning av uttrykksbyggeren

Selskapsadministrator

Fullstendig funksjonsliste i byggverktøyet; [APITOKEN...], [SYNCSTEPPARAMETER...] i forhåndsvisning

Organisasjonsadministrator

Uttrykk som berører beskyttede felt i forhåndsvisningen

Superadministrator

[UPDATE...], [DECRYPT...], [ENCRYPT...] — utelatt fra denne veiledningen

Automatisering (synkronisering, meldinger, eksport) utfører uttrykk med serverrettigheter. En funksjon som fungerer i produksjonsmiljøet, kan likevel være blokkert i uttrykksbyggeren for din rolle.


Plassholdere for felt

Ikke funksjoner — erstattet fra det gjeldende objektet (eller historikkraden i hendelsesdrevne meldingsstrømmer).

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

Plassholder

Typisk kilde

[GivenName], [Surname], [DisplayName]

Personnavn

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

Konto / e-post

[Department], [DepartmentNumber]

Grunnskoleavdelingen

[Start]

Startdato og -klokkeslett for ansettelsen

[Manager]

Referanse fra personalavdelingen

[APositionCodeId], [AUnitId], [APositionCodeName]

Flere posisjoner (adskilt med rør)

Kun historikk (meldinger vises etter synkronisering): [OldValue], [NewValue], [EntryType], [AttributeName], [Comment].


Funksjonsoversikt med eksempler

Hver oppføring inneholder parametere, et eksempel med testdata og forventet resultat.


Dato og klokkeslett

[NÅ] / [NOW]

Returnerer dato og klokkeslett på serveren.

Parameter

Formål

(ingen)

Nåværende øyeblikk

+N / -N suffiks

Legg til eller trekk fra N dager

Uttrykk

Antatt serverdato

Produksjon

[NÅ]

17.06.2026 14:30:00

17.06.2026 14:30:00

[NOW+7]

17.06.2026

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

Bruk: Visning av tillatelsesstart og relative frister i maler.


[DATEFORMAT;date;format]

Omformaterer en datostreng.

Parameter

Formål

date

Inntast dato, eller datoer atskilt med vertikalstreker

format

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

Uttrykk

Inndata (etter feltoppløsning)

Produksjon

[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

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


[DATEDIFF;date1;date2;unit]

Numerisk forskjell mellom to datoer.

Parameter

Formål

date1

Senere dato eller primær dato

date2

Tidligere eller referansedato

unit

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

Uttrykk

Produksjon

Betydning

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

77

77 dager 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 eksemplet

Bruk: Kontroll av ansettelsestid i regelsett, «dager til oppstart» i meldinger.


[DAYOFYEAR;date]

Parameter

Formål

date

Dato for vurdering

Uttrykk

Produksjon

[DAYOFYEAR;01.04.2026 00:00:00]

91

Bruk: Sesongbaserte regler, triks for regnskapsperioden.


Strengmanipulering

[SUBSTRING;start;length;text]

Parameter

Formål

start

Startindeks med utgangspunkt i 0

length

Antall tegn som skal tas med

text

Kildestreng (ofte et nestet felt)

Uttrykk

Vedtatt text

Produksjon

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

01.04.2026

[SUBSTRING;0;4;POS-01]

POS-0

Bruk: Bare dato fra dato og klokkeslett i velkomstmeldinger: [SUBSTRING;0;10;[Start]]01.04.2026.


[SPLIT;text;delimiter;index]

Parameter

Formål

text

Streng som skal deles

delimiter

Skilletegn (f.eks. |, ;, mellomrom)

index

0-basert stykkeindeks, eller last / last-1

Uttrykk

Produksjon

[SPLIT;Kari|Nordmann;|;0]

Kari

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

POS-02

Bruk: Hilsen fra feltet for sammensatt navn; velg koden for siste posisjon.


[REPLACE;text;find;replace]

Parameter

Formål

text

Opprinnelig tekst

find

Delstreng(er) som skal erstattes; pipe = flere; ^x = kun ved oppstart; x^ = bare på slutten

replace

Erstatningstekst

Uttrykk

Produksjon

[REPLACE;kari.nordmann;.;-]

kari-nordmann

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

12345678

Bruk: Normaliser telefonnumre, bytt om skilletegn i brukernavn.


[REPLACELIST;text;fromChars;toChars]

Tegn-for-tegn-tilordning (begge tegnlistene må ha samme lengde).

Parameter

Formål

text

Inndata

fromChars

Tegn som skal tilordnes

toChars

Tegn som skal tilordnes

Uttrykk

Produksjon

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

abcaoe

Bruk: Rettelser av eldre tegnsett ved import.


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

Parameter

Formål

text

Inndata; hvis den inneholder |, hvert segment blir trimmet

chars

Tegn som skal fjernes fra slutten (RTRIM) eller begynnelsen (LTRIM)

Uttrykk

Produksjon

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

POS-01|POS-02 (det siste tomme segmentet er fjernet)

[LTRIM;; Kari; ]

Kari

Bruk: Rydd opp i rørlistene etter [ARRAYDIFF].


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

Parameter

Formål

text

Verdi som skal legges til

padChar

Fyll-tegn

totalLength

Målbredde

Uttrykk

Produksjon

[RPAD;42;0;5]

42000

[LPAD;7;0;4]

0007

Bruk: Ansattnumre med fast bredde i filutførsler.


[RIGHT;length;text]

Parameter

Formål

length

Hvor mange tegn fra høyre

text

Kilde

Uttrykk

Produksjon

[RIGHT;4;12345678]

5678

Bruk: De siste sifrene i personnummeret i testmiljøer.


[INITIALS;text;startWord;endWord]

Parameter

Formål

text

Fullt navn eller uttrykk

startWord

Startpunkt for ordindeks (0-basert)

endWord

Ordliste til slutten, eller last / last-1

Uttrykk

Produksjon

[INITIALS;Kari Marie Nordmann;0;last]

K M N (bokstaver og mellomrom slik de er angitt)

[INITIALS;Kari Marie Nordmann;1;1]

M

Bruk: Kortkoder i gruppenavn eller e-postaliaser.


[PRETTIFY;text]

Store bokstaver etter mellomrom eller bindestrek.

Uttrykk

Produksjon

[PRETTIFY;kari nordmann]

Kari Nordmann

[PRETTIFY;it-og-digitalisering]

It-Og-Digitalisering

Bruk: Vis navn i meldinger når HR sender med store bokstaver.


[LOWER;text] / [UPPER;text]

Uttrykk

Produksjon

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

kari.nordmann@eksempel.kommune.no

[UPPER;avdeling-it]

AVDELING-IT

Bruk: Normaliser før [CLEAN] i reglene for brukernavn.


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

Fjern eller erstatt tegn som ikke er tillatt i brukernavn, strenge ID-er eller AD-fellesnavn (CN).

Uttrykk

Typisk utdata

Bruk

[CLEAN;Kari Åse Nordmann!]

kariasenordmann (tegn som ikke er bokstaver er fjernet, skrevet med små bokstaver)

Brukernavn / uid

[CNCLEAN;Kari (test) Nordmann]

CN-sikkert skjema for AD

Gruppens eller brukerens CN

Det nøyaktige resultatet avhenger av kundens tegnregler; test i uttrykksbyggeren.


[GETKEYVALUE;key;delimiter;metadata]

Leser key<delimiter>value par innenfor en metadatastreng adskilt med pipe-tegn.

Parameter

Formål

key

Nøkkel til å finne

delimiter

Skilletegn mellom nøkkel og verdi (ofte = eller :)

metadata

Liste med nøkkel-verdi-tokener, adskilt med pipe-tegn

Uttrykk

metadata verdi

Produksjon

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

IT

Bruk: Tilpassede importmetadata for utvidelsesattributter.


Logikk og kontrollflyt

[IFTHENELSE;query;thenValue;elseValue]

Parameter

Formål

query

Betingelse for nåværende objekt (f.eks. ObjectTypeId=1)

thenValue

Returneres hvis søket gir treff

elseValue

Returneres hvis ikke

Kontekst

Uttrykk

Produksjon

Bruker Kari (type 1)

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

Ansatt

IT-avdelingen (type 2)

det samme

Ikke ansatt

Bruk: Én mal for ulike objekttyper.


[IFEMPTYUSE;primary;fallback;reversed]

Parameter

Formål

primary

Verdien som skal testes

fallback

Brukes når «primary» er tom (standard)

reversed

Valgfritt true: bruk reservealternativet når primæralternativet er ikke tom

Uttrykk

Utløpet av Karis tillatelse

Produksjon

[IFEMPTYUSE;;Permanent tilgang]

tom

Permanent tilgang

[IFEMPTYUSE;15.12.2026;Permanent tilgang]

15.12.2026

15.12.2026

[IFEMPTYUSE;[Manager];;true]

Sjef=empty

`` (tom — omvendt: brukes kun som reserve når leder finnes)

Bruk: Standardtekst ved manglende utløpsdato, ansvarlig eller kommentar.


[EXISTS;value;resultIfNonEmpty]

Parameter

Formål

value

Testet streng

resultIfNonEmpty

Returneres kun hvis value er ikke tom

Uttrykk

Kari Manager-feltet

Produksjon

[EXISTS;ola.hansen;has-manager]

ola.hansen

has-manager

[EXISTS;;has-manager]

tom

`` (tom)

Bruk: Nestede oppslag i Gate — utføres kun [REFERENCE...] når [Manager] er angitt.


[TRANSFORM;input;mapping...]

Parameter

Formål

input

Verdi som skal tilordnes

key|value par

Sammenlign inndata med utdata

*|default

Jokertegn hvis ingen nøkkel stemmer overens

Uttrykk

[Sex] = F

Produksjon

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

Kvinne

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

Ukjent

Bruk: HR-koder → vis tekst i meldinger.


[CONTAINS;valueList;targetList;ifYes;ifNo]

Parameter

Formål

valueList

Nåler med rør mellom hver

targetList

En høystakk med rør som skiller delene

ifYes / ifNo

Strenger som returneres ved treff / ikke noe treff

Uttrykk

Produksjon

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

ja (IT-100 funnet i målet)

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

nei

Bruk: Forgrening i stil med «Ruleset» inne i en mal.


Operasjoner med matriser (adskilt med vertikale streker)

Lister ser slik ut A|B|C. Mange stillingsbeskrivelser innen HR bruker denne formen.

[COUNT;ignored;list]

Parameter

Formål

ignored

Plassholder (ubrukt)

list

Verdier atskilt med komma

Uttrykk

Produksjon

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

2 (Tomme avsluttende segmenter kan påvirke antallet — prøv det ut med dine egne data)

Bruk: «Hvor mange stillinger har denne brukeren?»


[ARRAYAPPEND;list1;list2]

Uttrykk

Produksjon

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

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

Bruk: Slå sammen rollelister fra to tillatelsessøk.


[ARRAYUNIQUE;list]

Uttrykk

Produksjon

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

A|B|C|

Bruk: Fjern duplikater av avdelings-ID-er før eksport.


[ARRAYFILTER;list;allowed]

Beholder kun elementer som forekommer i allowed.

Uttrykk

Produksjon

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

POS-01|POS-02|

Bruk: Legg inn posisjonstyper på hvitelisten for en melding.


[ARRAYDIFF;current;previous]

Elementer i current ikke i previous.

Kontekst

current

previous

Produksjon

Ny stilling lagt til

POS-01|POS-02|

POS-01|

POS-02|

Ingen endring

POS-01|

POS-01|

``

Bruk: Oppdage ny stilling i meldingsflyten (sammen med [LASTVALUE;APositionCodeId]). Advarsel: upålitelig hvis flere posisjoner endres i én import.


[ARRAYJOIN;list1;list2]

Sammenføyer to lister etter indeks.

Uttrykk

Produksjon

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

Utvikler100%|HR-rådgiver20%

Bruk: Kombiner parallelle kolonner for eksportlinjer i CSV-format.


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

Går gjennom en skilt med komma liste. For hvert element som ikke er tomt, erstatter ??? sammen med elementet og ???i med sin 0-baserte indeks i malen, evaluerer nestede [...] i malen, og slår deretter sammen resultatene.

Parameter

Formål

array

Liste med skilletegn (ofte et felt som [APositionCodeName])

separator

Valgfri sammenkoblingsstreng mellom iterasjoner (standard |)

template

Tekst eller et nestet uttrykk; ??? = gjeldende element, ???i = indeks

Uttrykk

Kari APositionCodeName

Produksjon

[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 hoppet over (samme konvensjon som [ARRAYUNIQUE] / [ARRAYPREFIX]).

Ikke støttet: [ARRAYFOREACH...] innleiret i en annen [ARRAYFOREACH...] — uttrykket kan ikke evalueres. Bruk to påkallinger på samme nivå, eller [ARRAYJOIN] i stedet.

Bruk: Formater hver posisjon som en egen linje i en melding; legg til et prefiks for hver enhets-ID ved eksport.


[ARRAYPREFIX;list;mode;text]

Parameter

Formål

list

Elementer atskilt med vertikalt strek

mode

1 = sett følgende foran hvert element: text; annet = suffiks

text

Streng som prefiks eller suffiks

Uttrykk

Produksjon

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

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

Bruk: Eksterne ID-er i navnerommet.


[ARRAYTRIM;list;delimiter;maxCount]

Uttrykk

Produksjon

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

A|B

Bruk: Kun de første N posisjonene i en oppsummerings-e-post.


[PRUNEARRAY;list;regex;reverse]

Parameter

Formål

list

Elementer atskilt med vertikalt strek

regex

.NET-regulære uttrykk

reverse

true = beholde varer som ikke passer sammen i stedet

Uttrykk

Produksjon

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

POS-01|POS-02

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

TEMP-99

Bruk: Fjern midlertidige posisjonskoder fra eksporten.


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

Sammenføyer parallelle lister rad for rad til rader med mellomrom og vertikale streker.

Uttrykk

Konseptuell produksjon

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

Role Admin Dept IT|User HR (mønster: slå sammen kolonner etter indeks)

Bruk: Tekstblokker med flere kolonner i rapporter.


Tilfeldighet, hash, unikhet

[RND;min;max]

Parameter

Formål

min

Minste heltall (inkludert)

max

Maksimalt heltall (i praksis eksklusivt — sjekk området ditt)

Uttrykk

Eksempel på utdata

[RND;1000;9999]

4521 (varierer fra gang til gang)

Bruk: Billettnumre i testmaler.


[STRRND;minLen;maxLen;chars]

Parameter

Formål

minLen / maxLen

Lengdeområde

chars

Tillatt tegnsett (tomt felt = standard: alfanumerisk)

Uttrykk

Eksempel på utdata

[STRRND;8;8;abcdefghjkmnpqrstuvwxyz]

kthqwrnb (varierer)

Bruk: Engangskoder når passordregelen ikke brukes.


[PASSWORD;ruleId]

Parameter

Formål

ruleId

ID for regelen for passordgenerering som er konfigurert i eADM

Uttrykk

Produksjon

[PASSWORD;3]

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

Bruk: Opprinnelig passord i velkomstmeldingen — håndter det forsiktig.


[HASH;text]

Uttrykk

Utdata (eksempel)

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

MD5-heksadesimalstreng på 32 tegn (gir alltid samme utdata for samme inndata)

Bruk: Ugjennomsiktige token i lenker (ikke kun til sikkerhetskritisk hashing).


[UNIQUE;base;fieldName;replacement]

Sikrer base ikke allerede finnes i fieldName på et annet objekt; legger til 2, 3, … eller innsatser før replacement.

Parameter

Formål

base

Foreslått brukernavn eller e-postadresse

fieldName

Felt som skal brukes til å kontrollere om verdien er unik (f.eks. UserName)

replacement

Valgfri suffiksmarkør som skal erstattes med et tall

Scenario

Uttrykk

Produksjon

kari.nordmann gratis

[UNIQUE;kari.nordmann;UserName;.]

kari.nordmann

kari.nordmann tatt

det samme

kari.nordmann2 eller kari2.nordmann avhengig av utskifting

Bruk: Kundeoppsett uttrykk for brukernavn sammen med [CLEAN] / [LOWER].


Databaseoppslag og relasjoner

Disse leser inn sanntids eADM-data for kunden. ID-ene må finnes i ditt miljø.

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

Parameter

Formål

returnField

Felt(er) som skal returneres fra det samsvarende objektet (§ (kobler sammen flere felt)

whereField

Felt å søke etter

objectTypeId

1 bruker, 2 avdeling, 3 gruppe

searchValue

Verdien som skal finnes

exactMatch

true nøyaktig; false mønster

Uttrykk

Vennskapskamp

Produksjon

[REFERENCE;OrgUnitnr;Id;2;2100]

Avdelings-ID 2100 = IT

IT-100

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

Bruker med administratorrettigheter

Ola Hansen

Bruk: Avdelingsnummer fra tillatelsen ManagerOf id:

[REFERENCE;OrgUnitnr;Id;2;2100]

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

Leser tilgangsrettighetene til den aktuelle brukeren.

Parameter

Formål

returnField

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

whereField

Felt å filtrere etter

filterValue

Samsvarsverdi, eller * for alle

exactMatch

Modus for strengsammenligning

aggregate

true = alle treff som er koblet sammen med |; false = først og fremst

Uttrykk

Utdata (Kari)

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

Automatisk tildelt

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

2100

Forkortelse for rollenavn:

Uttrykk

Produksjon

[OBJECTPERMISSION.SYSTEMROLE;Name;SystemRoleId;501]

Bruker Fagsystem X


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

Henter objekthistorikken for den aktuelle brukeren (logg fra synkronisering/brukergrensesnitt).

Eksempel på filter

Uttrykk

Typisk utdata

Siste tillatelse lagt til

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

Tildelt av admin

Bruk: «Hvem har gitt denne tillatelsen?» i meldingsflyt (ofte innebygd i [SPLIT] / [REFERENCE]).


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

Parameter

Formål

collection

object, objectpermission, objecthistory, …

query

Filter (selskapsomfang legges til automatisk)

returnFields

Kommaseparerte felt, valgfritt object.Field

headers

Kolonneoverskrifter for CSV/HTML

format

csv, html, json, xml, eadm

Eksempel (konseptuelt): Alle brukere med rolle 501, CSV:

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

Utdata (dummy):

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

Bruk: Lederrapport innebygd i e-postteksten.


[DESCENDANTS;rootId;returnField;parentKey;foreignKey]

Parameter

Formål

rootId

Avdelingsobjekt-ID som utgangspunkt

returnField

Felt som skal hentes fra hver node

parentKey

Underfelt som peker til overordnet felt (f.eks. DepartmentNumber)

foreignKey

Felt for overordnet identifikator (f.eks. ParentDepartmentNumber)

Start

Tre

Uttrykk

Produksjon

IT-ID 2100

IT → HR

[DESCENDANTS;2100;SourceId;DepartmentNumber;ParentDepartmentNumber]

IT-100,HR-200

Bruk: Alle underavdelinger som omfattes av en leders tillatelse.


[SYSTEM;type;id;field]

Parameter

Formål

type

system, systemrole, eller systemroles

id

Numerisk ID eller *

field

Feltnavn(er) som skal returneres

Uttrykk

Utdata (dummy)

[SYSTEM;systemrole;501;Name]

Bruker Fagsystem X

[SYSTEM;system;12;Name]

Fagsystem X

Bruk: Kontaktinformasjon for systemeier i administrasjonsvarsel.


[SELECTION;rulesetId;returnField]

Parameter

Formål

rulesetId

Regelsett som skal vurderes for hvert objekt

returnField

Felt fra hvert objekt som samsvarer

Uttrykk

Utdata (dummy)

[SELECTION;1001;Email]

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

Bruk: Adresseliste over alle som oppfyller reglene i regelsettet «Nye ansatte».


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

Returnerer verdier atskilt med vertikalt strek for systemer eller roller som oppfyller «Tilgjengelig for »-regelsettet for den aktuelle brukeren.

Uttrykk

Betydning

[AVAILABLESYSTEM;Name]

Navn på systemer som Kari kan få tilgang til

[AVAILABLEROLE;12;Name]

Rollenavn på system 12 som hun kan bli tildelt

Bruk: Dynamiske utvalgslister i skjemaer eller meldinger.


[AVAILABLEDEPARTMENTS;fields;targetUserId]

Parameter

Formål

fields

Avdelingsfelt adskilt med komma

targetUserId

Bruker som skal vurderes; tom = gjeldende objekt

Bruk: Viser avdelinger som en leder kan ha ansvar for (fra «ManagerOf», enhets-ID-er, roller i «mega.eadm.no» ).


[DATAOWNER;returnField]

Følger data-eier-relasjonen på objektet; returnerer feltet fra eieren.

Uttrykk

Utdata (hvis navnet på eiergruppen er lagret)

[DATAOWNER;Name]

IT dataeiere


[ANTECEDANTS.SYSTEMROLE;roleId;departmentId;returnField]

Ledere som har roleIdforfader avdelinger i departmentId.

Uttrykk

Utdata (dummy)

[ANTECEDANTS.SYSTEMROLE;501;2101;Email]

it-leder@eksempel.kommune.no,

Bruk: Eskalerings-e-post når en underavdeling i HR ikke har noen lokal godkjenner.


[COUNTEMPLOYEE] / [COUNTMEMBERS]

Vurderes henholdsvis på avdelings- eller gruppenivå.

Objekt

Uttrykk

Utdata (dummy)

IT-avdelingen

[COUNTEMPLOYEE]

47

Gruppen «Prosjekt Alfa»

[COUNTMEMBERS]

12


[GETLASTSYNCID]

Uttrykk

Utdata (dummy)

[GETLASTSYNCID]

88421 (ID for den siste importfilen for selskapet)

Bruk: Feilsøking av bunntekster i administrasjons-e-poster.


[LASTVALUE;attributeName]

Forrige verdi i feltet fra siste import av HR- historikk, ellers gjeldende felt.

Kontekst

Uttrykk

Produksjon

Før synkroniseringen hadde Kari én stilling

[LASTVALUE;APositionCodeId]

POS-01|

Etter å ha lagt til POS-02

[APositionCodeId]

POS-01|POS-02|

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


Stillinger (HR med flere stillinger)

Feltposisjoner deler indeks på tvers av rør: indeks 0 = første posisjon, 1 = sekund.

[POSITION;returnField;whereField;matchValue]

Parameter

Formål

returnField

Feltet som skal returneres (f.eks. APositionCodeName)

whereField

Felt som skal sammenlignes (f.eks. AUnitId)

matchValue

Enhet eller kode som skal søkes etter

Uttrykk

Produksjon

[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 jevnt innrettet rørstreng på tvers av alle posisjoner (tom plass der det ikke er noe treff).

Uttrykk

Produksjon

[POSITIONS;APositionCodeName;AUnitId;IT-100]

Utvikler| (den andre posisjonen er tom ved samme indeksmønster)


[GROUPPRIMARYPOSITION;returnField]

Valg primær posisjon: høyest APositionPercentage, tie-break etter tidligste APositionStartDate.

Kari-stillinger

Uttrykk

Produksjon

100 % IT, 20 % HR

[GROUPPRIMARYPOSITION;APositionCodeName]

Utvikler


[ACTIVEPOSITIONCOUNT;asOfDate]

Uttrykk

Produksjon

[ACTIVEPOSITIONCOUNT;17.06.2026 00:00:00]

2 (begge stillingene var ledige på den datoen)


Meldinger og integrasjon

[COUNTMESSAGESENT;messageId;fromDate]

Parameter

Formål

messageId

ID for meldingsmal (valgfritt hvis arbeidsflyten gir kontekst)

fromDate

Tell kun sendinger etter denne datoen (valgfritt)

Uttrykk

Utdata (dummy)

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

1

Bruk: «Allerede varslet?»-kontroll i oppfølgingsprosessen.


[SYSTEMOWNER]

Krever en historikkoppføring fra endringen av tillatelsen (tillatelse til å legge til/redigere/slette).

Kontekst

Utdata (dummy)

Tillatelse for rolle 501 lagt til

fagsystem-eier@eksempel.kommune.no

Bruk: CC-systemets eier når automatisk tillatelse gis.


[SYNCSTEPPARAMETER;key;companySyncStepId]

Parameter

Formål

key

Parameternavn i synkroniseringstrinnet

companySyncStepId

Instans-ID for kundesynkroniseringstrinn

Uttrykk

Produksjon

[SYNCSTEPPARAMETER;ApiBaseUrl;42]

https://api.example.invalid/hr

Tilgang: Bedriftsadministrator i forhåndsvisning av uttrykksbyggeren.


[APITOKEN;apiUsername]

Parameter

Formål

apiUsername

API-brukernavn (objekttype 14)

Uttrykk

Produksjon

[APITOKEN;sync.service]

Ugjennomsiktig streng for sesjonstoken (varierer)

Tilgang: Bedriftsadministrator i forhåndsvisning. Brukes kun i sikrede serverbaserte arbeidsflyter.


HTML-hjelpefunksjoner (meldingsmaler)

[HTMLLISTMEMBEROF;displayField]

For en bruker som er medlem av en gruppe: viser overordnede grupper.

Uttrykk

Produksjon

[HTMLLISTMEMBEROF;Name]

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


[HTMLLISTARRAY;list]

Uttrykk

Produksjon

[HTMLLISTARRAY;Utvikler|HR-rådgiver]

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


Kontroller for skjemaer

Brukes i skjemaer, ikke i standardregelsett.

Funksjon

Formål

[INPUTBOX;fieldId;label;default;value]

Tekstinndata knyttet til skjemafelt-ID

[CHECKBOX;...]

Boolsk inngang

[LISTBOX;...]

Nedtrekksmeny (fem parametere)

[RADIO;...]

Radiogruppe

[DATEBOX;...]

Datovelger

[AREABOX;...]

Flerlinjet tekst

[BUTTON;...]

Handlingsknapp

Eksempel på mønster: [INPUTBOX;1042;Avdeling;IT-100;] viser innspill merket «Avdeling» med standardverdien IT-100.

Markører [NOTIFY...], [HIDDEN...], [SERVERFUNCTION...] er atferdskroker, ikke datafunksjoner.


Scenarier fra start til slutt (fiktive data)

Velkomst-e-post – kun startdato

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

Utdata: Ny ansatt Kari Nordmann starter 01.04.2026.


Linje for utløp av tillatelse

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

Utdata: Gyldig til: Permanent tilgang


Leder fraværende — eskaler til avdelingsleder på overordnet nivå

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

Kari, leder

Produksjon

tom

ola.hansen@eksempel.kommune.no (e-postadresse til avdelingsleder)

sett

tom (EXISTS-gren — tilpass malens logikk hvis du trenger e-postadressen til lederen når den finnes)

Juster kombinasjonen IFEMPTYUSE/EXISTS slik at den samsvarer med formålet med malen din; test i uttrykksbyggeren.


Kun ny stilling — mottaker av meldingen

Etter synkronisering legges det til POS-02:

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

Utdata: E-postadresse til lederen for avdelingen som den nye stillingen tilhører (eksempel: ny-leder@eksempel.kommune.no).


Navn på automatisk sikkerhetsgruppe (konfigurert av kunden)

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

Utdata: SG-IT og digitalisering-IT-100 (det faktiske CLEAN-utgangssignalet kan variere).


Eksportkartlegging — samAccountName

[UserName]

Utdata: kari.nordmann


Regelsett — brukeren har en rolle i systemet

Uttrykk for regelattributt :

[OBJECTPERMISSION.SYSTEMROLE;Name;SystemRoleId;501]

Beregnet verdi: Bruker Fagsystem X — sammenligningsoperatør Er lik / medlemsoperatører.


Uttrykksgenerator

Vare

Detalj

Hvor

Uttrykksbygger for overskriftsikoner, redigeringsverktøy for meldingsmaler, enkelte eHub-skjermbilder

Funksjonsliste

Alle objektfelt for den valgte typen samt standardfunksjoner

Forhåndsvisning

Velg testbruker/avdeling/gruppe; krever superadministratorrettigheter

Regelsett

Automatisering → Regelsett — minimum supermanager


Feilsøking

Symptom

Sannsynlig årsak

Handling

Bokstavelig [FUNCTION...] i utdata

Innfeltet er tomt eller inneholder en skrivefeil

Rett opp i nestingen; kontroller feltnavnene på objektet

Feil ved uttrykksutvurdering

Innebygd [ARRAYFOREACH...]

Del opp i søsken-anrop eller bruk [ARRAYJOIN]

Tom streng

Ingen samsvarende ID / tillatelse

Bekreft systemrolle-ID og system-ID i systemtilgangen

Feil posisjon i e-posten

Flere stillinger ble endret samtidig

Ikke stol utelukkende på ARRAYDIFF/LASTVALUE

Forhåndsvisning blokkert

Rolle eller beskyttet felt

Utvid rollen eller forenkle testuttrykket

Fungerer i «Builder», men ikke i «Message»

Hendelsesforløpet trenger objekthistorikken fra synkroniseringen

Kjør import; sjekk oppføringstypen i historikken


Hurtigindeks

Kategori

Funksjoner

Dato/klokkeslett

NÅ, NOW, DATEFORMAT, DATEDIFF, DAYOFYEAR

Streng

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

Logikk

IFTHENELSE, IFEMPTYUSE, EXISTS, TRANSFORM, CONTAINS

Matriser

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

Sikkerhet

HASH, PASSORD, UNIK, RND, STRRND

Oppslag

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

Stillinger

POSISJON, POSISJONER, GRUPPENS PRIMÆRE POSISJON, ANTALL AKTIVE POSISJONER

Meldinger

COUNTMESSAGESENT, SYSTEMOWNER, SYNCSTEPPARAMETER, APITOKEN

HTML

HTMLLISTMEMBEROF, HTMLLISTARRAY

Skjemaer

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


Notater fra AI-assistenten

  1. Foretrekker [DisplayName]-felter før de innrammes i funksjoner.

  2. Spør hvor uttrykket befinner seg: regelsett, melding, eksport eller kundeoppsett.

  3. Erstatt plassholder-ID-er (501, 2100) med kundens virkelige systemrolle og avdeling ID-er fra systemtilgang.

  4. Når man bruker et posisjonsfilter ved import, blir treffene ekskludert; i regelsettet for synkroniseringstrinnet inkluderes treffene.

  5. Hendelsesmeldingsstrømmer trenger objekthistorikk fra en synkroniseringskjøring.

  6. Lag eksempler med innleirede elementer innvendig-utvendig — bortsett fra [ARRAYFOREACH...], som binder seg til ??? per element før malfunksjonene kjøres.

  7. Ikke bruk innleirede elementer [ARRAYFOREACH...]; bruk søskenoppkall eller [ARRAYJOIN].

  8. Begreper: regelsett, meldingsflyt, systemtilgang, tilgang, objekthistorikk.

Sist oppdatert: