Vertreterauswahl auf OU einschränken
Moderator: hdroege
Vertreterauswahl auf OU einschränken
Hallo zusammen,
wir haben kürzlich beschlossen, dass der Kunde in seinem Profil im Self Service Portal seinen Stellvertreter auswählen soll. Das dafür vorgesehene Feld heißt im objectpicker "SPSUserClassBase.ProxyPerson".
Will der Kunde seinen Stellvertreter auswählen bekommt er aber eine Auswahl an allen im System befindlichen User. Es wird also keine Beschränkung auf seine OU gemacht (es gibt viele verschiedene Kunden mit verschiedenen OU´s bei uns im System).
Im Layoutdesigner gibt es in diesem Feld nun die Möglichkeit einen Filterausdruck zu hinterlegen. In dem String der UserClassBase gibt es aber keinen String der auf die OU geht. Ich habe nur das Feld "Company" gefunden.
Ich stocke daher nun wie ich eine Einschränkung auf die OU machen kann. Jeder Kunde soll in seinem Profil nur einen Stellvertreter auswählen können der auch tatsächlich zu seiner OU gehört.
Hat jemand eine Idee wie man den Filterausdruck nennen könnte?
LG
wir haben kürzlich beschlossen, dass der Kunde in seinem Profil im Self Service Portal seinen Stellvertreter auswählen soll. Das dafür vorgesehene Feld heißt im objectpicker "SPSUserClassBase.ProxyPerson".
Will der Kunde seinen Stellvertreter auswählen bekommt er aber eine Auswahl an allen im System befindlichen User. Es wird also keine Beschränkung auf seine OU gemacht (es gibt viele verschiedene Kunden mit verschiedenen OU´s bei uns im System).
Im Layoutdesigner gibt es in diesem Feld nun die Möglichkeit einen Filterausdruck zu hinterlegen. In dem String der UserClassBase gibt es aber keinen String der auf die OU geht. Ich habe nur das Feld "Company" gefunden.
Ich stocke daher nun wie ich eine Einschränkung auf die OU machen kann. Jeder Kunde soll in seinem Profil nur einen Stellvertreter auswählen können der auch tatsächlich zu seiner OU gehört.
Hat jemand eine Idee wie man den Filterausdruck nennen könnte?
LG
Re: Vertreterauswahl auf OU einschränken
Die OU befindet sich nicht in der SPSUserClassBase, sondern in der SPSCommonClassBase. Das Attribut heisst OU und ist eine Relation zur SPSOrgUnitClassBase.
Der Filter erwartet einen ASQL Ausdruck, der in Abhängigkeit des Currentuser erstellt werden muss.
Vorgehensweise (EDIT: bis Version 12.0.3. Ab 12.0.3. muss man anders vorgehen > siehe weiter unten die nächsten Beiträge ab 13:01):
SCHRITT 1 NEUE Context Variable anlegen
- Context-Variable anlegen vom Typ "String", z.B. "FilterProxyPerson".
- Geh in den Erweiterer Modus
- mit + Hinzufügen sucht man die SPSUserType.SPSCommonClassBase.OU raus. Es wird automatisch ein Variablennamen vergeben, z.B. oU.
- Skript (Achtung der Varaiblennamen ist CaseSensitiv - Schreibweise im Namen und im Script MÜSSEN identisch sein:
$value= $format ("T(SPSCommonClassBase).OU='"+ oU.$value+"'");
return $value;
- Speichern
SCHRITT 2 Filter zuweisen
- Attribut ProxyPerson auswählen und bei Filterausdruck die angelegte Context-Variable auswählen.
Der Filter erwartet einen ASQL Ausdruck, der in Abhängigkeit des Currentuser erstellt werden muss.
Vorgehensweise (EDIT: bis Version 12.0.3. Ab 12.0.3. muss man anders vorgehen > siehe weiter unten die nächsten Beiträge ab 13:01):
SCHRITT 1 NEUE Context Variable anlegen
- Context-Variable anlegen vom Typ "String", z.B. "FilterProxyPerson".
- Geh in den Erweiterer Modus
- mit + Hinzufügen sucht man die SPSUserType.SPSCommonClassBase.OU raus. Es wird automatisch ein Variablennamen vergeben, z.B. oU.
- Skript (Achtung der Varaiblennamen ist CaseSensitiv - Schreibweise im Namen und im Script MÜSSEN identisch sein:
$value= $format ("T(SPSCommonClassBase).OU='"+ oU.$value+"'");
return $value;
- Speichern
SCHRITT 2 Filter zuweisen
- Attribut ProxyPerson auswählen und bei Filterausdruck die angelegte Context-Variable auswählen.
Last edited by MF_NSc on 26. Feb 2024, 08:46, edited 3 times in total.
Re: Vertreterauswahl auf OU einschränken
Hallo lieben Dank dir für die schnelle Antwort!
Ich hab das jetzt genau so gemacht. Die Context Variable habe ich in der "SPSUserClassBase.ProxyPerson" angelegt (hoffe das meintest du). Nach dem Speichern bin ich ins Attribut ProxyPerson und wollte im Filterausdruck die Variable auswählen, dort kann man allerdings nur eine Filter-Expression "schreiben". Eine Variable "auswählen" kann ich nicht. Mache ich etwas falsch?
Ich hab das jetzt genau so gemacht. Die Context Variable habe ich in der "SPSUserClassBase.ProxyPerson" angelegt (hoffe das meintest du). Nach dem Speichern bin ich ins Attribut ProxyPerson und wollte im Filterausdruck die Variable auswählen, dort kann man allerdings nur eine Filter-Expression "schreiben". Eine Variable "auswählen" kann ich nicht. Mache ich etwas falsch?
Re: Vertreterauswahl auf OU einschränken
Nein, die Context wird bei "Context" angelegt, nicht innerhalb der SPSUserClassBase > bei den Datenquellen ganz nach unten scrollen, da gibts den Bereich "Context". Bei mir heisst es hier halt "CheckOU"
Bei Klick auf das Attribut und Filter geht normalerweise der Bereich aus wo man aus "Modell", "Lokalisierbar" oder "Statisch" auswählen kann. Bei Modell such ich mir dann die zuvor angelegte Context einfach aus.
Bei Klick auf das Attribut und Filter geht normalerweise der Bereich aus wo man aus "Modell", "Lokalisierbar" oder "Statisch" auswählen kann. Bei Modell such ich mir dann die zuvor angelegte Context einfach aus.
Re: Vertreterauswahl auf OU einschränken
Mein Fehler, war an ganz anderer Stelle....
Ich hab den String jetzt unter "Object" einfach erstellt und dann genau so wie du beschrieben hast den Ausdruck in den Erweiterer Modus geschoben.. so weit so gut.
Allerdings kann ich dann, wenn ich nochmal in den objektwähler gehe und damit in das Attribut selbst, kein Modell im Filterausdruck auswählen. Also er öffnet mir das Fenster gar nicht komischerweise. Hoffe man kann es etwas erkennen. Man klickt rein und sieht nur seinen blinkenden Cursor. Wenn ich allerdings ein Feld drüber auf "Erlaubte Typen" gehe da blendet er das Feld ein. Gibt mir aber im Anschluss dann nicht das gewünschte Ergebnis.
Vielen lieben Dank dir schonmal für die Hilfe
Ich hab den String jetzt unter "Object" einfach erstellt und dann genau so wie du beschrieben hast den Ausdruck in den Erweiterer Modus geschoben.. so weit so gut.
Allerdings kann ich dann, wenn ich nochmal in den objektwähler gehe und damit in das Attribut selbst, kein Modell im Filterausdruck auswählen. Also er öffnet mir das Fenster gar nicht komischerweise. Hoffe man kann es etwas erkennen. Man klickt rein und sieht nur seinen blinkenden Cursor. Wenn ich allerdings ein Feld drüber auf "Erlaubte Typen" gehe da blendet er das Feld ein. Gibt mir aber im Anschluss dann nicht das gewünschte Ergebnis.
Vielen lieben Dank dir schonmal für die Hilfe
Last edited by Johnny on 23. Feb 2024, 12:32, edited 1 time in total.
Re: Vertreterauswahl auf OU einschränken
hmmm... ich denke der Fehler liegt im angelegten String, dass dieser bei mir unter "Object" liegt und nicht frei als eigener Stringtype..
aber sehe keine Möglichkeit da einen "freiliegend" hinzuzufügen. Ich hoffe du verstehst was ich meine.
Wenn ich unter "Object" gehe kann ich "Eigenschaft hinzufügen" auswählen. Ansonsten sehe ich nicht wie..
aber sehe keine Möglichkeit da einen "freiliegend" hinzuzufügen. Ich hoffe du verstehst was ich meine.
Wenn ich unter "Object" gehe kann ich "Eigenschaft hinzufügen" auswählen. Ansonsten sehe ich nicht wie..
Re: Vertreterauswahl auf OU einschränken
Einfach auf "Context" klicken und dann unten Eigenschaft hinzufügen. Beim Anlegen kannst Du den Typ mitgeben.
Warum bei Dir keine Auswahl aus den Modellen zu Verfügung steht kann ich nicht sagen - ich kenn das nicht anders schon seit x Versionen. Welche Version setzt Du ein?
Warum bei Dir keine Auswahl aus den Modellen zu Verfügung steht kann ich nicht sagen - ich kenn das nicht anders schon seit x Versionen. Welche Version setzt Du ein?
Re: Vertreterauswahl auf OU einschränken
besten Dank.. hat geklappt.
aber mich den Context dann im Filter auswählen lässt er nicht zu. Du hast recht, es liegt an der Version. Wir haben die 12.0.3. Habe den Hilfeartikel dazu gefunden, da steht es auch drinF
https://help.matrix42.com/030_DWP/010_S ... Expression
Unter dem Absatz "Declare Parameters" denke ich könnte man den dann hinzufügen.
Kann es sein dass es dann heißt > @{context.OU}:{string}?
aber mich den Context dann im Filter auswählen lässt er nicht zu. Du hast recht, es liegt an der Version. Wir haben die 12.0.3. Habe den Hilfeartikel dazu gefunden, da steht es auch drinF
https://help.matrix42.com/030_DWP/010_S ... Expression
Unter dem Absatz "Declare Parameters" denke ich könnte man den dann hinzufügen.
Kann es sein dass es dann heißt > @{context.OU}:{string}?
Re: Vertreterauswahl auf OU einschränken
Ah...die Änderungen in 12.0.3. hatte ich vorhin nicht auf dem Schirm. Ja, dann mit der neuen Logik bauen.
Hab keine Testumgebung aktuell mit 12.0.3., aber ungefähr so
Filter Expression: T(SPSCommonClassBase).OU=@UserOU:guid
Und beim Parameter, der dann eingefügt wird: die SPSUserType>SPSCommonClassBase>OU auswählen
Hab keine Testumgebung aktuell mit 12.0.3., aber ungefähr so
Filter Expression: T(SPSCommonClassBase).OU=@UserOU:guid
Und beim Parameter, der dann eingefügt wird: die SPSUserType>SPSCommonClassBase>OU auswählen
Re: Vertreterauswahl auf OU einschränken
jouuuu.. jetzt hat das geklappt!!!
besten Dank dir!!
..d.h. wir hätten uns eigentlich die Context Variable mit dem String sparen können richtig? (was jetzt weniger schlimm ist )
besten Dank dir!!
..d.h. wir hätten uns eigentlich die Context Variable mit dem String sparen können richtig? (was jetzt weniger schlimm ist )
Who is online
Users browsing this forum: Ahrefs [Bot] and 3 guests