Domino 9 und frühere Versionen > ND6: Entwicklung
Zeit-Agenten ohne Laufzeitziel
Andreas Huhn:
Ich hab den ganzen Code unter Sub_Initialize gepackt und das zusammengecoded und es scheint tatsächlich auf Anhieb zu funktionieren... ich bin begeistert. Hab jetzt auf "durch Zeitplan" und "täglich" umgestellt und damit müsste er auf dem Server nun lauffähig sein, oder?
Hier der LS-Code:
Sub Initialize
Dim session As New NotesSession
Dim db As NotesDatabase
Dim view As NotesView
Dim configdoc As NotesDocument
Dim agent As NotesAgent
Dim CoAgentIntervall As Integer
Dim CoAgentDat As Variant
Dim FreigAgentIntervall As Integer
Dim FreigAgentDat As Variant
Dim LieferAgentIntervall As Integer
Dim LieferAgentDat As Variant
Dim NowDat As Variant
Set db= session.CurrentDatabase
Set view = db.getview("AnsKonfiguration")
Set configdoc = view.getdocumentbyKey("1")
CoAgentIntervall = configdoc.ZahlCoAgentIntervall(0)
CoAgentDat = configdoc.datCoAgentDat(0)
FreigAgentIntervall = configdoc.ZahlFreigAgentIntervall(0)
FreigAgentDat = configdoc.datFreigAgentDat(0)
LieferAgentIntervall = configdoc.ZahlLieferAgentIntervall(0)
LieferAgentDat = configdoc.datLieferAgentDat(0)
NowDat = Now()
If Typename(NowDat) = "DATE" And Typename(CoAgentDat) = "DATE" Then
If Val( (NowDat - CoAgentDat) / 86400) >= CoAgentIntervall Then
Set agent = db.GetAgent("CoordAgent")
agent.Run
End If
End If
If Typename(NowDat) = "DATE" And Typename(FreigAgentDat) = "DATE" Then
If Val( (NowDat - FreigAgentDat) / 86400) >= FreigAgentIntervall Then
Set agent = db.GetAgent("FreigAgent")
agent.Run
End If
End If
If Typename(NowDat) = "DATE" And Typename(LieferAgentDat) = "DATE" Then
If Val( (NowDat - LieferAgentDat) / 86400) >= LieferAgentIntervall Then
Set agent = db.GetAgent("LieferAgent")
agent.Run
End If
End If
End Sub
Driri:
Ja, das sollte so auch auf dem Server laufen. Allerdings ist kein Errorhandling dabei, das wäre noch eine sinnvolle Verbesserung.
Andreas Huhn:
Mit Error-Handlich hab ich noch nie was gemacht.
Wie würd denn das aussehen? ::)
Daß Datumswerte als Variant und die Intervalle (als Vergleichswert) als Integer definiert sind passt, oder?
Denn jetzt hab ich gar keine Typkonvertierungen mehr, wenn du dir mal den Formelcode anschaust da waren eine Menge und ohne die is es auch nicht gegangen. Drum bin ich grad noch ein wenig skeptisch.
Axel:
Schau mal hier: Best Practices: Error Handling in Lotus Script
Da gibt's jede Menge Infos zu dem Thema.
Axel
Andreas Huhn:
Danke Axel! Werd ich mich mal durchwühlen..
Navigation
[0] Themen-Index
[#] Nächste Seite
[*] Vorherige Sete
Zur normalen Ansicht wechseln