Hallo Leute...
Auch wenn mich jetzt einige von euch steinigen werden...ich habe hier das erste Mal ein Script mit Fehlerbehandlung und gleich taucht ein Problem auf das ich nicht verstehe.
Es geht darum, dass im Rahmen unserer Migration auf die Version 6.5.1 jemandem aufgefallen ist, dass evtl. vorhandene private Ordner, die mit 4.6 erstellt wurden, beim Design-Update gelöscht werden.
Also habe ich mir im Forum ein Script gemopst und es mir ein wenig zurechtgebogen.
Nun haben wir aber ein paar Mail-DBen, in denen zwar jeder lesen kann, aber nicht ändern darf (dort werden Newsletter etc. abgelegt).
Da ja nicht jeder User das Recht hat dort das Design zu ändern, läuft Notes auf einen Fehler...so weit so gut...es wird eine Mail mit einer Meldung generiert und in eine Mail-In-DB geschickt.
Doch obwohl im ErrorHandler eindeutig steht dass er dann zum Punkt ErrorExit gehen soll (dort steht ja nur ExitSub drin), verschickt er auch die Meldung dass die Ordner geschützt wurden.
Ich versuche zu verstehen warum das Script so läuft..mir fällt keine Lösung ein.
Hat jemand zufällig eine Idee???
Danke schon jetzt...
Gruß
LuckyMan
So sieht der Code aus:
Im PostOpen-Event der DB:
Dim s As New notessession
Dim w As New notesuiworkspace
Dim doc As notesdocument
Dim db As notesdatabase
Dim Template As String
Dim proDoc As NotesDocument
Dim ord As String
On Error Goto ErrorHandler
Set db=s.currentdatabase
Template = db.DesignTemplateName
ViewCount=0
FolderCount=0
ProtectCount=0
Set proDoc = db.GetProfileDocument("CalendarProfile")
ord = proDoc.Ordner(0)
If Not ord = "1" Then
Forall view In db.views
ViewCount=ViewCount+1
viewUNID = view.universalid
Set doc = db.getdocumentbyUNID(view.universalID)
TitleString = doc.getitemvalue("$Title")
If Instr(1,TitleString(0),"$",0)<>1 And Instr(1,TitleString(0),"(",0)<>1 Then
Flags = doc.getitemvalue("$Flags")
FolderFlag = Instr(1,Flags(0),"F",0)
If (Not Isnull(FolderFlag) And FolderFlag<>0 And Instr(1,Flags(0),"p",0)=0) Then
FolderCount=FolderCount+1
If Instr(1,Flags(0),"P",0)=0 Then
ProtectCount=ProtectCount+1
AddCapitalP = Flags(0) & "P"
Call doc.replaceitemvalue("$Flags", AddCapitalP)
Call doc.save(1,1)
Call doc.save(1,1)
End If
End If
End If
End Forall
Call NotifyAdmins ("Ordner geschützt in: " & db.Filepath)
proDoc.Ordner = "1"
Call proDoc.Save(True, False)
Else
Exit Sub
End If
ErrorExit:
Exit Sub
ErrorHandler:
Call NotifyAdmins ("!!!Laufzeitfehler (" & Error & ") in Zeile " & Erl & " in DB " & db.Filepath)
Resume ErrorExit
Die Function NotifyAdmins
Sub NotifyAdmins (message As String)
Dim s As New notessession
Set db = s.currentDatabase
Dim docMail As NotesDocument
Const AdminDB = "Timezone"
Set docMail = db.CreateDocument
docMail.SendTo = AdminDB
docMail.Form = "Memo"
docMail.Subject = Message
Call docMail.Send (False)
End Sub