Hallo,
ich ändere gerade ein DB, die unter anderem Private Views enthält (Shared, Private on first use). Beim Schließen der DB sollen die Priv. Views des jeweiligen Users gelöscht werden.
Dazu habe ich folgendes Script im QueryClose der DB:
Sub Queryclose(Source As Notesuidatabase, Continue As Variant)
'Script to delete privates views of the current user
On Error Goto errHandler
Dim session As New notessession
Dim db As NotesDatabase
Dim vUserName As Variant
'Get current user
Set vUserName=New notesname(session.username)
Set db = Source.database
count=0
Print "Suche private Ansichten ..."
Forall v In db.views
'Check if readers is empty
If Not Isempty(v.readers) Then
'Check if readers is current user
equality=False
For i=0 To Ubound(v.readers)
If v.readers(0)=vusername.canonical Then
equality=True
Exit For
End If
Next
If equality = True Then
'Check if view is private
If v.isPrivate Then
count=count+1
v.remove
End If
End If
End If
End Forall
If count = 0 Then
Print "Keine privaten Ansichten gefunden."
Else
If count = 1 Then
Print count & " private Ansicht gelöscht."
Else
Print count & " private Ansichten gelöscht."
End If
End If
exitScript:
Exit Sub
errHandler:
Msgbox "Es ist ein Fehler aufgetreten." & Chr(10) & Chr(10) _
& "Fehlermeldung: " & Error$ & Chr(10) _
& "Fehlernummer: " & Err & Chr(10) _
& "Codezeile: " & Erl & Chr(10) _
,64,"Error"
Resume exitScript
End Sub
Das funktioniert auch, solange eine Private View des Users existiert. Wird die DB nur geöffnet, und dann wieder geschlossen (keine Views erstellt), dann stürzt Notes ohne Meldung ab.
Auch im Debugger ist kein Fehler ersichtlich. Die Views werden korrekt geprüft aber bei der letzten verabschiedet sich der Client. Reproduzierbar!
Kann da aber leider keinen Fehler finden. Könntet ihr nicht vielleicht man gucken? :-:
Danke schonmal.
Sebastian
Hi,
danke für die Info. ;)
So ist das eben, wenn man sich alles selbst beibringen muss und noch nie eine Schulung zu diesem Thema hatte. :(
Habe die Variablen so deklariert:
Dim count As Integer
Dim equality As String
Dim i As Integer
Dann nochmal mit LN 6.51 getestet. Läuft jetzt ohne Probleme. Geht aber auch ohne die Deklaration.
Würde den Bug gerne bei IBM melden, bin aber nur über die Sparkassenorganisaton Kunde.
Gibt es eine direkte Website, wo man solche Bugs melden kann?
cu
Sebastian