Hallo,
heute habe ich ein etwas kniffliges Problem und ich bin mir nicht sicher, ob es überhaupt eine Lösung gibt:
In meinen Datenbanken habe ich für jeden periodischen Agenten ein Konfigurationsdokument. Hier kann ich einstellen, auf welchem Server der Agent laufen soll und ihn aktivieren oder deaktivieren. Dadurch muss der Anwender nicht ins Design gehen und kann den Agenten aus der "normalen" Oberfläche heraus aktivieren.
Das funktioniert auch einwandfrei. Jetzt aber das Knifflige: Gibt es irgend eine Möglichkeit auch die Laufzeit des Agenten von hier aus einzustellen? Also zum Beispiel "Periodisch täglich, ab 6:00 alle 2 Stunden".
Die Klasse NotesAgent stellt hier nichts zur Verfügung. Aber vielleicht geht es über eine API-Funktion oder etwas ähnliches?
Derzeit behelfe ich mir so, dass ich mehrere Agenten mit unterschiedlichen Laufzeiten vorhalte, und der Benutzer einen davon auswählt. Ist aber nur eine Krücke und gefällt mir nicht besonders.
Hier habe ich einmal kurz den Code, mit dem ich den Agenten aktiviere:
Sub ChangeAgentState()
Dim ws As New NotesUiWorkspace
Dim doc As NotesDocument
Dim agent As NotesAgent
On Error Goto Fehler
Set doc = ws.CurrentDocument.Document
Set agent = ws.CurrentDatabase.Database.GetAgent(doc.sAgentName(0))
agent.ServerName = doc.nameServer(0)
agent.IsEnabled = Not(agent.IsEnabled)
Call agent.Save()
If (doc.sAgentState(0) = "") Then doc.sAgentState = 0
If (agent.IsEnabled) Then doc.sAgentState = 1 Else doc.sAgentState = 0
Call ws.CurrentDocument.Refresh()
Ende:
Exit Sub
Fehler:
Msgbox "Der Status des Agenten kann nicht geändert werden!",,"Fehler"
Resume Ende
End Sub
Vielleicht hat ja jemand eine Idee. Wäre echt nett, wenn Ihr mir hier weiterhelfen könntet. Vielen Dank im Voraus.
Gruß,
jr