Das Notes Forum

Domino 9 und frühere Versionen => Entwicklung => Thema gestartet von: waldt am 02.12.03 - 11:21:11

Titel: Erweiterung eines Löschagenten Hilfe!
Beitrag von: waldt am 02.12.03 - 11:21:11
Hallo
Ich habe eine Frage zu einem Script!

Dieses Script läuft täglich innerhalb der Maildatenbank.
Es sieht in eine bestimmte Ansicht und löscht alle Anhänge aus den dort enthaltenen mails.

Wie kann ich den Agenten erweitern in dem er nur Anhänge löscht die vor 7 Tagen eingefügt worden sind.


Was muss zu dem Sript hinzugefügt werden? kann ja nicht sehr viel sein oder?
Wäre nett wenn ihr mir da helfen könntet!

Code
Sub Initialize
   Dim Session As New NotesSession
   Dim db As NotesDatabase
   Dim bodyitem As Variant
   Dim view As NotesView
   Dim collection As NotesDocumentCollection
   Dim doc As NotesDocument
   Dim dt As New NotesDateTime ("12/12/94")
   
   Set db = Session.CurrentDatabase
   Set view = db.GetView("RetArch")  'Retrieved from Archive database
   Set doc=View.GetFirstDocument
   
   
   
   While Not(Doc Is Nothing)
      Set bodyitem = doc.GetFirstItem("Body")       
      Forall i In doc.Items
         If i.Type = ATTACHMENT Then
            If Not (CheckifinBody(bodyitem,i)) Then
               Call i.Remove     
            End If
         End If               
      End Forall
      'End If         
      Call doc.Save(True,False,True)          
      Set doc = View.GetFirstDocument
   Wend
End Sub

Vielen Dank!
Thomas
Titel: Re:Erweiterung eines Löschagenten Hilfe!
Beitrag von: Thomas Schulte am 02.12.03 - 11:32:27
Dein Script benutzt schon mal eine eigene Notes klasse oder funktion die in einer Externen Bibliothek liegen muss.
Erste Variante, dort nachschauen, was denn im Einzelnen da an Funktionen drin ist.
Außerdem meinst du doch warscheinlich nicht das Einstellungsdatum des Attachments sondern das Erstellungsdatum des Dokumentes. Das bekommst du ganz einfach mit notesdocument.created raus. Dann noch Adjustdays (notesDatetime Klasse)um rauszukriegen ob Created + 7 kleiner heute ist und das war es dann.

Thomas
Titel: Re:Erweiterung eines Löschagenten Hilfe!
Beitrag von: waldt am 02.12.03 - 11:54:54
Hallo Thomas!

Dieser Agent ist Bestandteil einer Archivierung der Mail Anhänge.
7 Tage nach dem der Anwender sich den Anhang wieder in seine mail geholt hat, soll diese wieder gelöscht werden.

Alles gehört zu IBM CommonStore.

Leider kenne ich mich in der Entwicklung nicht aus. Und konnte die von dir beschriebenene Klasse nicht finden.

Beim zurückholen des Anhangs in das mail wird dieses wieder auf ungelesen gesetzt, erhält eine Markierung, so dass es in einer speziellen Ansicht erscheint und erhält ein neues geändert - datum.

Dies denke ich sollte Ausgangspunkt zur Berechnung der 7 Tage sein.

Kannst du deine Anmerkungen vielleicht in das Script einfügen!
Ich habe keine Ahnung wie man das macht!

Wäre dir sehr dankbar.
Gruß
Thomas
Titel: so da wären sie wieder meine drei Probleme
Beitrag von: Thomas Schulte am 02.12.03 - 12:44:12
Geld, Geld und Geld.
Aufwand 30 Minuten, Ertrag 0 Euro. ziemliches Missverhältnis oder?
Wenn du die Diskussionen die im Moment hier und in anderen Foren abgehen verfolgst dann verstehst du sicher das ich damit so meine Probleme habe.
Glombi hat es auf den Punkt gebracht. Wir leisten Hilfe zur Selbsthilfe. Ganz einfach deswegen weil es sich kaum einer von uns auf Dauer leisten für lau zu helfen (außer denen, die bei Anwendern in einer Festanstellung sind. Für die ist das ein Hobby.)

Thomas
Titel: Re:Erweiterung eines Löschagenten Hilfe!
Beitrag von: ata am 02.12.03 - 13:20:52
... im Dokument gibt es ein Feld "$Revisions" - dort sind die letzten Änderungen vermerkt - vielleicht kannst du damit was anfangen...

ata
Titel: Re:Erweiterung eines Löschagenten Hilfe!
Beitrag von: Glombi am 02.12.03 - 13:31:43
Wenn ich das richtig sehe, musst Du nicht unbedingt den Agenten ändern. Du kannst auch die View "RetArch" ändern - dort nur die Dokumente anzeigen, die vor mehr als 7 Tagen geändert wurden.
SELECT ... alte formel ... & @Adjust(@Today(0;0;-7;0;0;0) > @Modified

Andreas
Titel: Re:Erweiterung eines Löschagenten Hilfe!
Beitrag von: waldt am 03.12.03 - 08:42:48
Hallo Glombi!
Vielen dank für deine Unterstützung!

Das  Original Ansichtsauswahl Script lautet:

SELECT ((@IsAvailable(CSNDArchiveID) &CSNDArchiveID!="Error" )& @Attachments!=0)

Wenn ich nun deine Ergänzung hinzufüge sieht das so aus:
SELECT ((@IsAvailable(CSNDArchiveID) &CSNDArchiveID!="Error" )& @Attachments!=0)& @Adjust( @Today(0;0;-7;0;0;0) > @Modified)

Leider erhalte ich die fehlermeldung:
"Argumente werden an eine Nicht-@Funktion üpbergeben oder an eine @Funktion die keine Argumente benötigt.

Habe ich da was falch gemacht ?
War mir mit den Klammern nicht sicher.

Vielleicht kann mir da jemand noch mal helfen?
Titel: Re:Erweiterung eines Löschagenten Hilfe!
Beitrag von: Glombi am 03.12.03 - 08:46:31
Hallo waldt,
sorry, in meiner Formel ist ein Syntaxfehler! Korrekt ist

SELECT ((@IsAvailable(CSNDArchiveID) &CSNDArchiveID!="Error" )& @Attachments!=0)& @Adjust(@Today;0;0;-7;0;0;0) > @Modified)

Sieh Dir bitte mal die View an, ob die Dokumente dann korrekt erscheinen. Das
@Adjust(@Today;0;0;-7;0;0;0) > @Modified)
zeigt nur diejenigen Dokumente an, die vor mehr als 7 Tagen geändert wurden.

Andreas
Titel: Re:Erweiterung eines Löschagenten Hilfe!
Beitrag von: waldt am 04.12.03 - 13:15:16
Hallo Glombi!

Erst mal vielen Dank!
Werde das entsprechend testen!