eADM-sääntöjen ilmaisuohjelma

eADM-sääntöjen ilmaisuohjelma

Yleiskatsaus

Sääntöilmaisuja käsittelevä moottori arvioi eADM:ssä sulkeisfunktiot ja kenttäpaikkamerkit. Ilmaisuja esiintyy seuraavissa:

Kuluttaja

Tyypillinen käyttötarkoitus

Sääntökokonaisuudet (Regelsett)

Suodata käyttäjiä, osastoja ja ryhmiä; hallitse viestivirtoja, synkronointivaiheita ja käyttöoikeuksia

Viestipohjat

Dynaaminen vastaanottaja, aihe, teksti (HTML)

Vie mallit / synkronoi mallien virtausviivat

Kohdeattribuuttien kartoitus

Asiakkaan asetukset

Käyttäjänimen ilmaisu, ryhmien automaattinen nimeäminen, sijaintisuodatin

Lomakemallit

Lomakekenttien sidokset

Lausekkeenmuodostaja

Esikatselu testikäyttäjän, osaston tai ryhmän osalta

Arvioinnin kulku

  1. Moottori etsii lausekkeesta [...] poletteja.

  2. [ARRAYFOREACH...] suoritetaan ensin — ennen ”innermost-first”-kierrosta — joten mallipohjien paikkamerkit ??? ja ???i määritetään jokaiselle putkilla erotetulle elementille.

  3. Muussa tapauksessa se ratkaisee ensin sisimmän sulkuparin.

  4. Jokainen funktio palauttaa tekstimuotoisen tuloksen, joka korvaa sulun.

  5. Kun toimintoja ei ole enää jäljellä, jäljellä olevat [FieldName] merkit korvataan nykyinen objekti (ja valinnainen historiarivi (viestivirroissa).

  6. Tunnistamattomat kenttänimet säilyvät kirjaimellisina [FieldName] tulostuksessa.

Putkilla erotetut luettelot (|) käytetään moniarvoisissa tiedoissa — erityisesti henkilöstöhallinnossa tehtävät käyttäjälle.

Seuraavissa esimerkeissä käytetyt tekaistut tiedot

Ellei toisin mainita, esimerkeissä oletetaan, että asiakas on Eksempel kommune, jolla on:

Kohde

Keskeiset arvot

Käyttäjä Kari Nordmann

Etunimi=Kari, Sukunimi=Nordmann, DisplayName=Kari Nordmann, käyttäjänimi=kari.nordmann, Sähköposti=kari.nordmann@eksempel.kommune.no, Start=01.04.2026 00:00:00, Osasto=IT og digitalisering, osastonumero=100

Käyttäjän sijainnit (putken suuntaan)

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

IT -osasto (tyyppi 2)

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

Henkilöstö osasto (IT-osaston alainen)

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

Järjestelmärooli (käyttöoikeus)

Id=501, Nimi=Bruker Fagsystem X, liitetty järjestelmään id=12

Karin käyttöoikeus

SystemRoleId=501, ManagerOf=2100, Kommentti=Automatisk tildelt, ExpiryDate=tyhjä

Objektityyppien tunnisteet (hakua varten): Käyttäjä=1, Osasto=2, Ryhmä=3, API-käyttäjä=14.


Syntaksin säännöt

  • Toiminnot: [NAME;arg1;arg2;...] — puolipisteellä erotetut argumentit (;).

  • Kentät: [FieldName] — nykyisen objektin arvo (kirjainkokoa ei huomioida).

  • Sisäkkäiset lausekkeet: sisemmät sulkeet tulkitaan ennen ulompia.

  • Luettelon erottimena: putkimerkki | (pystysuora viiva) arvojen välissä — esim. POS-01|POS-02. Älä koskaan kirjoita kauttaviivaa; | esiintyy vain Markdown-merkintöjen pakotuksena lähdetiedostoissa, ei lausekkeissa.

  • Kenttien päivämäärät tallennetaan usein muodossa dd.MM.yyyy HH:mm:ss; tuonnissa voidaan käyttää yyyy-MM-dd ja muut yleiset tiedostomuodot.

Kyselykieli

Sisäkäyttöön [FOREACH], [IFTHENELSE], ja edistyneitä [OBJECT...] suodattimet.

Tunnus

Merkitys

=

Tasa-arvoinen

>, <

Suurempi / pienempi kuin

!

Ei yhtä suuri

*

Kuvion tunnistus (like)

#

Arvo luettelossa

&

JA seuraava ehto

|

TAI seuraava ehto

Lisää tietojen eteen etuliite object., system., systemrole., objectpermission., jne.


Pesintä

Ensin sisempi kenttä, sitten ulompi funktio

Vaihe

Ilmaisufragmentti

päättää

1

[start]

01.04.2026 00:00:00

2

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

01.04.2026

Estetty, jos sisäinen kenttä puuttuu: [SUBSTRING;0;10;[UnknownField]] pysyy muuttumattomana, kun UnknownField ei ole kohteessa.

Tyypillinen käyttöoikeusketju (luetaan sisältä ulospäin):

[REFERENCE;DisplayName;UserId;1;[REFERENCE;Manager;Id;2;[OBJECTPERMISSION;ManagerOf;SystemRoleId;501]]]
  1. Lupa → osaston tunnus 2100

  2. Osasto → esimiehen käyttäjätunnus

  3. Käyttäjä → esimiehen näyttönimi

[ARRAYFOREACH...] on erilainen: se laajentaa putkilla erotetun luettelon ennen mallin sisäiset funktiot suoritetaan. Käytä ??? kyseisen elementin osalta ja ???i koska sen indeksi alkaa nollasta. Pesintä [ARRAYFOREACH...] toisen sisällä [ARRAYFOREACH...] ei ole tuettu — käytä [ARRAYJOIN] / [ARRAYPREFIX] tai soittaa sen sijaan sisaruksille.


Käyttöoikeustasot

Rooli

Mihin se vaikuttaa

Supermanageri

Ilmaisunmuodostajan esikatselu

Yhtiön hallintovastaava

Täydellinen toimintojen luettelo rakennustyökalussa; [APITOKEN...], [SYNCSTEPPARAMETER...] esikatselussa

Organisaation järjestelmänvalvoja

Esikatselussa suojattuihin kenttiin vaikuttavat lausekkeet

Pääkäyttäjä

[UPDATE...], [DECRYPT...], [ENCRYPT...] — jätetty pois tästä oppaasta

Automaatio (synkronointi, viestit, vienti) arvioi lausekkeet palvelimen käyttöoikeuksilla. Toiminto, joka toimii tuotantoympäristössä, voi silti olla estetty roolisi lausekkeenmuodostimessa.


Kenttien paikkamerkit

Ei funktioita — korvataan nykyisestä objektista (tai tapahtumapohjaisten viestivirtojen historiarivistä ).

Esimerkki: Malli Hello [GivenName] [Surname] Kari Nordmannista → Hello Kari Nordmann

Paikkamerkki

Tyypillinen lähde

[GivenName], [Surname], [DisplayName]

Henkilön nimi

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

Tili / sähköposti

[Department], [DepartmentNumber]

Perusopetuksen osasto

[Start]

Työsuhteen alkamispäivä ja -aika

[Manager]

Henkilöstöosaston antama suositus esimieheltä

[APositionCodeId], [AUnitId], [APositionCodeName]

Moniasentoinen (putkilla erotettu)

Vain historia (viestit näkyvät synkronoinnin jälkeen): [OldValue], [NewValue], [EntryType], [AttributeName], [Comment].


Toiminto-opas esimerkkeineen

Jokaisessa kohdassa on lueteltu parametrit, esimerkki, jossa on käytetty testitietoja, sekä odotettu tulos.


Päivämäärä ja kellonaika

[NÅ] / [NOW]

Palauttaa palvelimen päivämäärän ja kellonajan.

Parametri

Tarkoitus

(ei mitään)

Tällä hetkellä

+N / -N jälkiliite

Lisää tai vähennä N päivää

Ilmaisu

Palvelimen oletuspäivämäärä

Lähtö

[NÅ]

17.06.2026 klo 14.30.00

17.06.2026 14:30:00

[NOW+7]

17.06.2026

24.06.2026 14:30:00 (sama kellonaika, +7 päivää)

Käyttö: Luvan alkamispäivän näyttö, mallien suhteelliset määräajat.


[DATEFORMAT;date;format]

Muuntaa päivämäärämerkkijonon uuteen muotoon.

Parametri

Tarkoitus

date

Syötä päivämäärä tai putkilla erotetut päivämäärät

format

Lähtökuvio (esim. yyyy-MM-dd, dd/MM/yyyy)

Ilmaisu

Syöte (kenttien määrittelyn jälkeen)

Lähtö

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

kaksi päivämäärää

2026-04-01|2026-06-15

Käyttö: Vientimuodot, ISO-päivämäärät API-viestien sisällössä.


[DATEDIFF;date1;date2;unit]

Kahden päivämäärän välinen numeerinen ero.

Parametri

Tarkoitus

date1

Myöhempi vai ensisijainen päivämäärä

date2

Aikaisempi päivämäärä tai viitepäivämäärä

unit

d päivää (oletus), y vuotta, m kuukautta, h tuntia, mi minuuttia, s sekuntia

Ilmaisu

Lähtö

Merkitys

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

77

77 päivää aloittamisesta tähän päivään

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

0

Tässä esimerkissä sama kalenterivuosi

Käyttö: Tenure-tarkistukset sääntöjoukoissa, ”päiviä alkuun” viesteissä.


[DAYOFYEAR;date]

Parametri

Tarkoitus

date

Arviointipäivä

Ilmaisu

Lähtö

[DAYOFYEAR;01.04.2026 00:00:00]

91

Käyttö: Kausittaiset säännöt, tilikauden erikoisjärjestelyt.


Merkkijonojen käsittely

[SUBSTRING;start;length;text]

Parametri

Tarkoitus

start

0:sta alkava aloitusindeksi

length

Otettavien merkkien määrä

text

Lähdemerkkijono (usein sisäkkäinen kenttä)

Ilmaisu

Päätös text

Lähtö

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

01.04.2026

[SUBSTRING;0;4;POS-01]

POS-0

Käyttö: Tervetuloviesteissä päivämäärä ilman kellonaikaa: [SUBSTRING;0;10;[Start]]01.04.2026.


[SPLIT;text;delimiter;index]

Parametri

Tarkoitus

text

Jaettava merkkijono

delimiter

Erotin (esim. |, ;, välilyönti)

index

0:sta alkava kappaleen indeksi, tai last / last-1

Ilmaisu

Lähtö

[SPLIT;Kari|Nordmann;|;0]

Kari

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

POS-02

Käyttö: Tervehdys yhdistetyistä nimikentistä; valitse viimeinen sijaintikoodi.


[REPLACE;text;find;replace]

Parametri

Tarkoitus

text

Alkuperäinen merkkijono

find

Korvattavat osajonot; putki = useita; ^x = vain alussa; x^ = vain lopussa

replace

Korvaava teksti

Ilmaisu

Lähtö

[REPLACE;kari.nordmann;.;-]

kari-nordmann

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

12345678

Käyttö: Puhelinnumeroiden muotoileminen, erottimien vaihtaminen käyttäjätunnuksissa.


[REPLACELIST;text;fromChars;toChars]

Merkkikohtainen vastaavuustaulukko (molempien merkkijonojen on oltava samanpituisia).

Parametri

Tarkoitus

text

Tulo

fromChars

Määritettävät merkit

toChars

Määritettävät merkit

Ilmaisu

Lähtö

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

abcaoe

Käyttö: Vanhojen merkistöjen korjaukset tuontitoiminnoissa.


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

Parametri

Tarkoitus

text

Syöte; jos se sisältää |, jokainen segmentti leikataan

chars

Merkit, jotka poistetaan lopusta (RTRIM) tai alusta (LTRIM)

Ilmaisu

Lähtö

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

POS-01|POS-02 (loppupuolella oleva tyhjä segmentti on poistettu)

[LTRIM;; Kari; ]

Kari

Käyttö: Puhdista putkiluettelot sen jälkeen, kun [ARRAYDIFF].


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

Parametri

Tarkoitus

text

Arvo syötettäväksi

padChar

Täytemerkki

totalLength

Kohteen leveys

Ilmaisu

Lähtö

[RPAD;42;0;5]

42000

[LPAD;7;0;4]

0007

Käyttö: Kiinteän pituiset työntekijänumerot tiedostojen viennissä.


[RIGHT;length;text]

Parametri

Tarkoitus

length

Kuinka monta merkkiä oikealta

text

Lähde

Ilmaisu

Lähtö

[RIGHT;4;12345678]

5678

Käyttö: Kansallisen henkilötunnuksen viimeiset numerot testausympäristöissä.


[INITIALS;text;startWord;endWord]

Parametri

Tarkoitus

text

Koko nimi tai lause

startWord

Sanan hakemiston aloituskohta (0-pohjainen)

endWord

Sana-hakemisto loppuun asti, tai last / last-1

Ilmaisu

Lähtö

[INITIALS;Kari Marie Nordmann;0;last]

K M N (kirjaimet ja välilyönnit sellaisina kuin ne on kirjoitettu)

[INITIALS;Kari Marie Nordmann;1;1]

M

Käyttö: Lyhytkoodit ryhmien nimissä tai sähköpostin aliaksissa.


[PRETTIFY;text]

Isot alkukirjaimet välilyönnin tai yhdysmerkin jälkeen.

Ilmaisu

Lähtö

[PRETTIFY;kari nordmann]

Kari Nordmann

[PRETTIFY;it-og-digitalisering]

It-Og-Digitalisering

Käyttö: Näytä nimet viesteissä, kun HR lähettää viestejä isoilla kirjaimilla.


[LOWER;text] / [UPPER;text]

Ilmaisu

Lähtö

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

kari.nordmann@eksempel.kommune.no

[UPPER;avdeling-it]

AVDELING-IT

Käyttö: Normalisoi ennen [CLEAN] käyttäjätunnuksen sääntöissä.


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

Poista tai korvaa merkit, jotka eivät sovellu käyttäjätunnuksiin, tiukasti määriteltyihin tunnisteisiin tai AD:n yleisnimiin (CN).

Ilmaisu

Tyypillinen tulos

Käyttö

[CLEAN;Kari Åse Nordmann!]

kariasenordmann (muut kuin kirjaimet poistettu, pienillä kirjaimilla)

Käyttäjätunnus / uid

[CNCLEAN;Kari (test) Nordmann]

CN-safe-lomake AD:lle

Ryhmän tai käyttäjän CN

Tarkka tulos riippuu asiakkaan merkkisäännöistä; testaa ilmaisurakentajassa.


[GETKEYVALUE;key;delimiter;metadata]

Lukukerrat key<delimiter>value parit putkimerkillä erotetussa metatietojonossa.

Parametri

Tarkoitus

key

Etsittävä avain

delimiter

Avainten ja arvojen välinen erottimena (usein = tai :)

metadata

Putkilla erotettu luettelo avain-arvo-tunnuksista

Ilmaisu

metadata arvo

Lähtö

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

IT

Käyttö: Mukautetut tuontimetatiedot laajennuksen attribuuteissa.


Logiikka ja ohjausvirta

[IFTHENELSE;query;thenValue;elseValue]

Parametri

Tarkoitus

query

Ehto nykyinen objekti (esim. ObjectTypeId=1)

thenValue

Palautetaan, jos kysely vastaa hakua

elseValue

Palautetaan, jos ei

Konteksti

Ilmaisu

Lähtö

Käyttäjä Kari (tyyppi 1)

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

Ansatt

IT-osasto (tyyppi 2)

sama

Ikke ansatt

Käyttö: Yksi malli eri objektityyppien yhdistelmälle.


[IFEMPTYUSE;primary;fallback;reversed]

Parametri

Tarkoitus

primary

Testattava arvo

fallback

Käytetään, kun ensisijainen on tyhjä (oletus)

reversed

Valinnainen true: käytä varavaihtoehtoa, kun ensisijainen on ei tyhjä

Ilmaisu

Karin käyttöoikeuden voimassaolon päättyminen

Lähtö

[IFEMPTYUSE;;Permanent tilgang]

tyhjä

Permanent tilgang

[IFEMPTYUSE;15.12.2026;Permanent tilgang]

15.12.2026

15.12.2026

[IFEMPTYUSE;[Manager];;true]

Johtaja=empty

`` (tyhjä — päinvastaisessa järjestyksessä: käytetään vain, jos hallinnoija on olemassa)

Käyttö: Oletusteksti, jos voimassaolon päättymispäivä, vastuuhenkilö tai kommentti puuttuu.


[EXISTS;value;resultIfNonEmpty]

Parametri

Tarkoitus

value

Testattu merkkijono

resultIfNonEmpty

Palautetaan vain, jos value ei ole tyhjä

Ilmaisu

Kari-vastaavan kenttä

Lähtö

[EXISTS;ola.hansen;has-manager]

ola.hansen

has-manager

[EXISTS;;has-manager]

tyhjä

`` (tyhjä)

Käyttö: Porttiin upotetut hakutoiminnot — suoritetaan vain [REFERENCE...] kun [Manager] on asetettu.


[TRANSFORM;input;mapping...]

Parametri

Tarkoitus

input

Kartalle merkittävä arvo

key|value parit

Täsmää syöte ja tulos

*|default

Yleismerkki, jos mikään avain ei vastaa

Ilmaisu

[Sex] = F

Lähtö

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

Kvinne

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

Ukjent

Käyttö: HR-koodit → tekstin näyttäminen viesteissä.


[CONTAINS;valueList;targetList;ifYes;ifNo]

Parametri

Tarkoitus

valueList

Putkilla erotetut neulat

targetList

Putkilla erotettu heinäpaali

ifYes / ifNo

Vastaavuuden / ei vastaavuuden yhteydessä palautetut merkkijonot

Ilmaisu

Lähtö

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

ja (IT-100 löytyi kohteesta)

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

nei

Käyttö: Ruleset-tyyppinen haarautuminen mallin sisällä.


Taulukon (putkilla erotetut) operaatiot

Luettelot näyttävät tältä A|B|C. Monissa henkilöstöhallinnon tehtävissä käytetään tätä mallia.

[COUNT;ignored;list]

Parametri

Tarkoitus

ignored

Paikkamerkki (käyttämätön)

list

Putkilla erotetut arvot

Ilmaisu

Lähtö

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

2 (tyhjät loppusegmentit voivat vaikuttaa laskentatulokseen — kokeile omilla tiedoillasi)

Käyttö: ”Kuinka monta tehtävää tällä käyttäjällä on?”


[ARRAYAPPEND;list1;list2]

Ilmaisu

Lähtö

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

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

Käyttö: Yhdistä kahden käyttöoikeuskyselyn rooliluettelot.


[ARRAYUNIQUE;list]

Ilmaisu

Lähtö

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

A|B|C|

Käyttö: Poista osastotunnisteiden päällekkäisyydet ennen vientiä.


[ARRAYFILTER;list;allowed]

Säilyttää vain ne kohteet, jotka esiintyvät allowed.

Ilmaisu

Lähtö

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

POS-01|POS-02|

Käyttö: Viestin sijaintityyppien lisääminen sallittujen luetteloon.


[ARRAYDIFF;current;previous]

Tuotteet kohdassa current ei sisällä previous.

Konteksti

current

previous

Lähtö

Uusi tehtävä lisätty

POS-01|POS-02|

POS-01|

POS-02|

Ei muutoksia

POS-01|

POS-01|

``

Käyttö: Tunnista uusi tehtävä viestivirrassa (yhdessä [LASTVALUE;APositionCodeId]). Varoitus: epäluotettava, jos useita asemia muuttuu yhdellä tuonnilla.


[ARRAYJOIN;list1;list2]

Yhdistää kaksi luetteloa indeksin avulla.

Ilmaisu

Lähtö

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

Utvikler100%|HR-rådgiver20%

Käyttö: Yhdistä rinnakkaiset sarakkeet CSV-tyylisten vientirivien muodostamiseksi.


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

Käy läpi a:n putkilla erotettu luettelo. Jokaisen ei-tyhjän elementin kohdalla korvataan ??? elementin kanssa ja ???i mallissa, jossa indeksi alkaa nollasta, arvioi sisäkkäiset [...] mallissa ja yhdistää sitten tulokset.

Parametri

Tarkoitus

array

Putkilla erotettu luettelo (usein kenttä, kuten [APositionCodeName])

separator

Valinnainen yhdistämismerkkijono toistojen välillä (oletusarvo |)

template

Teksti tai sisäkkäinen lauseke; ??? = nykyinen kohde, ???i = hakemisto

Ilmaisu

Kari APositionCodeName

Lähtö

[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

Tyhjät putkiosat ovat ohitettu (sama käytäntö kuin [ARRAYUNIQUE] / [ARRAYPREFIX]).

Ei tueta: [ARRAYFOREACH...] sisäkkäin toisen sisällä [ARRAYFOREACH...] — lausekkeen arviointi epäonnistuu. Käytä kahta rinnakkaista kutsua tai [ARRAYJOIN] sen sijaan.

Käyttö: Muotoile kukin sijainti omaksi rivikseen viestissä; lisää jokaisen yksikön tunnisteen eteen etuliite vientiä varten.


[ARRAYPREFIX;list;mode;text]

Parametri

Tarkoitus

list

Putkilla erotetut kohteet

mode

1 = lisää jokaisen kohteen alkuun text; other = pääte

text

Etuliite- tai jälkiliitemerkkijono

Ilmaisu

Lähtö

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

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

Käyttö: Nimitilan ulkoiset tunnisteet.


[ARRAYTRIM;list;delimiter;maxCount]

Ilmaisu

Lähtö

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

A|B

Käyttö: Vain N ensimmäistä sijaa yhteenvetosähköpostissa.


[PRUNEARRAY;list;regex;reverse]

Parametri

Tarkoitus

list

Putkilla erotetut kohteet

regex

.NET-säännöllinen lauseke

reverse

true = säilyttää sen sijaan tuotteet, jotka eivät sovi yhteen

Ilmaisu

Lähtö

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

POS-01|POS-02

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

TEMP-99

Käyttö: Poista väliaikaiset sijaintikoodit viennistä.


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

Yhdistää rinnakkaiset luettelot rivikohtaisesti välilyönnillä ja putkimerkillä yhdistetyiksi riveiksi.

Ilmaisu

Käsitteellinen tuotos

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

Role Admin Dept IT|User HR (malli: sarakkeiden yhdistäminen indeksin mukaan)

Käyttö: Monisarakkeiset tekstikappaleet raporteissa.


Satunnaisuus, hajautus, ainutlaatuisuus

[RND;min;max]

Parametri

Tarkoitus

min

Pienin kokonaisluku (mukaan lukien)

max

Suurin kokonaisluku (käytännössä ei sisällä itse lukua — tarkista alueesi)

Ilmaisu

Esimerkki tulosteesta

[RND;1000;9999]

4521 (vaihtelee jokaisella ajokerralla)

Käyttö: Lippujen numerot testimalleissa.


[STRRND;minLen;maxLen;chars]

Parametri

Tarkoitus

minLen / maxLen

Pituusalue

chars

Sallittu merkistö (tyhjä = oletusarvoisesti aakkosnumeerinen)

Ilmaisu

Esimerkki tulosteesta

[STRRND;8;8;abcdefghjkmnpqrstuvwxyz]

kthqwrnb (vaihtelee)

Käyttö: Kertakäyttöiset koodit, kun salasanasääntöä ei käytetä.


[PASSWORD;ruleId]

Parametri

Tarkoitus

ruleId

eADM:ssä määritetyn salasanan luontisäännön tunniste

Ilmaisu

Lähtö

[PASSWORD;3]

esim. Xk9#mP2$vL (noudattaa sääntöä 3: monimutkaisuus; vaihtelee)

Käyttö: Aloitussalasana tervetuloviestissä — käsittele sitä huolellisesti.


[HASH;text]

Ilmaisu

Tulostus (esimerkki)

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

32-merkkinen MD5-heksadesimaalimerkkijono (tulos on sama samalle syötteelle)

Käyttö: Läpinäkymättömät tunnisteet linkeissä (ei pelkästään turvallisuuden kannalta kriittiseen hajautukseen).


[UNIQUE;base;fieldName;replacement]

Varmistaa base ei ole vielä olemassa fieldName toiseen kohteeseen; liittää 2, 3, … tai ennen replacement.

Parametri

Tarkoitus

base

Ehdotettu käyttäjätunnus tai sähköpostiosoite

fieldName

Kenttä, jonka avulla ainutlaatuisuus tarkistetaan (esim. UserName)

replacement

Valinnainen pääte, joka korvataan numerolla

Skenaario

Ilmaisu

Lähtö

kari.nordmann ilmainen

[UNIQUE;kari.nordmann;UserName;.]

kari.nordmann

kari.nordmann otettu

sama

kari.nordmann2 tai kari2.nordmann riippuen vaihdosta

Käyttö: Asiakkaan asetukset käyttäjätunnuksen ilmaisu yhdessä [CLEAN] / [LOWER].


Tietokantahaku ja suhteet

Nämä lukevat asiakkaan reaaliaikaisia eADM-tietoja. Tunnisteiden on oltava olemassa ympäristössäsi.

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

Parametri

Tarkoitus

returnField

Kenttä(t), jotka palautetaan vastaavasta objektista (§ (yhdistää useita kenttiä)

whereField

Vertailtava kenttä

objectTypeId

1 käyttäjä, 2 osasto, 3 ryhmä

searchValue

Etsittävä arvo

exactMatch

true tarkka; false kuvio

Ilmaisu

Harjoitusottelu

Lähtö

[REFERENCE;OrgUnitnr;Id;2;2100]

Osaston tunnus 2100 = IT

IT-100

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

Käyttäjänvalvoja

Ola Hansen

Käyttö: Luvan osastonumero ManagerOf id:

[REFERENCE;OrgUnitnr;Id;2;2100]

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

Lukee nykyisen käyttäjän käyttöoikeudet.

Parametri

Tarkoitus

returnField

Lupakenttä (Comment, ManagerOf, ExpiryDate, SystemRoleId, …)

whereField

Suodatettava kenttä

filterValue

Vastaava arvo, tai * kaikille

exactMatch

Merkkijonojen vertailutila

aggregate

true = kaikki tulokset, jotka on yhdistetty |; false = vain ensimmäinen

Ilmaisu

Tulostus (Kari)

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

Automatisk tildelt

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

2100

Roolin nimen lyhenne:

Ilmaisu

Lähtö

[OBJECTPERMISSION.SYSTEMROLE;Name;SystemRoleId;501]

Bruker Fagsystem X


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

Lukee nykyisen käyttäjän objektien historian (synkronoinnin ja käyttöliittymän tapahtumaloki).

Esimerkki suodattimesta

Ilmaisu

Tyypillinen tulos

Viimeisin lisätty käyttöoikeus

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

Tildelt av admin

Käyttö: ”Kuka on myöntänyt tämän luvan?” viestiketjuissa (usein sisäkkäin [SPLIT] / [REFERENCE]).


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

Parametri

Tarkoitus

collection

object, objectpermission, objecthistory, …

query

Suodata (yrityksen laajuus lisätään automaattisesti)

returnFields

Pilkuilla erotetut kentät, valinnainen object.Field

headers

Sarakkeiden otsikot csv/html-tiedostoille

format

csv, html, json, xml, eadm

Esimerkki (käsitteellinen): Kaikki käyttäjät, joilla on rooli 501, CSV:

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

Tulostus (dummy):

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

Käyttö: Sähköpostin tekstiosaan upotettu esimiehen raportti.


[DESCENDANTS;rootId;returnField;parentKey;foreignKey]

Parametri

Tarkoitus

rootId

Osaston tunniste, josta aloitetaan

returnField

Kustakin solmusta kerättävä kenttä

parentKey

Alikenttä, joka viittaa pääkenttään (esim. DepartmentNumber)

foreignKey

Vanhemman tunnisteen kenttä (esim. ParentDepartmentNumber)

Aloita

Puu

Ilmaisu

Lähtö

IT-tunnus 2100

IT → HR

[DESCENDANTS;2100;SourceId;DepartmentNumber;ParentDepartmentNumber]

IT-100,HR-200

Käyttö: Kaikki osastot, joiden toimivalta perustuu esimiehen käyttöoikeuksiin.


[SYSTEM;type;id;field]

Parametri

Tarkoitus

type

system, systemrole, tai systemroles

id

Numero-tunnus tai *

field

Palautettavat kenttien nimet

Ilmaisu

Tulostus (dummy)

[SYSTEM;systemrole;501;Name]

Bruker Fagsystem X

[SYSTEM;system;12;Name]

Fagsystem X

Käyttö: Järjestelmän omistajan yhteystiedot järjestelmänvalvojan ilmoituksessa.


[SELECTION;rulesetId;returnField]

Parametri

Tarkoitus

rulesetId

Kohteittain arvioitava sääntökokoelma

returnField

Kunkin objektin kenttä, joka vastaa

Ilmaisu

Tulostus (dummy)

[SELECTION;1001;Email]

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

Käyttö: Postituslista, johon kuuluvat kaikki, jotka täyttävät ”Uudet työntekijät” -sääntöjoukon ehdot.


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

Palauttaa putkilla erotetut arvot järjestelmistä tai rooleista, jotka täyttävät ”Saatavilla” - säännön nykyiselle käyttäjälle.

Ilmaisu

Merkitys

[AVAILABLESYSTEM;Name]

Järjestelmien nimet, joihin Kari voi saada käyttöoikeudet

[AVAILABLEROLE;12;Name]

Järjestelmässä 12 olevat roolinimet, joihin hänet saatetaan nimetä

Käyttö: Dynaamiset valintaluettelot lomakkeissa tai viesteissä.


[AVAILABLEDEPARTMENTS;fields;targetUserId]

Parametri

Tarkoitus

fields

Pilkuilla erotetut osastokentät

targetUserId

Käyttäjän arvioitava; tyhjä = nykyinen objekti

Käyttö: Luettelee osastot, joita johtaja voi hallinnoida (perustuen ManagerOf-kenttään, yksikkötunnuksiin ja mega.eadm.no-rooleihin ).


[DATAOWNER;returnField]

Seuraa objektin data-omistaja-suhdetta; palauttaa omistajan kentän.

Ilmaisu

Tulostus (jos omistajaryhmän nimi on tallennettu)

[DATAOWNER;Name]

IT dataeiere


[ANTECEDANTS.SYSTEMROLE;roleId;departmentId;returnField]

Johtajat, joilla on hallussaan roleId ... esi-isä osastot departmentId.

Ilmaisu

Tulostus (dummy)

[ANTECEDANTS.SYSTEMROLE;501;2101;Email]

it-leder@eksempel.kommune.no,

Käyttö: Escalation-sähköposti, kun HR:n alaosastolla ei ole paikallista hyväksyjää.


[COUNTEMPLOYEE] / [COUNTMEMBERS]

Arvioidaan vastaavasti osaston tai ryhmän tasolla.

Kohde

Ilmaisu

Tulostus (dummy)

IT-osasto

[COUNTEMPLOYEE]

47

”Prosjekt Alfa” -ryhmä

[COUNTMEMBERS]

12


[GETLASTSYNCID]

Ilmaisu

Tulostus (dummy)

[GETLASTSYNCID]

88421 (yrityksen uusin tuontitiedoston tunnus)

Käyttö: Hallintaviestien alatunnisteiden vianmääritys.


[LASTVALUE;attributeName]

Kentän edellinen arvo viimeisimmästä HR-historiatiedostojen tuonnista, muussa tapauksessa kentän nykyinen arvo.

Konteksti

Ilmaisu

Lähtö

Ennen synkronointia Karilla oli yksi tehtävä

[LASTVALUE;APositionCodeId]

POS-01|

Kun POS-02 on lisätty

[APositionCodeId]

POS-01|POS-02|

Sopii yhteen [ARRAYDIFF;[APositionCodeId];[LASTVALUE;APositionCodeId]]POS-02|.


Tehtävät (monitoiminen HR)

Kenttien sijainti jakaa indeksin putkien välillä: index 0 = ensimmäinen sija, 1 = sekunti.

[POSITION;returnField;whereField;matchValue]

Parametri

Tarkoitus

returnField

Palautettava kenttä (esim. APositionCodeName)

whereField

Vastaava kenttä (esim. AUnitId)

matchValue

Etsittävä yksikkö tai koodi

Ilmaisu

Lähtö

[POSITION;APositionCodeName;AUnitId;IT-100]

Utvikler

[POSITION;APositionCodeName;AUnitId;HR-200]

HR-rådgiver


[POSITIONS;returnField;whereField;matchValue]

Sama kuin [POSITION] mutta palauttaa tasatun putkimerkkijonon kaikissa kohdissa (tyhjä paikka, jos vastaavuutta ei löydy).

Ilmaisu

Lähtö

[POSITIONS;APositionCodeName;AUnitId;IT-100]

Utvikler| (toinen paikka on tyhjä samassa indeksirakenteessa)


[GROUPPRIMARYPOSITION;returnField]

Valinnat ensisijainen sijoitus: ylin APositionPercentage, tasatilanteessa ratkaisu aikajärjestyksen perusteella APositionStartDate.

Karin tehtävät

Ilmaisu

Lähtö

100 % IT, 20 % HR

[GROUPPRIMARYPOSITION;APositionCodeName]

Utvikler


[ACTIVEPOSITIONCOUNT;asOfDate]

Ilmaisu

Lähtö

[ACTIVEPOSITIONCOUNT;17.06.2026 00:00:00]

2 (molemmat tehtävät olivat avoinna kyseisenä päivänä)


Viestintä ja integraatio

[COUNTMESSAGESENT;messageId;fromDate]

Parametri

Tarkoitus

messageId

Viestimallin tunnus (valinnainen, jos prosessi tarjoaa kontekstin)

fromDate

Laske mukaan vain tämän päivämäärän jälkeiset lähetykset (valinnainen)

Ilmaisu

Tulostus (dummy)

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

1

Käyttö: ”Onko jo ilmoitettu?” -tarkistus seurantaprosessissa.


[SYSTEMOWNER]

Vaatii historiarivin käyttöoikeuden muutoksesta (lisää/muokkaa/poista -oikeus).

Konteksti

Tulostus (dummy)

Rooliin 501 lisätty käyttöoikeus

fagsystem-eier@eksempel.kommune.no

Käyttö: CC-järjestelmän omistaja, kun automaattinen käyttöoikeus myönnetään.


[SYNCSTEPPARAMETER;key;companySyncStepId]

Parametri

Tarkoitus

key

Synkronointivaiheen parametrin nimi

companySyncStepId

Asiakkaan synkronointivaiheen instanssin tunnus

Ilmaisu

Lähtö

[SYNCSTEPPARAMETER;ApiBaseUrl;42]

https://api.example.invalid/hr

Käyttöoikeudet: Yrityksen järjestelmänvalvoja Expression Builder -esikatselussa.


[APITOKEN;apiUsername]

Parametri

Tarkoitus

apiUsername

API-käyttäjän kirjautumistunnus (objektityyppi 14)

Ilmaisu

Lähtö

[APITOKEN;sync.service]

Läpinäkymätön istuntotunnuksen merkkijono (vaihtelee)

Käyttöoikeudet: Yrityksen järjestelmänvalvoja esikatseluvaiheessa. Käytä vain suojatuissa palvelinpuolen prosesseissa.


HTML-aputoiminnot (viestipohjat)

[HTMLLISTMEMBEROF;displayField]

Ryhmän jäsenen kohdalla: näyttää yläryhmät.

Ilmaisu

Lähtö

[HTMLLISTMEMBEROF;Name]

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


[HTMLLISTARRAY;list]

Ilmaisu

Lähtö

[HTMLLISTARRAY;Utvikler|HR-rådgiver]

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


Lomakemallin ohjausobjektit

Käytetään lomakemalleissa, ei vakiosääntöjoukoissa.

Toiminto

Tarkoitus

[INPUTBOX;fieldId;label;default;value]

Lomakekentän tunnisteeseen sidottu tekstinsyöttö

[CHECKBOX;...]

Boolen-tyyppinen syöte

[LISTBOX;...]

Pudotusvalikko (viisi parametria)

[RADIO;...]

Radioryhmä

[DATEBOX;...]

Päivämäärän valitsin

[AREABOX;...]

Usean rivin teksti

[BUTTON;...]

Toimintopainike

Esimerkkimalli: [INPUTBOX;1042;Avdeling;IT-100;] muuntaa syötteen, jonka otsikkona on ”Avdeling”, oletusarvoksi IT-100.

Merkit [NOTIFY...], [HIDDEN...], [SERVERFUNCTION...] ovat käyttäytymiskoukkuja, eivät datatoimintoja.


Kokonaisvaltaiset skenaariot (testitiedot)

Tervetuloviesti — vain aloituspäivä

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

Tulostus: Ny ansatt Kari Nordmann starter 01.04.2026.


Luvan voimassaolon päättymispäivä

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

Tulostus: Gyldig til: Permanent tilgang


Esimies poissa — ilmoita asiasta ylemmälle osastonjohtajalle

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

Kari, johtaja

Lähtö

tyhjä

ola.hansen@eksempel.kommune.no (ylimmän osastonjohtajan sähköpostiosoite)

joukko

tyhjä (EXISTS-haara — muokkaa mallin logiikkaa, jos tarvitset esimiehen sähköpostiosoitetta, kun se on käytettävissä)

Säädä IFEMPTYUSE/EXISTS-yhdistelmää mallisi tarkoituksen mukaiseksi; testaa se lausekkeenmuodostajassa.


Vain uusi tehtävä — viestin vastaanottaja

Synkronoinnin jälkeen lisäykset POS-02:

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

Tulostus: Uuden tehtävän yksikön esimiehen sähköpostiosoite (esimerkki: ny-leder@eksempel.kommune.no).


Automaattisen suojausryhmän nimi (asiakkaan määrittämä)

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

Tulostus: SG-IT og digitalisering-IT-100 (tarkka CLEAN-lähtösignaali voi vaihdella).


Vientikartoitus — samAccountName

[UserName]

Tulostus: kari.nordmann


Sääntökokoelma — käyttäjällä on rooli järjestelmässä

Säännön attribuuttilauseke:

[OBJECTPERMISSION.SYSTEMROLE;Name;SystemRoleId;501]

Laskettu arvo: Bruker Fagsystem X — vertailuoperaattori Er lik / jäsenyyspalvelujen tarjoajat.


Lausekkeenmuodostaja

Tuote

Yksityiskohdat

Missä

Otsikkokuvakkeiden ilmaisujen muokkausohjelma, viestipohjien muokkaimet, eräät eHub-näytöt

Toimintojen luettelo

Valitun tyypin kaikki objektikentät sekä vakiotoiminnot

Esikatselu

Valitse testikäyttäjä/osasto/ryhmä; edellyttää pääkäyttäjän oikeuksia

Säännöt

Automaatio → Sääntöjoukot — väh immäisvalvoja


Vianmääritys

Oire

Todennäköinen syy

Toiminta

Kirjaimellinen [FUNCTION...] tulostuksessa

Sisäkenttä on tyhjä tai siinä on kirjoitusvirhe

Korjaa sisäkkäisyys; tarkista objektin kenttien nimet

Lausekkeen arviointivirhe

Sisäkkäiset [ARRAYFOREACH...]

Jaa sisarkutsuiksi tai käytä [ARRAYJOIN]

Tyhjä merkkijono

Tunnusta / käyttöoikeutta ei löytynyt

Vahvista järjestelmän roolitunnus ja järjestelmätunnus järjestelmän käyttöoikeuksissa

Väärä sijainti sähköpostissa

Useita tehtäviä vaihtui kerralla

Älä luota pelkästään ARRAYDIFF- ja LASTVALUE-funktioihin

Esikatselu estetty

Rooli tai suojattu kenttä

Laajenna roolia tai yksinkertaista testilauseketta

Toimii Builderissa, mutta ei viestissä

Tapahtumavirta tarvitsee objektin historiatiedot synkronoinnista

Suorita tuonti; tarkista merkinnän tyyppi historiasta


Pikahakemisto

Luokka

Toiminnot

Päivämäärä/aika

NÅ, NOW, DATEFORMAT, DATEDIFF, DAYOFYEAR

merkkijono

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

Logiikka

IFTHENELSE, IFEMPTYUSE, EXISTS, TRANSFORM, CONTAINS

Taulukot

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

Turvallisuus

HASH, PASSWORD, UNIQUE, RND, STRRND

Haku

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

Toiminnot

ASEMA, ASEMAT, RYHMÄN ENSISIJINEN ASEMA, AKTIIVISEN ASEMAN MÄÄRÄ

Viestintä

COUNTMESSAGESENT, SYSTEMOWNER, SYNCSTEPPARAMETER, APITOKEN

HTML

HTMLLISTMEMBEROF, HTMLLISTARRAY

Lomakkeet

SYÖTÖKENTTÄ, VALINTARUUTU, PAINIKE, VALINTALISTA, VALINTAPALA, PÄIVÄMÄÄRÄKENTTÄ, ALUEKENTTÄ


Tekoälyavustajan muistiinpanot

  1. Mieluummin [DisplayName]-tyyppiset kentät ennen niiden sijoittamista funktioihin.

  2. Kysy, missä ilmaisu sijaitsee: sääntökokoelma, viesti, vienti vai asiakkaan asetukset.

  3. Korvaa näennäistunnukset (501, 2100) asiakkaan todellisen järjestelmärooli ja osasto tunnukset lähteestä järjestelmän käyttöoikeudet.

  4. Tuonnin suodatin sulkee vastaavuudet pois; synkronointivaiheen sääntöjoukko sisällyttää vastaavuudet.

  5. Tapahtumaviestien kulku edellyttää synkronointikierrokselta saatua objektien historiaa.

  6. Luo sisäkkäisiä esimerkkejä sisältä ulospäin — paitsi [ARRAYFOREACH...], joka sitoo ??? elementtiä kohden ennen kuin mallifunktiot suoritetaan.

  7. Älä tee sisäkkäisiä rakenteita [ARRAYFOREACH...]; käytä sisarkutsuja tai [ARRAYJOIN].

  8. Termit: sääntökokoelma (Regelsett), viestivirta (meldingsflyt), järjestelmän käyttöoikeus (systemtilgang), käyttöoikeus (tilgang), objektin historia (objekthistorikk).

Viimeksi päivitetty: