Hi,
Also der Agent ist shared, on schedule (never), target: all documents in database, run on behalf of (ein user mit allen rechten), security level 1.
Gestartet wird der Agent per
Dim session As New NotesSession
Dim agent As NotesAgent
'// Dokument zur Parameterübergabe an Agenten anlegen
Dim paradoc As NotesDocument
Dim nID As String
Set paradoc = gdb.CreateDocument
paradoc.Form = "frmParaKatAgent" '// Form enthält Felder zur Parameterübergabe an Agenten
paradoc.AlterKategorieText = sAlterKategorieText '// Werte der Parameter setzen
paradoc.NeuerKategorieText = sNeuerKategorieText
paradoc.KategorieFarbe = sKategorieFarbe
Call paradoc.ComputeWithForm(True,True)
Call paradoc.Save(True,True)
nID = paradoc.NoteID
Set db = session.CurrentDatabase
Set agent = db.GetAgent("KategorienTextFarbeAendern")
If Not (agent Is Nothing) Then
If Not agent.RunOnServer(nID) = 0 Then '// Agenten-Aufruf mit Paramtern, die im Dokument nID gespeichert sind
Messagebox "Agent lief nicht!",48,"Fehler"
End If
Else
Messagebox "Agent wurde nicht gefunden",48,"Fehler"
End If
im initialize des agenten steht dann:
Messagebox "Hi"
Dim ddoc As NotesDocument
Dim na As NotesAgent
Dim session As New NotesSession
Dim db As NotesDatabase
Dim dc As NotesDocumentCollection
Dim doc As NotesDocument
Dim sAlterKategorieText As String
Dim sKategorieText As String
Dim sKategorieFarbe As String
Set db = session.CurrentDatabase
Set na = session.CurrentAgent
Set ddoc = db.GetDocumentByID(na.ParameterDocID)
sAlterKategorieText = ddoc.AlterKategorieText
sKategorieText = ddoc.NeuerKategorieText
sKategorieFarbe = ddoc.KategorieFarbe
'//Dim i As Integer
Set dc = db.AllDocuments
'//i = 0
Set doc = dc.GetFirstDocument
Do Until doc Is Nothing
If doc.Form(0) = "frmTermin" Then '// Feiertage auch behandeln??? (nicht implementiert)
If doc.TerminKategorie(0) = sAlterKategorieText Then
doc.TerminKategorie = sKategorieText '// neuen Text setzen
doc.TerminKatFarbe = sKategorieFarbe '// neue Farbe setzen
'//i = i + 1
Call doc.Save(True, True, True)
End If
End If
Set doc = dc.GetNextDocument(doc)
Loop
s.