Das Notes Forum

Domino 9 und frühere Versionen => Entwicklung => Thema gestartet von: FRANKI am 28.06.04 - 11:16:21

Titel: Agenten(steuerung)
Beitrag von: FRANKI am 28.06.04 - 11:16:21
Hallo Zusammen,

ich habe eine Reihe von Agenten, die in einer bestimmten Reihenfolge hintereinander ablaufen sollen.
Diese Agenten sind in Formelsprache, Scriptsprache und Java geschrieben.
Kann ich einen "zentralen" Agenten erstellen, der dies nacheinander aufruft?

Da die Agenten immer in einer bestimmten Reihenfolge (automatisch) laufen müssen, aber auch mal separat angesprochen werden sollen müßte
ist das etwas schwierig per Zeiteinstellung die Reihenfolge einzuhalten.

Gibt es eine Möglichkeit die nacheinander von einem Agenten aufzurufen??


Danke
FRANKI
Titel: Re:Agenten(steuerung)
Beitrag von: Glombi am 28.06.04 - 11:27:38
Prinzipiell geht es:

Formelsprache:
@Command([ToolsRunMacro];"Agent 1");
@Command([ToolsRunMacro];"Agent 2")
usw.

Script:
dim session as New NotesSession
dim db as NotesDatabase
dim agent as NotesAgent
set db = session.CurrentDatabase

set agent = db.GetAgent("Agent1")
call agent.Run

set agent = db.GetAgent("Agent2")
call agent.Run

usw.

Allerdings ist das eher mit Vorsicht zu genießen: Die Agenten laufen ggf. zeitgleich und es kommt so zu Seiteneffekten.

Besser wäre es, wenn sich die Agenten am Ende selbst aufrufen.
Wenn Du nur einen Agenten dediziert starten willst, solltest Du überlegen, zwei Agenten zu machen.

Andreas
Titel: Re:Agenten(steuerung)
Beitrag von: Axel am 28.06.04 - 11:28:00
Hi,

wie soll denn der Agent gestartet werden, über eine Aktion?

Wenn ja, kannst du die einfachen Aktionen verwenden.

Ansonsten bin ich mit nicht sicher, ob es mit der Run - Methode aus der NotesAgent-Klasse möglich ist

Axel
Titel: Re:Agenten(steuerung)
Beitrag von: Marinero Atlántico am 28.06.04 - 11:45:06
Das geht so wie Glombi beschrieben.
Anders wie ich mal geglaubt habe, laufen die Agenten sauber synchron, d.h. hintereinander und nicht gleichzeitig ab.

Der Agenten-Aufruf-Agent geht sogar von der Workstation und damit dann Agenten auf dem Server starten (mit Run on Server). Durch letzteres entstehen aber signifikante Reaktionszeiten.
Ich glaube das wird erst in die Queue im Agentenmanager getan.
Weiss hierzu jemand etwas tiefsinniges zu berichten?
Titel: Re:Agenten(steuerung)
Beitrag von: Glombi am 28.06.04 - 13:24:03
Das geht so wie Glombi beschrieben.
Anders wie ich mal geglaubt habe, laufen die Agenten sauber synchron, d.h. hintereinander und nicht gleichzeitig ab.
Bist Du Dir da wirklich sicher, wenn Formelsprache, LotusScript und Java Agenten involviert sind? Ich hätte da eher ein ungutes Gefühl.

Andreas
Titel: Re:Agenten(steuerung)
Beitrag von: Semeaphoros am 02.07.04 - 22:15:17
Mein ungutes Mitgefühl ist sicher, ich hatte auch schon Schwierigkeiten, Agenten zu synchronisieren, selbst wenn "nur" LS und @Formel involviert war
Titel: Re:Agenten(steuerung)
Beitrag von: TMC am 02.07.04 - 22:31:03
ich habe eine Reihe von Agenten, die in einer bestimmten Reihenfolge hintereinander ablaufen sollen.
Diese Agenten sind in Formelsprache, Scriptsprache und Java geschrieben.
Kann ich einen "zentralen" Agenten erstellen, der dies nacheinander aufruft?
Da die Agenten immer in einer bestimmten Reihenfolge (automatisch) laufen müssen, aber auch mal separat angesprochen werden sollen müßte
ist das etwas schwierig per Zeiteinstellung die Reihenfolge einzuhalten.

Spontan hätte ich das jetzt über ScriptLibraries gelöst.

