Hallo zusammen,
ich habe folgendes Problem. Ich will per Agent Dokumente von einer DB in eine andere verschieben. Nun habe ich das Problem, dass es zu manchen Dokumenten Antwortdokumente gibt. Mein Script koiert ein Dokument und löscht es dann. Wird aber das Hauptdokument gelöscht, komme ich nicht mehr an meine Antwortdokumente. Weiss jemand Rat
Sub Initialize
'Alle Dokumente in der Ansicht (archiv" werden in die Datenbank softwareentw_archiv.nsf verschoben
Dim session As New NotesSession
Dim db As NotesDatabase
Dim view As NotesView
Dim doc As NotesDocument
Dim dateTimearchiv As New NotesDateTime( Today )
Call dateTimearchiv.AdjustDay( -31 )
Dim archiveDb As New NotesDatabase( "","" )
Set archiveDb=session.GetDatabase("KZVN-N-5/KZVN/DE","softwareentw_archiv.nsf")
Set db=session.CurrentDatabase
Set view=db.GetView("(archiv)")
Set doc=view.GetFirstDocument
If doc Is Nothing Then
Print "Keine alten Dokumente zum archivieren vorhanden !"
Goto ende
End If
Print "Archivierung aus der SEDB wird gestartet !"
While Not(doc Is Nothing)
Dim tmpnr As Integer
Dim dateTimeabnahme As New NotesDateTime( doc.GetItemValue("Projektabnahme")(0))
Dim dateTimemodified As New NotesDateTime( doc.LastModified)
'Stammdatendokument ermitteln. Nur dieses hat das Item Projektabnahme
'Wenn tmpabnahme ungleich leer, wird überprüft ob das Abnahmedatum kleiner ist
' als das aktuelle Tagesdatum - 31 Tage
If doc.GetItemValue("Projektabnahme")(0) <>"" Then
If Cdat(dateTimeabnahme.LocalTime) < Cdat(dateTimearchiv.LocalTime) Then
Call doc.CopyToDatabase( archiveDb )
Print "Projektnummer " + Cstr(doc.GetItemValue("Projektnummer")(0))+ " wurde archiviert"
End If
End If
'Wenn tmpabnahme gleich leer, wird überprüft ob das letzte Änderungsdatum kleiner ist
' als das aktuelle Tagesdatum - 31 Tage
If doc.GetItemValue("Projektabnahme")(0) ="" Then
If Cdat(dateTimemodified.DateOnly) < Cdat(dateTimearchiv.LocalTime) Then
Call doc.CopyToDatabase( archiveDb )
Print "Projektnummer " + Cstr(doc.GetItemValue("Projektnummer")(0))+ " wurde archiviert"
End If
End If
'Überprüfen ob es sich um ein Antwortdokument handelt
If doc.IsResponse=True Then
Call doc.CopyToDatabase( archiveDb )
End If
' Call doc.Remove(True)
Set doc=view.GetNextDocument(doc)
Wend
'
Print "Projekte wurden archiviert"
Ende:
End Sub
Vielen Dank
Lapfandi