In principe is het vergelijken van de persoon- en de accountgegevens niet ingewikkeld, zoals volgende diagram laat zien.
De grootte van het gebied heeft in dit diagram uiteraard geen betekenis. In de praktijk is de intersectie 'regulier/update' (hopelijk) het grootst.
Bekijk de inhoud van de tabellen NCREATE, NDELETE en NUPDATE
Start update op
Bekijk bovenstaande tabellen nog eens
CUG vergelijkt de eerder geïmporteerde gegevens met elkaar. Het resultaat van deze vergelijking wordt in de N-tabellen opgeslagen. In de demo wordt bij de eerste keer dat update wordt gebruikt voor alle personen een regel aangemaakt in NCREATE.
Alle personen zijn nu gekoppeld aan een nds-user, alle nds-users waar geen persoon bij is gevonden zijn gekopieerd naar NDELETE. Alleen wijzigingen rechtstreeks op de database kunnen nog verandering brengen in de data waarop straks rapporten worden aangemaakt.
Bij het aanmaken van nieuwe userid's worden een paar regels gehanteerd:
De context voor een nieuwe user wordt bepaald door de groep/afdeling/ptree waar de bijbehorende persoon in thuis hoort (zie SysGroepContainer)
De userid is uniek ten opzichte van de nds-export en de overige userid's in NCREATE
Bovenstaande regels behoren tot de specificatie van CUG. De volgende regels zijn aan te passen.
Een userid wordt gevormd uit de beginletter(s) van de voornaam, de beginletter(s) van het tussenvoegsel en de letters van de achternaam
Een userid heeft ten hoogste een lengte van 10 tekens
Het wachtwoord heeft altijd een lengte van 7 tekens
De instellingen voor de demo staan als volgt in het bestand run/createparams.properties[3]
cug_passwordLen=7 cug_idMaxLen=10 cug_idPattern=F+I+L*
Het instellen van de lengte van het wachtwoord en de userid is zo eenvoudig als het eruit ziet.
De opmerking dat een erg kort userid bij een grote groep gebruikers tot problemen kan leiden is bijna overbodig. In het extreme geval: 100 gebruikers met dezelfde achternaam en dezelfde voorletter (bv in een familie stamboom) en een id-lengte van 2, zul je zeker vastlopen.
Zet cug_idMaxLen eventueel op 0 om geen maximumlengte te gebruiken. In dat geval verschijnen alleen cijfers in de userid als meer personen en dezelfde voorletters en dezelfde achternaam hebben.
De waarde bij de sleutel 'cug_idPattern' is een weergave van regels bij het aanmaken van userid's gebaseerd op persoonsnamen. Door hier in te variëren wordt de werking snel duidelijk. De betekenis van de verschillende tekens is als volgt:
'F' staat voor: 1 letter uit de voornaam (first name)
'I' staat voor: 1 letter uit het tussenvoegsel (infix)
'L' staat voor: 1 letter uit de achternaam (lastname)
'+' : alle beginletters uit de naam aangeduid met de letter uit het teken voor de '+'
'*' : alle letters uit de naam aangeduid met de letter uit het teken voor dit '*'
Elk ander teken in 'cug_idPattern' wordt onveranderd (lowercase) meegenomen in de userid.
Bijvoorbeeld: voornaam: 'Jean-Paul'; tussenvoegsel 'van der'; achternaam 'Sterren'
F+I+L* => jpvdsterren
F*I+L* => jeanpaulvdsterren
LLLLFF => sterje
LLXLFF => stxeje
Merk op dat in de laatste twee voorbeelden (geen gebruik van '+' of '*') cug_idMaxLen minder belangrijk wordt. Hooguit als de volgnummers erg hoog oplopen ('sterje115' ed).