zeitgesteuerter Agent will nicht laufen ;-((

  • Hallo,
    ich hab' da mal wieder ein Problem mit einem Agenten, der einfach nicht laufen will.
    Der Agent ist zeitgesteuert und läuft über alle Dokumente in der DB.
    Wenn ich ihn manuell aus der Agentenliste starte, tut er fein das was er tun soll.
    Aber zeitgesteuert gibt er mir noch nicht mal einen Eintrag in der Log.


    hier mal der Code, vielleicht fällt ja Jemanden auf, was ich dort falsch gemacht habe.
    Was der Agent machen soll, muss ich wohl nicht extra schreiben, dass geht m.E. aus dem Code hervor.



    Sub Initialize

    On Error Goto Fehler

    Dim session As New NotesSession
    Dim db As NotesDatabase
    Dim archiveDb As NotesDatabase
    Dim collection As NotesDocumentCollection
    Dim Doc As NotesDocument
    Dim Doc2 As NotesDocument
    Set db = session.CurrentDatabase
    Set collection = db.AllDocuments
    Dim Agent_gelöscht As Variant
    Agent_gelöscht = False
    Dim Archiv_erstellt As Variant
    Archiv_erstellt = False


    Print "Starte Agent "+"neues Archiv erstellen > 100.000 Docs"

    ArchivDate = " bis "+Cstr(Day(Today))+"_"+Cstr(Month(Today))+"_"+Cstr(Year(Today))

    If Collection.Count => 10 Then 'Agent läuft nur, wenn mindestens 100.000 Dokumente in der Datenbank sind

    archiveServer$ = db.server
    DB_Name = Strleftback(db.FileName,".") ' ".nsf" abtrennen

    Set doc = collection.GetFirstDocument

    If Not (Doc Is Nothing) Then
    Set archiveDb = New NotesDatabase( "", "" )
    archiveFile$ = "Archive\"+DB_Name+"_"+ArchivDate+".nsf"
    End If

    archiveDb.Title = Db.Title+"_"+ArchivDate

    While Not(doc Is Nothing)
    Set doc2 = collection.GetNextDocument(doc)

    If Not archiveDb.IsOpen Then

    If (Not(archiveDb.Open(archiveServer$, archiveFile$))) Then
    Set archiveDb = db.CreateCopy( archiveServer$, archiveFile$ )
    Archiv_erstellt = True

    If Agent_gelöscht = False Then
    Forall Agenten In ArchiveDb.Agents
    If Agenten.Name = "neues Archiv erstellen > 100.000 Docs" Then
    Call Agenten.remove 'Archivierungsagenten aus dem neuen Archiv löschen
    Agent_gelöscht = True
    End If
    End Forall
    End If

    End If

    End If

    Call doc.CopyToDatabase( archiveDb ) 'Dokumente werden in das neue Archiv kopiert
    Call doc.Remove(True) 'kopierte Dokumente werden im alten Archiv gelöscht

    Set Doc = Doc2
    Wend

    If Archiv_erstellt = True Then
    Dim Memo As New NotesDocument(db)
    Memo.Form = "MainTopic"
    Memo.Subject = "neues Bank-Archiv wurde erstellt"
    Dim RTitem As NotesRichTextItem
    Set RTitem = New NotesRichTextItem(Memo,"Body")
    Call RTitem.AppendText("neues Bank-Archiv wurde erstellt.")
    Call RTitem.AddNewline(1)
    Call rtitem.AppendText("Link zur neuen Datenbank """+archiveDb.Title+""" ---> ")
    Call rtitem.AppendDocLink(archiveDb, archiveDb.Title)
    Call rtitem.AddNewline(1)
    Call Memo.Send(True,"#Admins") 'Meldung an Admins, dass ein weiteres Archiv erstellt wurde
    End If

    End If
    Exit Sub

    Fehler:
    Print Cstr(Err) + " inLine "+Cstr(Erl)
    End Sub