Domino 9 und frühere Versionen > ND6: Entwicklung
Zeit-Agenten ohne Laufzeitziel
Andreas Huhn:
Hallo zusammen im neuen Jahr!
ich habe folgendes Problem:
Ich habe 3 Agenten die in bestimmten (in Notes nicht festlegbaren) Intervallen laufen müssen. Dazu habe ich einen "Master-Agenten" erstellt der täglich laufen soll und prüft ob einer oder mehrere der 3 Agenten wieder mal dran sind zu laufen. Wenn dann ruft er die Agenten der Reihe nach auf.
Der Master-Agent darf kein Laufzeitziel haben sonst kommt die Fehlermeldung:
@Befehle und andere UI-Funktionen sind in diesem Suchtyp nicht zulässig; bitte wählen Sie 'Keines' als Laufzeitziel.
Die Einstellung "Keines" gibt es aber nur wenn der Agent Ereignis-gesteuert ist. Da er auf dem Server liegen und täglich laufen soll müsste ich ihn aber auf "durch Zeitplan" umstellen wo es diese Einstellung eben nicht gibt.
Habt ihr einen Tipp für mich wie ich das hinbekommen kann?
Viele Grüße,
Andreas
Driri:
Nutzt der Master-Agent denn UI oder @Formeln ?
Das wäre IMO der Ansatzpunkt.
Andreas Huhn:
Hallo Ingo,
der Master-Agent hat folgenden Code hinterlegt.
Kurze Beschreibung: Erst werden die Daten geladen wann welcher Agent zuletzt lief, dann wird geschaut wie lang das von heute aus gesehen her ist und ob er schon wieder dran ist zu laufen. Wenn ja wird der Agent gestartet.
CoAgentIntervall := @DbLookup("":"NoCache"; ""; "AnsKonfiguration";"1";"ZahlCoAgentIntervall");
CoAgentDat := @DbLookup("":"NoCache"; ""; "AnsKonfiguration";"1";"datCoAgentDat");
FreigAgentIntervall := @DbLookup("":"NoCache"; ""; "AnsKonfiguration";"1";"ZahlFreigAgentIntervall");
FreigAgentDat := @DbLookup("":"NoCache"; ""; "AnsKonfiguration";"1";"datFreigAgentDat");
LieferAgentIntervall := @DbLookup("":"NoCache"; ""; "AnsKonfiguration";"1";"ZahlLieferAgentIntervall");
LieferAgentDat := @DbLookup("":"NoCache"; ""; "AnsKonfiguration";"1";"datLieferAgentDat");
NowDat := @Now;
@If(
@IsTime(NowDat) & @IsTime(CoAgentDat) ;
@If(@ToNumber( (@Date (NowDat) - @Date (CoAgentDat)) / 86400) >= CoAgentIntervall; @Command([RunAgent];"CoordAgent") ;"") ;
0
);
@If(
@IsTime(NowDat) & @IsTime(FreigAgentDat) ;
@If(@ToNumber( (@Date (NowDat) - @Date (FreigAgentDat)) / 86400) >= FreigAgentIntervall; @Command([RunAgent];"FreigAgent") ;"") ;
0
);SELECT
@If(
@IsTime(NowDat) & @IsTime(LieferAgentDat) ;
@If(@ToNumber( (@Date (NowDat) - @Date (LieferAgentDat)) / 86400) >= LieferAgentIntervall; @Command([RunAgent];"LieferAgent") ;"") ;
0
)
Wie gesagt... funktioniert ja auch prächtig wenn ich von Hand starte, aber es soll halt täglich vom Server angestossen werden.
Gruß,
Andreas
Driri:
Dann stell den Master-Agent doch auf Script um.
Andreas Huhn:
Hui.. mal schaun was ich kann...
Navigation
[0] Themen-Index
[#] Nächste Seite
Zur normalen Ansicht wechseln