Geavanceerde modus (regex-transformatie)

Pasnummer, gebruikersnaam of geboortedatum uit Microsoft aanpassen voordat ze in EduDisplay worden opgeslagen.

📋 Overzicht

Bij Microsoft Gebruikers Sync kiest u per veld welk Microsoft-veld (Entra) de UID, gebruikersnaam of geboortedatum bevat. Soms staat die waarde in Microsoft net anders dan op de pas of in Zermelo: extra tekst ervoor (prefix), extra nullen, tekst eromheen of een ander scheidingsteken.

Met Geavanceerde modus op Gebruikersbeheer → Microsoft Sync kunt u per veld een regex (zoekpatroon) en optioneel een vervanging instellen. EduDisplay past dat toe bij elke sync, voordat de waarde wordt opgeslagen.

Wanneer gebruiken?

  • • Het juiste veld is gevonden, maar de waarde moet worden ingekort, extra tekens moeten weg, of de volgorde moet anders
  • • Microsoft bevat extra tekst rond het nummer (bijv. UID:123456) en u wilt alleen de cijfers
  • • Extra nullen vooraan moeten weg, of een vaste tekst vóór het nummer (prefix) moet worden verwijderd
  • • De geboortedatum staat als tekst in een extra Microsoft-veld (extension attribute), niet in het standaard geboortedatumveld

⚙️ Werking

Regex Vervanging Wat gebeurt er
leeg Niets wijzigen (standaard)
ingevuld leeg Deel overnemen: het eerste stuk tussen haakjes (...), anders de hele gevonden tekst
ingevuld ingevuld Tekst vervangen: de gevonden tekst wordt vervangen; in de vervanging mag u $1, $2, … gebruiken voor de stukken tussen haakjes

Vindt de regex niets in de oorspronkelijke waarde, dan blijft die waarde staan. Alleen een lege bronwaarde of een lege uitkomst na de aanpassing telt als leeg. Probeer patronen eerst met de regex-test hieronder, voordat u ze opslaat.

🧪 Regex-test

Vul een voorbeeldwaarde uit Microsoft in en test uw regex. Het resultaat werkt hetzelfde als bij de echte Microsoft-sync.

Resultaat

Modus
Waarde na aanpassing
Opgeslagen in EduDisplay

🪪 UID: veelvoorkomende situaties

De UID moet hetzelfde zijn als wat de paslezer uitleest. Onderstaande voorbeelden komen regelmatig voor bij scholen en pasleveranciers.

Situatie Voorbeeld Regex Vervanging
Extra nullen vooraan weghalen 001234567812345678. Zonder extra nullen (23984729) blijft de waarde hetzelfde. ^0+(\d+)$ leeg of $1
Vaste tekst vóór het nummer verwijderen (prefix) CARD:04A1B2C3 of UID:1234567890 ^(?:CARD|UID):(.+)$ leeg
Hex-waarde met 0x ervoor (prefix) 0x04A1B2C3D4 (paslezer zonder 0x) (?i)^0x([0-9A-F]+)$ leeg
Alleen cijfers uit gemengde tekst Badge 1234567890 of Pasnr=1234567890;FAC=1 (\d{6,}) of Pasnr=(\d+) leeg
Alleen de laatste cijfers (gebouwcode + pasnummer) 1234567890123456 (pas gebruikt de laatste 8 cijfers) (\d{8})$ leeg
Scheidingsteken (komma, streepje, puntkomma) 123,4567890 (deel na de komma) ^\d+[,\-;](.+)$ leeg
Tekst ná het nummer weghalen ABCDEF01;TYPE=STUDENT ^([^;]+) leeg of $1
Hoofdletters of kleine letters abc123def versus paslezer in hoofdletters. Deze modus zet letters niet om naar hoofdletters. Pas de waarde in Microsoft aan, of test of de paslezer hoofd- en kleine letters hetzelfde behandelt.

👤 Gebruikersnaam: veelvoorkomende situaties

Standaard gebruikt EduDisplay het deel vóór de @ in het UPN/e-mailadres (UPN-fallback). Geavanceerde modus is nodig als de gebruikersnaam uit een ander attribuut komt en daar nog bewerking nodig is.

