Domino 9 und frühere Versionen > Entwicklung
Dokument löschen über Rollenabfrage aber bei Ausführung "Object Variable not se
Marshuhn:
Hallo,
ich möchte, das in ein bestimmter Dokumententyp nur von der Rolle "Serverloesch" gelöscht werden darf. Bei allen anderen möchte die Löschung verhindern. Ich habe das Script, welches fett unterlegt ist, aus der Notes-Hilfe übernommen. An der Stelle (Meiner Meinung nach) die fett und rot unterlegt, bekomme ich bei der Ausführung die Fehlermeldung "Object Variable not set". Ich habe das ganze Script mehrfach Buchstabe für Buchstabe überprüft. Ich habe keinen Fehler gefunden. Kann mir hier jemand auf die Sprünge helfen.
Vielen Dank schon einmal im Voraus.
Danke Marshuhn
Sub Querydocumentdelete(Source As Notesuidatabase, 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
Dim collection As NotesDocumentCollection
Set collection = source.documents
Set note=collection.getfirstdocument
If Entry.IsRoleEnabled("[Serverloesch]" ) And note.Form(0) = "LogArchiv" Then
Messagebox "Sie dürfen Dokumente löschen"
Else
Messagebox "Sie dürfen keine Dokumente löschen. ", 0, "Fehler"
End If
If note.Form(0) = "Reservation" Then
Dim doc As notesdocument
Set doc=db.createdocument
Dim feld As notesitem
Set view=db.getview("LogFile")
doc.form="LogArchiv"
Set feld=doc.appenditemvalue("ArchivFeld", note.ResourceName)
Set feld=doc.appenditemvalue("UserFeld", session.CommonUserName)
Set feld=doc.appenditemvalue("DatumvonbisFeld", note.CalendarDateTime)
Set feld=doc.appenditemvalue("RaumFeld", note.ApptUNID)
Set feld=doc.appenditemvalue("LoeschDatum", Now)
Call doc.Save(True, False)
Exit Sub
End If
While Not note Is Nothing
If note.Form(0) = "Resource" Then
Messagebox "Um eine Ressource zu löschen, müssen Sie die Aktionsschaltfläche 'Ressource löschen' im Dokument verwenden.", 0, "Fehler"
Continue = False
Exit Sub
End If
If (note.Form(0) = "SiteProfile") Then
Server=source.database.server
note.server=server
RoomLookup=Evaluate (|@IsError(@DbLookup("":"NoCache";Server:"names.nsf";"($Rooms)";Site;1))|, note)
ResourceLookup=Evaluate (|@IsNotMember(Site;@DbColumn("":"NoCache";Server:"names.nsf";"($Resources)";2))|, note)
If(RoomLookup(0) = 0 Or ResourceLookup(0) = 0) Then
Messagebox "Dieses Standortprofil kann nicht gelöscht werden, da im Adreßbuch noch Ressourcen auf den Standort verweisen. Sie müssen zuerst diese Ressourcen löschen. Verwenden Sie dazu die Aktionsschaltfläche 'Ressource löschen' in den Ressource-Dokumenten.", 0, "Fehler"
Continue = False
Exit Sub
End If
End If
Set note=collection.getnextdocument(note)
Wend
Set w=New NotesUIWorkspace
End Sub
Driri:
Das Objekt Entry ist leer, klar daß da die Fehlermeldung kommt. Du mußt Entry erstmal etwas zuweisen.
z.B. so :
Set entry = acl.GetEntry( session.CommonUserName )
Marshuhn:
Hallo,
ich hatte gearde beim nochmaigen Ansehen auch bemerkt, dass ich diese Zeile vergessen hatte HIER anzugeben. Diese Zeile ist aber im Script enthalten. Trotzdem erhalte ich diese Meldung. Gibt es da noch einen Tipp, woran es liegen könnte.
Gruß + Danke
Marshuhn
Semeaphoros:
Hast Du die Sache schon mal mit dem Debugger angeschaut?
Marshuhn:
Wenn ich den Debugger laufen lasse, dann erhalte ich sofort die Meldung (bekannt), danach erhalte ich im Debugger das Bild (kopiert in das angehängte Word Dokument) wo er beim Objekt "Raumreservierung (Datenbank-Script) und beim Ereignis "Querydocumentdelete") anzeigt. Leider hilft mir das nicht weiter.
Es handelt sich bei dieser Datenbank um die Raumreservierung von Lotus Notes.
Als Designer setze ich die Version 5.0.9 ein.
Weiter komme ich damit leider immer noch nicht.
Gruß
Marshuhn
Navigation
[0] Themen-Index
[#] Nächste Seite
Zur normalen Ansicht wechseln