Verschieben von Dokumentem

  • 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