Das Notes Forum
Domino 9 und frühere Versionen => ND6: Entwicklung => Thema gestartet von: Colli am 27.04.06 - 14:04:50
-
Hallo,
gibt es irgendwelche Einschränkungen wie man Rollenbezeichnungen vergeben kann?
Ich habe bearbeitbare/berechnete Felder und je nach dem wer gerade angemeldet ist und zu welcher Rolle gehört, dürfen verschiedene Felder nur gelesen oder bearbeitet werden.
Der Befehl in der Hide-When-Formel eines bearbeitbaren Feldes geht, wenn ich die Rolle Stammdaten habe, auch wenn ich IKS bin, aber bei EditAll geht es nicht.
!@IsMember(@UserRoles;"[EditAll]":"[Stammdaten]":"[IKS]")
Kann es an der Schreibweise liegen?
-
@IsMember geht in dem Fall nicht, wenn es reicht, dass der Anwender nur EINE Rolle hat.
Dann so:
@Keywords(@UserRoles;"[EditAll]":"[Stammdaten]":"[IKS]") = ""
Andreas
-
ich dacht IsMember überprüft ob der angemeldete User über eine dieser Rollen verfügt?!
ich versuche es mal wie du sagst
-
siehe Hilfe:
If both parameters are lists, returns 1 if all elements of textListValue1 are contained in textListValue2
-
Nochmal zum mitschreiben. Mit @keywords bekomme ich die schnittmenge von zwei listen und das ergebnis ist eventuell wieder ne liste, die ich dann auf leer oder nicht leer prüfe?!
Formel für bearbeitbares Feld:
@Keywords(@UserRoles;"[EditAll]":"[Stammdaten]":"[IKS]") != ""
Formel für berechnetes Feld:
@Keywords(@UserRoles;"[EditAll]":"[Stammdaten]":"[IKS]") = ""
-
Mit @keywords bekomme ich die schnittmenge von zwei listen und das ergebnis ist eventuell wieder ne liste, die ich dann auf leer oder nicht leer pr�fe?!
Formel f�r bearbeitbares Feld:
@Keywords(@UserRoles;"[EditAll]":"[Stammdaten]":"[IKS]") != ""
Formel f�r berechnetes Feld:
@Keywords(@UserRoles;"[EditAll]":"[Stammdaten]":"[IKS]") = ""
3x JA
Andreas
-
klingt ja toll, aber es geht nicht
ich gehöre beispielsweise nur der Rolle "ABC" an, dürfte also die Felder, die ich mit
@Keywords(@UserRoles;"[EditAll]":"[Stammdaten]":"[IKS]") != ""
versehen habe, nicht bearbeiten können, kann ich aber
und nu?
-
Die Hide when Formeln umdrehen, denn die sollen ja True sein, wenn es versteckt sein soll.
Für das bearbeitbare Feld:
Verbergen wenn folg. Formel wahr ist:
@Keywords(@UserRoles;"[EditAll]":"[Stammdaten]":"[IKS]") = ""
Für das berechnete Feld:
Verbergen wenn folg. Formel wahr ist:
@Keywords(@UserRoles;"[EditAll]":"[Stammdaten]":"[IKS]") != ""
Andreas
-
Das funktioniert genausowenig wie mit @IsMember. Ich glaub ich muss Feierabend machen! ;) Es haut nix hin! :(
Hat noch jemand eine Idee?
So geht es nicht:
!@IsMember(@UserRoles;"[EditAll]":"[Stammdaten]":"[IKS]")
und so auch nicht:
@Keywords(@UserRoles;"[EditAll]":"[Stammdaten]":"[IKS]") = ""
-
Nächster Versuch: Was passiert denn bei folgender Konstellation...
@IsNotMember("[EditAll]";@UserRoles) |
@IsNotMember("[IKS]";@UserRoles) |
@IsNotMember("[Stammdaten]";@UserRoles)
???
-
Wenn schon, müsste es AND statt OR heissen - es reicht ja, wenn eine Bedingung NICHT stimmt, um die ganze Aussage hinfällig werden zu lassen.
Ich denke aber, die Lösung kann nicht sein, den platten Reifen woanders aufzuziehen und dann zu schauen, ob der "Fehler" immer noch auftritt.
@Keywords liefert die Schnittmenge zurück. Der Hund muss woanders liegen.
Bernhard
-
Der Hund muss woanders liegen.
Bernhard
Du meinst also, dass meine Versuche generell hätten klappen müssen.
Also muss der Fehler ganz woanders liegen?!
Idee?
-
Mit @IsMember: Nein. Wie Andreas das schon ausgeführt hat. @IsMember würde nur funktionieren, wenn Du nur eine einzige Rolle hättest (und so kurzsichtig darf man ja nicht programmieren).
Mit @Keywords: Ja. Beachtest Du, dass @Keywords case sensitive arbeitet?
Bernhard
-
Ja, auf die Schreibweise hab ich geachtet.
-
Mal ein paar simple Fragen (nur, um das auszuschliessen):
Siehst Du eigentlich beide Felder (das editable und das cfd-Feld)?
Arbeitest Du lokal und dann ohne konsistente ACL?
Hast Du Dir in einem temp. Feld das Resultat von @Keywords mal anzeigen lassen?
Bernhard
-
Ich habe eben mal auf die Schnelle nebenbei das mit @Keywords getestet und ein für mich unerwartetes Ergebnis erhalten. Es wird nicht die Schnittmenge geliefert, sondern gar nix :o
Bug oder Feature? Oder Problem vor dem Bildschirm ;D
-
Interessant. Bei mir klappt es. Hast Du direkt in einer Hide-when-Formel getestet? Das habe ich nämlich noch nicht ...
Bernhard
-
Ich erfasse diese Formel direkt in die Eigenschaften des Feldes "Absatz verbergen, wenn ..."
Die Rollen teste ich nicht lokal.
@Keywords(@UserRoles;"[EditAll]":"[Stammdaten]") = "" (bearbeitbar)
@Keywords(@UserRoles;"[EditAll]":"[Stammdaten]") != "" (berechnet)
Wenn ich die Rolle "EditAll" habe, dann sehe ich in diesem Fall das berechnete Feld, also kann ich den Inhalt nicht ändern, wie es eigentlich sein soll.
-
Ich hab ein temp-Feld angelegt und folgende Formel eingegeben:
@If(@Keywords(@UserRoles;"[Stammdaten]":"[EditAll]")!="";"jawohl";"nö") ergibt nö
@If(@Keywords(@UserRoles;"[Stammdaten]":"[EditAll]")="";"jawohl";"nö") ergibt jawohl
Ich hab die entsprechende Rolle. Scheint so, als ob die resultierende Menge immer leer ist.
Ich weiß nicht weiter ...
-
Ich habe mal ein bisschen probiert.
Das Ergebnis: @Keywords lässt sich in Verbindung mit @UserRoles nicht nutzen. Es sei denn, man entfernt die eckigen Klammern. Daran stört sich sich Funktion nämlich.
@Keywords("Stammdaten"; "Stammdaten":"EditAll") -> Stammdaten
@Keywords("[Stammdaten]"; "[Stammdaten]":"[EditAll]") -> leer
Axel
-
Und warum das so ist, sagt die Hilfe:
Wenn Sie kein Trennzeichen angeben, werden folgende Trennzeichen verwendet:
?. ,!;:[](){}"<> (Fragezeichen, Punkt, Leerzeichen, Komma, Ausrufezeichen, Semikolon, Doppelpunkt, eckige Klammern, runde Klammern, geschweifte Klammern, Anführungszeichen und spitze Klammern).
Ein "leeres" Trennzeichen, dargestellt durch eine leere Zeichenfolge (""), weist die Funktion an, keine Trennzeichen zu verwenden.
D.h. ein
@Keywords(@UserRoles;"[EditAll]":"[Stammdaten]";"")
sollte gehen.
... und es geht wie ich gerade probiert habe.
Andreas
-
Versuch's mal so:
@Keywords(@ReplaceSubstring(@UserRoles ; "[": "]" ; ""); "Stammdaten" : "EditAll")
Axel
-
D.h. ein
@Keywords(@UserRoles;"[EditAll]":"[Stammdaten]";"")
Das funktioniert auch.
Axel
-
@all
Vielen, vielen Dank. Ich hätte jetzt doch fast aufgegeben.
Wo kann man solche Feinheiten eigentlich nachlesen?
-
Wo kann man solche Feinheiten eigentlich nachlesen?
Andreas hat es schon weiter ober geschrieben: in der Hilfe, sprich Online-Hilfe des Designer-Clients.
Axel