Das Notes Forum

Domino 9 und frühere Versionen => ND6: Entwicklung => Thema gestartet von: PeterD2 am 17.05.05 - 18:03:38

Titel: db.open(): Was tun falls Berechtigungen fehlen?
Beitrag von: PeterD2 am 17.05.05 - 18:03:38
Ich muß gerade so eine Art Mailrückruf Agenten schreiben, der eine bestimmte Mail aus den Mail-Datenbanken der Benutzer löscht. Dazu muß ich die Datenbanken eines NotesDBDirectory der Reihe nach öffnen, um zu schauen ob die betreffende Mail darin enthalten ist. Der Agent läuft unter dem Namen des Servers, auf dem die Datenbanken liegen. Trotzdem lassen sich einige Datenbanken aufgrund mangelnder Zugriffsrechte nicht öffnen. Nicht schlimm, mache ich eben mit der nächsten Datenbank weiter. Das Problem ist nur, daß trotz "on Error goto" Statement gleich das ganze Skript abbricht, sobald eine Datenbank erwischt wird, bei der die Rechte zum Öffnen der Datenbank nicht reichen. Sorry, bin ein bischen eingerostet, die Lösung liegt sicher in einer falschen Fehlerbehandlung. Kann mir jemand helfen?

Danke im Voraus
Peter

P.S: Nein ich baue keinen Spamfilter, habe nur den obigen Betreff zum Testen eingesetzt

Code
Sub Initialize
	Dim dbdir As New NotesDbDirectory("Entwicklung")
	Dim db As NotesDatabase
	Dim dbname As String
	Dim view As NotesView
	Dim vc As NotesViewEntryCollection
	Dim doc As NotesDocument
	Dim entry As NotesViewEntry
	
	On Error Goto breakpoint
	
	Set db = dbdir.GetFirstDatabase(DATABASE)
	searchString="Auslaenderkriminalitaet steigt weiter! :Id:4360:" 
	
	While Not(db Is Nothing)
		dbname = db.DesignTemplateName
		If dbname Like "*Mail*"Then
			Call db.Open( "", "" )
			Set view = db.GetView("($All)")
			Set vc = view.AllEntries
			If vc.count>0 Then
				Set entry= vc.GetFirstEntry()
				While Not entry Is Nothing
					Set doc=entry.Document
					
					If doc.subject(0)=searchString Then
						Msgbox  "Mail mit Thema: "+searchString+" in Datenbank "+db.filename+ " gefunden.", , db.Title
					End If
					Set entry= vc.GetNextEntry(entry)
					
				Wend
			End If
			
		End If
		
breakpoint:
		Set db = dbdir.GetNextDatabase
	Wend
End Sub
Titel: Re: db.open(): Was tun falls Berechtigungen fehlen?
Beitrag von: PeterD2 am 17.05.05 - 18:21:47
Arrghh, was so ein kleines vergessenes "Resume next" doch bewirkt. Sorry!  :-[
Titel: Re: db.open(): Was tun falls Berechtigungen fehlen?
Beitrag von: eknori am 17.05.05 - 18:47:09
ich würde den Agenten mal gaaaaanz vorsichtig mit der ID des Servers signieren ...

My 2 Cent:

deine Aktion ist rechtlich höchst bedenklich ...
Titel: Re: db.open(): Was tun falls Berechtigungen fehlen?
Beitrag von: PeterD2 am 17.05.05 - 23:21:24
Ja klar, entsprechend signiert ist der Agent.

Was den rechtlichen Part angeht gebe ich Dir prinzipiell ebenfalls Recht, und ich bin mir auch der rechtlichen Haftung eines Admins- /Programmieres bei einer solchen Aktion bewusst. Glaub´mir wir haben die Optionen in diesem Fall reichlich abgewogen. Wie es der Zufall wollte, hatte ich gerade am Wochende einen entsprechenden Artikel in der aktuellen IX gelesen, in dem es genau darum ging was ein Admin darf, und wie er für seine Eingriffe u.U. haftet. Aber glaube mir: Diese Mail MUSS aus den Mailboxen raus, da hebt sogar der Betriebsrat in mir die Daumen.

Gruß
Peter
Titel: Re: db.open(): Was tun falls Berechtigungen fehlen?
Beitrag von: Semeaphoros am 17.05.05 - 23:24:35
Hmm, wenn so ein Maildokument raus MUSS, müsste man da nicht eher den Versender dieses Dokumentes ........ ??
Titel: Re: db.open(): Was tun falls Berechtigungen fehlen?
Beitrag von: TMC am 17.05.05 - 23:35:55
Sorry, ich wiederhole jetzt Bedenken -- wir hatten irgendwo hier schon mal eine solche Diskussion:

Zitat
Trotzdem lassen sich einige Datenbanken aufgrund mangelnder Zugriffsrechte nicht öffnen. Nicht schlimm, mache ich eben mit der nächsten Datenbank weiter.
Was heißt hier nicht schlimm? Also egal, wenn nicht alle gelöscht werden?

Wie auch immer:
Sobald ein Mitarbeiter mitbekommt, dass eine Mail fehlt, dann geht das rum wie ein Lauffeuer. Ist doch immer so. Und wenn es nur beiläufig bei der Kaffee/Zigaretten-Pause erwähnt wird. Ein Kollege sagt dann "da muss ich bei mir auch mal nachschauen". Trifft man sich wieder, kommt dann: stimmt, ist bei mir auch weg. Dann kommt gerade der Außendienst-MA rein, Laptop unter'm Arm. Sieht nach, und bei dem ist die Mail noch da. Er leitet die Mail erstmal an die Kollegen weiter..........

Nur ein Szenario von vielen möglichen. Dass sowas niemand mitbekommt, kann ich mir fast nicht vorstellen, außer es ist ein 5Mann-Betrieb.
Titel: Re: db.open(): Was tun falls Berechtigungen fehlen?
Beitrag von: Semeaphoros am 18.05.05 - 07:55:41
Und beim 5Mann Betrieb passiert es nicht, weils da nicht draufankommt