Das Notes Forum

Domino 9 und frühere Versionen => ND7: Entwicklung => Thema gestartet von: gstueb am 18.01.10 - 18:07:25

Titel: Hintergrundagent per Script starten
Beitrag von: gstueb am 18.01.10 - 18:07:25
Hallo,

ich habe einen Agenten "ProzessBroadcast", der testweise mal nur den Code

Code
Print "5 Sekunden Pause"
Sleep(5)
Print "Pause fertig"

enthält. Diesen Agenten möchte ich gerne aus einem anderen Script heraus als Hintergrundagenten starten. Geht das irgendwie?

Wenn ich o.G. Agenten über das Menü Aktionen ausführe, wird er wie gewünscht im Hintergrund ausgeführt. Wenn ich ihn jedoch über

Code
Set agent = db.GetAgent("ProzessBroadcast")
result = agent.Run
If result <> 0 Then
	Print "Fehler beim Agent ProzessBroadcast " & result
End If

ausführe, muss ich die 5 Sekunden warten.

Any ideas?
Danke,
Gregor
Titel: Re: Hintergrundagent per Script starten
Beitrag von: Thomas Schulte am 18.01.10 - 18:49:58
auf dem Server.... Call Agent.RunOnServer
Titel: Re: Hintergrundagent per Script starten
Beitrag von: Pyewacket am 18.01.10 - 19:51:59
Hi Gregor,

dein Start-Agent läuft im Vordergrund und agent.run wartet bis der auszuführende
Agent fertig ist. Da ist es dann irrelevant ob der im Hintergrund oder Vordergrund läuft,
es wird einfach gewartet.

Das was du machen willst, den Agenten nur anstarten so daß er im Hintergrund weiterläuft
und gleichzeitig der Agent im Vordergrund auch weiterläuft geht, soweit ich weiss, nicht.

Auch bei einem agent.runonserver wird solange gewartet bis der agent fertig ist.

Gruss
Peter
Titel: Re: Hintergrundagent per Script starten
Beitrag von: koehlerbv am 18.01.10 - 20:34:03
Funktionieren würde das durch das Absetzen eines Console-Befehls.

Bernhard
Titel: Re: Hintergrundagent per Script starten
Beitrag von: Johnson am 21.01.10 - 14:23:11
Ok. Ganz simpel eigentlich aber Entwickler werden die Hände über den Kopf zusammen schlagen:

1. Du baust eine Maske, in deren PostOpen Event du den Hintergrundagenten per @Command ( [ToolsRunMacro]; [AgentenName] ) startest.

2. In Lotus Script erstellst du ein Frontenddokument dieser Maske und schließt es auch gleich danach wieder.

Dann sollte der Agent loslaufen.

Andernfalls könntest du dich mit der API beschäftigen. Ich glaube mich daran erinnern zu können, dass das dort geht. Zumindest habe ich zu meinen C++ Zeiten mal mit Agenten per API laufen lassen beschäftigt.
Titel: Re: Hintergrundagent per Script starten
Beitrag von: Johnson am 21.01.10 - 14:24:17
Nachtrag. Ein Consolen Komando kann ja nicht jeder User absetzen.
Titel: Re: Hintergrundagent per Script starten
Beitrag von: koehlerbv am 21.01.10 - 14:27:47
Das ToolsRunMacro wird dann aber den Agent im Client-Kontext starten und eben nicht im Hintergrund.

Bernhard
Titel: Re: Hintergrundagent per Script starten
Beitrag von: Johnson am 21.01.10 - 14:30:29
Er meinte doch den Backgroundthread des Clients oder?

EDIT: Wenn der Agent in den Eigenschaften auch als Background agent eingestellt ist, dann läuft der auch im Backgroundthread des Clients. So als würde er ihn über das Menü starten.