Situatie Voorbeeld Regex Vervanging
Leerlingnummer met vaste letter Entra employeeId S123456 → Zermelo 123456 ^S(\d+)$ leeg
Leading zeros op leerlingnummer Entra 0012345 → Zermelo 12345 ^0+(\d+)$ leeg
E-mail in extra Microsoft-veld (extension attribute), alleen het deel vóór @ Extension attribute [email protected] ^([^@]+)@ of ^([^@]+) leeg
Vaste tekst vóór de gebruikerscode (prefix) Entra STU-2024-1234512345 ^STU-\d+-(\d+)$ leeg
Alleen cijfers uit displayName-achtige waarde Entra Jan Jansen (123456) \((\d+)\) leeg
Substitutie: domein-suffix verwijderen Entra 12345.school.local ^(\d+)\..+$ $1

📅 Geboortedatum: veelvoorkomende situaties

Na transformatie moet de waarde parsebaar zijn als datum (YYYY-MM-DD, ISO met T, of dd-mm-jjjj). Staat de datum in Entra in een andere volgorde of met een tweecijferig jaar (14-05-20), gebruik regex + vervanging om eerst naar een ondersteund formaat te gaan.

Situatie Voorbeeld Regex Vervanging
ISO jjjj-mm-dd (werkt vaak zonder regex) Entra 2014-05-20 wordt opgeslagen als 20-05-2014. EduDisplay herkent YYYY-MM-DD direct. Alleen regex nodig als u expliciet naar dd-mm-jjjj als tussenstap wilt (zie volgende rij). leeg leeg
ISO-volgorde omzetten naar dd-mm-jjjj Entra 2014-05-20, gewenst vóór parsing: 20-05-2014 ^(\d{4})-(\d{2})-(\d{2})$ $3-$2-$1
Tweecijferig jaar (dd-mm-jj) Entra 14-05-20 (bedoeld als 14 mei 2020) → 14-05-2020. Jaar 20xx; voor geboortejaren vóór 2000: vervanging $1-$2-19$3 ^(\d{2})-(\d{2})-(\d{2})$ $1-$2-20$3
Amerikaanse volgorde mm-dd-jjjj Entra 05-20-2014 (20 mei 2014) → 20-05-2014 ^(\d{2})-(\d{2})-(\d{4})$ $2-$1-$3
Datum in vrije tekst (extension attribute) Extension attribute Geboorte: 02-07-1991 (\d{2}-\d{2}-\d{4}) leeg
ISO-datum met tijd Entra 1991-07-02T00:00:00Z ^(\d{4}-\d{2}-\d{2}) leeg
Schuine strepen naar streepjes Entra 02/07/1991 ^(\d{2})/(\d{2})/(\d{4})$ $1-$2-$3
Compact formaat yyyyMMdd Entra 19910702. Vervanging $3-$2-$1 voor dd-mm-jjjj, of $1-$2-$3 voor ISO ^(\d{4})(\d{2})(\d{2})$ $3-$2-$1
Gecombineerd veld (naam + datum) Entra Jansen;02-07-1991;Amsterdam ;(\d{2}-\d{2}-\d{4}); leeg

💡 Tips & valkuilen

  • • Begin met één testgebruiker in Entra en een handmatige sync; controleer daarna het token in Gebruikersbeheer
  • • Gebruik capture groups (...) als u een deel van de string wilt behouden
  • • Anker waar nodig met ^ en $ zodat u niet per ongeluk een verkeerd deel matcht
  • • Vervanging ondersteunt $1, $2, … (en ook Python-stijl \1, \2)
  • • In regex-placeholders gebruikt u gewoon \d, \w, … — dubbele backslashes zijn niet nodig
  • • Ongeldige regex wordt geweigerd bij opslaan; matcht de regex niet, dan blijft de bronwaarde staan
  • • Geavanceerde modus uit + opslaan wist alle regex-instellingen voor die tenant
  • • Regex geldt niet op de UPN-fallback voor gebruikersnaam — alleen op het gekozen attribuut

Regex-test op deze pagina

Gebruik de regex-test hierboven. Die gebruikt dezelfde serverlogica als de sync, zodat u het opgeslagen resultaat direct ziet.

📧 Hulp nodig?

Hulp nodig bij een specifiek patroon? contact met ons op:

[email protected]