Domino 9 und frühere Versionen > Entwicklung
variant does not contain object
lio:
Hallo Leute,
ich verstehe nicht, warum er mir immer die Fehlermeldung:
varian does not contain object
anzeigt.
Folgendes Script ist (leicht abgewandelt) aus der Hilfe Datei von Notes. Es "liegt" im Ereignis Queryopen einer Maske.
Dim workspace As New NotesUIWorkspace
Dim session As New NotesSession
Dim uidoc As NotesUIDocument
Dim acl As NotesACL
Dim entry As NotesACLEntry
Set db = session.CurrentDatabase
Set acl = db.ACL
Set entry = acl.GetEntry( session.CommonUserName )
If entry.IsRoleEnabled( "[BWA]" ) = True Then End
lio ??? :D
motte:
Hallo lio,
wenn ich Dich richtig verstanden habe, willst Du das Öffnen des Dokumentes nicht zulassen, wenn der Benutzer nicht eine Bestimmte Rolle hat?
Versuchs mal hiermit:
Sub Queryopen(Source As Notesuidocument, Mode As Integer, Isnewdoc As Variant, Continue As Variant)
Dim session As New NotesSession
Dim db As NotesDatabase
Dim acl As NotesACL
Dim entry As NotesACLEntry
Set db = session.CurrentDatabase
Set acl = db.ACL
Set entry = acl.GetEntry( session.Username )
If entry.IsRoleEnabled("[BWA]" ) Then
continue = True ' es geht weiter
Else
continue = False ' query open wird abgebrochen
End If
End Sub
Ich hoffe es klappt!
lio:
Hi Motte,
erstmal danke für Deine Mühe. Ich habe Dein Script mal ausprobiert und es kam folgende Meldung:
Object Variable not set
Ich kann mir das einfach nicht erklären, wo das Problem in diesem Fall ist????
Lio :P
Axel:
Hi,
um zu prüfen, ob für den angemeldeten User eine bestimme Rolle gesetzt ist, habe ich mal folgende Funktion geschrieben.
Obige Methode über die ACL hat den Nachteil, dass Rollen, die für eine Gruppe gesetzt wurden, in denen der User enthalten ist nicht erkannt werden. Mit der Funktion hier, werden auch diese erkannt.
--- Zitat ---
%REM
===================================================================
Funktion: RoleEnabled
---------------------------------------------------------------------------------------------------------------------------------------
Beschreibung :
Diese Funktion prüft ob eine bestimmte Rolle einem User zugeordnet ist. Funktioniert
auch wenn die Rolle einer Gruppe zugeordnet ist, in der der User Mitglied ist.
----------------------------------------------------------------------------------------------------------------------------------------
Parameter und Rückgabe:
Parameter:
Bezeichnung Typ Beschreibung
sRole String Name der Rolle
Rückgabe:
True (1) wenn Rolle gesetzt, sonst False
----------------------------------------------------------------------------------------------------------------------------------------
Benötigte Routinen und Bibliotheken:
Routine Bibliothek
----------------------------------------------------------------------------------------------------------------------------------------
Erstellt am 01.02.2001 durch Axel Matthies
----------------------------------------------------------------------------------------------------------------------------------------
Letzte Änderung am:
===================================================================
%END REM
Function RoleEnabled(sRole As String) As Integer
Dim vResult As Variant
vResult = Evaluate(|@IsMember("| & sRole & |"; @UserRoles)|)
If vResult(0) = 1 Then
RoleEnabled = 1
Else
RoleEnabled = 0
End If 'If vResult(0) = 1
End Function
--- Ende Zitat ---
Beispiel-Aufruf:
If RoleEnabled("[Administration]") Then
'Rolle gesetzt
Else
'Rolle nicht gesetzt
End If
Ich hoffe das hilft Dir weiter.
Axel
Meff:
Hi lio,
welche Berechtigung hast Du den auf die DB ?
Meff ;)
Navigation
[0] Themen-Index
[#] Nächste Seite
Zur normalen Ansicht wechseln