Das Notes Forum

Domino 9 und frühere Versionen => Entwicklung => Thema gestartet von: braincrusha am 30.01.04 - 09:05:12

Titel: Löschen von Dokumenten in einem Agenten
Beitrag von: braincrusha am 30.01.04 - 09:05:12
Hi,

also unser Notesserver wird gerade extrem überflutet von einer riesigen Welle an Spammails.

Nun platzt langsam unser Mail.Box

Ich will einen Agent schreiben der die ganze Mail.box durchschaut und die Dokumente herauslöschen welche bei dem Feld FailureReason einen bestimmten Wert stehen haben.

Hat irgendjemand ne Idee?? Welche Sprache sollte ich benützen?? Ich hab halt keine Ahnung wie ich ihm sage dass er das dokument löschen soll.
Titel: Re:Löschen von Dokumenten in einem Agenten
Beitrag von: Glombi am 30.01.04 - 09:16:11
Am besten machst Du in der mail.box eine Ansicht mit der Formel

SELECT FailureReason = "xyz"

dann kannst Du dort alles markieren und löschen.

Andreas
Titel: Re:Löschen von Dokumenten in einem Agenten
Beitrag von: Axel am 30.01.04 - 09:19:02
Hi,

ich würde das mit Script machen. Zuerst alle Dokumente in eine Collection und dann die Dokumente einzeln durchlaufen und das entsprechende Feld prüfen.

Könnte so in etwa aussehen:

Sub Initialize
     Dim session As New NotesSession
     Dim db As NotesDatabase
     Dim dc As NotesDocumentCollection
     Dim doc As NotesDocument
     Dim tempdoc As NotesDocument

     Set db = session.CurrentDatabase
     Set dc = db.AllDocuments
     Set doc = dc.GetFirstDocument()
     While Not(doc Is Nothing)
          Set tempdoc = dc.GetNextDocument(doc)
          If doc.FailureReason(0) = "Fehlerursache" Then
               Call doc.Remove(True)
          End If
          Set doc = tempdoc
     Wend
End Sub

Axel
Titel: Re:Löschen von Dokumenten in einem Agenten
Beitrag von: braincrusha am 30.01.04 - 13:49:31
okay hab beides ausprobiert funktionieren beide.

Hab mich für den Weg mit der Ansicht entschieden bis jetzt *g* und häng schon wieder fest.

Also das Feld das geprüft wird enthält immer den Absender am Anfang und dann die Meldung. Beispiel:

Benutzer hugo (hugo@vow0003.voigtag.de) ist nicht im öffentlichen Adreßbuch aufgeführt

nun soll das Dokument nur in der Ansicht sein wenn dieser Teil ("ist nicht im öffentlichen Adreßbuch aufgeführt") in diesem Feld ist. Hab schon einiges ausprobiert.

"c_1 := "IST NICHT IM ÖFFENTLICHEN";
c_2 := @UpperCase(DeadFailureReason); SELECT
@Contains(c_2; c_1);"

funktioniert aber nicht. Jemand ne Idee?

Titel: Re:Löschen von Dokumenten in einem Agenten
Beitrag von: Glombi am 30.01.04 - 14:02:31
Heisst das Feld wirklich "DeadFailureReason" oder evtl. doch "FailureReason"
Titel: Re:Löschen von Dokumenten in einem Agenten
Beitrag von: braincrusha am 30.01.04 - 14:04:23
egal welches ich benütz es funktioniert nicht. Habe es mit beiden schon ausprobiert
Titel: Re:Löschen von Dokumenten in einem Agenten
Beitrag von: Glombi am 30.01.04 - 14:05:36
Sieh mal in den Dokumenteigenschaften nach. Vielleicht ist es ja englisch !?
Titel: Re:Löschen von Dokumenten in einem Agenten
Beitrag von: braincrusha am 30.01.04 - 14:10:11
nein steht in deutsch drin. hab ich auch schon nachgeschaut!
Titel: Re:Löschen von Dokumenten in einem Agenten
Beitrag von: Axel am 30.01.04 - 14:13:06
Hi,

ich hab die SELECT - Formel mal getestet. Vom Prinziop her funktioniert sie.

Ich hab sie auch mal so vereinfacht:

SELECT @Contains(@UpperCase(DeadFailureReason); "IST NICHT IM ÖFFENTLICHEN")

Versuch's mal damit.

Axel
Titel: Re:Löschen von Dokumenten in einem Agenten
Beitrag von: braincrusha am 30.01.04 - 14:17:29
Funktioniert leider auch nicht  :(
Egal ob mit Dead oder ohne!
Titel: Re:Löschen von Dokumenten in einem Agenten
Beitrag von: Glombi am 30.01.04 - 14:44:36
Das gibt's ja gar nicht!
Mach mal einen Screenshot von den Eigenschaften des Dokuments, an dem wir sehen können, welches Feld es ist und was da drin steht.
(Vielleicht fehlt ja IsSummary oder so was).

Andreas
Titel: Re:Löschen von Dokumenten in einem Agenten
Beitrag von: Axel am 30.01.04 - 14:49:20
Hi,

ich hab das mal in unserer Mail.box probiert und bin zu folgendem Ergebnis gekommen:

In der Select - Formel muss es heissen ÖFFENTLICHEM und nicht ÖFFENTLICHEN

Dann musst du eine neuen Ansicht machen, die auf einer leeren Gestaltung aufsetzt und nicht auf der Ansicht Mail.

Die Select-Formel muss so aussehen:
SELECT @Contains(@UpperCase(DeadFailureReason); "IST NICHT IM ÖFFENTLICHEM") | @Contains(@UpperCase(FailureReason); "IST NICHT IM ÖFFENTLICHEM")

Das Feld DeadFailureReason ist nur in DEAD-Mails enthalten. Bei Mails mit dem Status HOLD heißt das Feld FailureReason.


Axel
Titel: Re:Löschen von Dokumenten in einem Agenten
Beitrag von: braincrusha am 30.01.04 - 15:09:59
Sorry auch das funktioniert bei mir nicht  :(
 :'(

ich verzweifel gleich.... hardcopies kommen in ca. 30 Minuten hab gleich ne Besprechung
Titel: Re:Löschen von Dokumenten in einem Agenten
Beitrag von: braincrusha am 30.01.04 - 16:42:03
Also mein Fehler lag irgendwo im Agent nachdem ich ihn umgeschrieben habe funktioniert alles  ;D

Tut mir leid Jungs. Danke aber vielmals für jede Hilfe.
Titel: Re:Löschen von Dokumenten in einem Agenten
Beitrag von: Axel am 30.01.04 - 19:12:52
Also mein Fehler lag irgendwo im Agent nachdem ich ihn umgeschrieben habe funktioniert alles  ;D

Ähhmm, wieso Agent. du hast doch geschrieben, dass du es über eine Ansicht regelst.

Aber, sei's drum. Hauptsache es funktioniert.


Axel