Die Scripts selbst (Klassen / Functions / Subs) sind in den Libraries.

Dann meinetwegen 1 Agenten mit
Call Sub 1()
Call Sub 2()
Call Sun 3()

Dann weitere Agenten:
Agent 2:
Call Sub2()

Agent 3
Call Sub3()
Call Sub1()

etc.

Die Agenten haben dann unterschiedliche Auslöser ("Trigger"). Agent 1 meinetwegen scheduled, Agent 2 per Menü, etc. etc.
Titel: Re:Agenten(steuerung)
Beitrag von: TMC am 02.07.04 - 22:57:01
Nachtrag:

Mit dieser Methode kannst Du auch noch Agenten ausführen die in Formelsprache geschrieben sind (von der ScriptLibrary aus). Natürlich solltest Du auf eine klare Namensgebung der Agenten und entsprechende Code-Kommentierung achten, damit sich da noch wer auskennt  ;)

Wie sich ein Aufruf à la:
LS-Agent -> Call ScriptLibFunction() -> StartAgent -> FormelAgent
auswirkt weiss ich leider nicht.

Rein theoretisch sollte das aber imho wunderbar klappen.

Interessant wäre hier zu wissen, was genau Du denn vorhast. Evtl. macht es auch Sinn, manche Codes in LS umzuschreiben.
Titel: Re:Agenten(steuerung)
Beitrag von: animate am 02.07.04 - 23:21:32
wenn die Agents in einer festen Reihenfolge ablaufen, könnte man dann theoretisch jeden Agent selbst seinen Nachfolger aufrufen lassen?
und wenn einer sparat angesprochen werden soll, dann könnte man das z.B. mit einem Notes.ini-Parameter regeln, der vorher gesetzt (und nachher gelöscht) wird, den der Agent auswertet und dann eben den Nachfolge-Agent aufruft, oder nicht.
 ???
Titel: Re:Agenten(steuerung)
Beitrag von: animate am 02.07.04 - 23:41:27
oder evtl noch besser, du legst die Reihenfolge der Agents irgendwo ab (z.B. notes.ini) und jeder Agent kann dann dort nachlesen, wen er als nächstes starten muss.
Titel: Re:Agenten(steuerung)
Beitrag von: alphaprime am 02.07.04 - 23:43:32
schon mal was von RtVal ( Rueckgabewärte) gehört ?
Titel: Re:Agenten(steuerung)
Beitrag von: animate am 02.07.04 - 23:51:52
ja.

schonmal was davon gehört, dass ein Agent keinen Rückgabewert hat?
Titel: Re:Agenten(steuerung)
Beitrag von: alphaprime am 02.07.04 - 23:55:41
was rädest du ? lokkisch chann auch ain agent eine wert zuchrückgben
Titel: Re:Agenten(steuerung)
Beitrag von: animate am 03.07.04 - 00:01:04
ich lasse mich sehr gerne korrigieren, wenn ich falsch liege. :)

es wäre nett, wenn du kurz erklären könntest, an wen ein Agent einen Wert zurückgeben kann, welche Form dieser Wert hat und wie dieser Wert zurückgegeben wird.

Und vorsicht, es geht bei diesem Problem um LotusScript-, Java-, und Formel-Agents.
Titel: Re:Agenten(steuerung)
Beitrag von: Axel am 05.07.04 - 08:30:41
Hi,

das würde mich auch mal interessieren.   ???


Axel
Titel: Re:Agenten(steuerung)
Beitrag von: Marinero Atlántico am 05.07.04 - 09:15:52
Bist Du Dir da wirklich sicher, wenn Formelsprache, LotusScript und Java Agenten involviert sind? Ich hätte da eher ein ungutes Gefühl.

Das Gefühl hatte ich auch. Bei client- und serverseitigen LotusScript und Java-Agenten bin ich mir sicher.
Ich hab in der Firma mal lautstark behauptet, dass es serverseitig nicht geht.
Ich hatte aber unrecht.
Ich glaub aber das Formelsprachen-Agenten asynchron funktionieren (bin ich mir nicht sicher).

Ich gehe von folgenden aus: Da die Implementierung der Java-Klassen in Lotus auf den gleichen C-Code zugreift wie die LotusScript Klassen (oft nur ein Java Native Interface Wrapper), sind Java und LotusScript Klassen runtime-mässig quasi gleich.

Gruß Axel