Hi,
gibts es in Lotus script ein pendant du @userrole???
@userrole
- FrankEisenhauer
- Erledigt
-
-
Nein leider nicht. Dafür muss man dann entweder die Einträge parsen oder eben Formelsprache verwenden
-
die Methode 'Roles' der Klasse NotesACL Entry ?
:-?
oder verstehe ich die Frage falsch?
-
-
macro$ = |@Userroles|
ret = evaluate(macro$)bzw.
macro$ = |@Contains(@Userroles;"[Rolle]")|
ret = evaluate(macro$)das sollte eigentlich schon reichen ...
-
Hi,
danke für die antworten, glaube mit evaluate kann ich was anfangenich verzweifele gerade an einer andern Sache mit @Userrole.
Ich habe in einer Aktion folgende Formel aufgenommen um die Aktion auszublenden:
@isnotmember("[Rolle]";@userroles)
Die Aktion wird mir aber immer angezeigt. Hab schon alle möglichen Varianten probiert, aber komme nicht weiter.
Die Aktion soll nicht angezeigt werden, wenn nicht eine bestimmte Rolle dem User zugewiesen wurde.
Hoffe ihr könnt mir hier auch helfen?
-
Die konsistente ACL ist aber schon eingeschaltet? Sonst wirds schwer.
-
Ich habe spaßeshalber in ein Dokument ein berechnetes Feld aufgenommen, dort ist nur "@userroles" als Formel eingetragen.
Dort erscheint mir die zugeordnete Rolle. Nur die Formel in dem Dialog der Aktion will nicht funktionieren.
-
Wie vergleiche ich die Werte aus @userroles am besten?
Habe hier im Forum jetzt schon @contains und @ismember gesehen.
@contains ist doch für textvergleiche und @ismember für textlisten oder?????
-
Schon mal in die Designer Hilfe zu @Userroles geschaut ?
Da hast du genau das Beispiel das du brauchst:Zitat
Diese Teilmaskenformel wählt verschiedene Teilmasken, abhängig davon, ob der Benutzer mit einem Web-Client oder mit Notes arbeitet. Die Rolle WebClient wird von Lotus Notes/Domino automatisch erstellt. Bei dieser Rolle sind die eckigen Klammern nicht erforderlich, dem Rollennamen müssen aber zwei Dollarzeichen vorangestellt werden.
@If(@IsMember("$$WebClient"; @UserRoles); "WebSubform"; "NotesSubform")Musst du nur noch auf deine Zwecke anpassen
-
Ja in der Hilfe hab ich auch schon nachgesehen, ich hab das Beipiel von dort auch angepasst, aber es will einfach nicht funktionieren. Die Aktion wird mir immer angezeigt!
-
Wie genau sieht deine Formel aus und wo genau ist sie eingetragen ?
-
Also ich ahbe die Formel in den Eigenschaften der Aktion bei "Verstecke wenn Formel wahr ist" eingetragen.
Formel sieht so aus:
@lowercase(Datenfeld) = "produktion" & @isnotmember("[Rolle]"; @userroles)
Hab auch die einzelnen Formeln einzeln probiert. Der Stringvergleich funktioniert, aber sowie ich die Rollenabfrage dazu nehme wird mir die Aktion immer angezeigt, genauso wenn ich den Rolenabgleich allein in das Formelfeld eintrage.
-
Also mit deiner Formel funktioniert es bei mir einwandfrei.
Liegt die datenbank lokal und hat keine konsistente ACL aktiviert ?
Was wird angezeigt wenn du die DB offen hast und unten in der Statusleiste auf das Sicherheitsfeld klickst (direkt links neben den Arbeitsumgebungen) ? Wird dort die Rolle nicht angezeigt ?
-
und wenn du @userroles vorher in eine Liste übergibst?
also:
liste := @userroles;@isnotmember("[Rolle]"; liste)
-
-
Wenn ich Aktionen/Text usw. vor "falschen Usern" verbergen will, verwende ich immer
!@Contains(@UserRoles ; "[Rolle]" )
und schon sehen die es nicht mehr.
Ich kann es auch prima verketten uns mehrfach-Bedingungen erzeugen:
!@Contains(@UserRoles ; "[Rolle1]":"[Rolle2]":"[Rolle3]" )
-
Hallo zusammen,
ich habe die Formel jetzt folgendermaßen umgebaut:"@IF(@lowercase(Datenfeld) = "produktion" & @ismember("[Rolle]"; @userroles);0;1)"
Mit dieser Formel funktioniert jetzt auch alles einwandfrei.
Bin noch Anfänger was Notes Programmierung angeht und Notes ist da teilweise schon recht komplex bzw. eigen
Aber vielen Dank für eure Hilfe!!!!!!
Ist echt ein super Forum hier! -
Ich habe gerade was sehr nettes im atnotes Forum gefunden:
Seit R6 gibt es für @UserRoles eine Entsprechung in Script:
roles = notesDatabase.QueryAccessRoles( name$ )
Die funktion freut mit Sicherheit den ein oder anderen, der genauso wie ich auf der Suche nach dem @userroles Pendant in Lotus Script war