LDAP-Replicator RegEx
Moin zusammen,
ich habe zwar die eine oder andere Erfahrung mit RegExen aber leider wenig mit dem Inno-Replikator. Da habe ich heute schon wieder einiges gelernt und aufgefrischt, bin aber noch nicht ganz am Ziel. Das Beispiel aus dem Wiki funktioniert da auch nicht wirklich, oder ich habe es nicht korrekt angepasst:
%tel%loc=/sifi/%node=/root/:\+49.*7031.*12345-(.*)
Ok, es soll die Variable %loc mit dem String 'sifi' , %node mit 'root' und %tel mit der Nebenstelle gefüllt werden, wenn der reguläre Ausdruck zuschlägt. Da war ich leider nicht erfolgreich. Stimmt das so überhaupt noch?
Ich brauche ja hier für jeden Standort eine eigene Zeile, daher habe ich mir gedacht, dass ich die Nodes einfach wie die E.164 des Standortes nenne, aber auch da bin ich noch nicht ganz glücklich mit meiner Manipulation.
Ich bekomme die Rufnummer aus dem AD in der Form +49 (123) 4567-89, wobei die Leerzeichen nicht zuverlässig gesetzt sind.
Um den String nun nicht zu kompliziert zu machen, dachte ich mir, erst einmal die Rufnummer in ihre Ortsnetzkennzahl, die Anlagenrufnummer und die DuWa zu splitten. Das sieht wie folgt aus:
telephoneNumber -> %Tel=/\1/:\+.*-\D*(\d*)\D* telephoneNumber -> %OKz=/\1/:\+.*\((\d*)\).* telephoneNumber -> %AnlKz=/\1/:\+.*\)\D*(\d*)\D.*
Diese regulären Ausdrücke sind so relativ fehlertolerant und für meinen begrenzten Horizont ok so.
Nun will ich die in der Out-Definition zur Node machen und habe mir folgendes gedacht:
node <- '+49'%OKz%AnlKz E164 <- %Tel
Das scheint so nicht zu funktionieren. Ok, die E164 schon, aber die Node nicht. Sieht da jemand meinen Fehler oder kann mein evtl. grundsätzlich falsches Denken stoppen?
Die halbhohe Schule wäre (wenn ich es richtig verstehe) ja ein Einzeiler:
telephoneNumber -> %node=/\1/\2/\3/\4/\+)\D*(\d*)\D*\(\D*(\d*)\D*\)\D*(\d*)\D*-\D*(\d*).*
Das klappt so auch nicht, aber ich verstehe auch noch nicht so recht die Regeln für die Slash-Zeichen. Wann wird eines gebraucht, wann nicht und was machen die genau? Ich sollte ja sogar alles in eine Zeile pressen können, aber das ist für mich dann definitiver Overkill:
telephoneNumber -> %Tel=/\5/%node=/\1/\2/\3/\4/\+)\D*(\d*)\D*\(\D*(\d*)
Kann man irgendwo debuggen, wie die Variablen tatsächlich gefüllt werden? ich habe auf der debug.xml das LDAP-Log aktivert, was schon sehr hilfreich ist, aber das konnte ich trotzdem nicht im Log finden.
reguläre Grüße
Niels