Autor Thema: Agent als Hintergrund-Client-Thread starten  (Gelesen 2037 mal)

Offline Legolas

  • Senior Mitglied
  • ****
  • Beiträge: 446
  • Geschlecht: Männlich
Agent als Hintergrund-Client-Thread starten
« am: 06.11.12 - 14:53:48 »
Hallo Forum,

ich will einen Agenten der im Hintergrund eine Berechnung ausführen soll die keine Interaktion mit dem Frontend hat, beim Query-Close Event einer Maske starten.
Grund für diesen Typ ist, dass diese Berechnung einige Sekunden in Anspruch nimmt.
Soweit ich das verstehe, sollte der Agent "losgelößt" vom Frontend laufen, so dass im Frontend normal weiter gearbeitet werden kann.

Nun das Problem:
Ich habe den Agenten brav mit der entsprechenden Option gespeichert und erhalte auch den entsprechenden Warnhinweis von Notes hierbei.
Wenn ich jedoch den Agenten aus dem Script heraus starte, verhält dieser sich wie ein "normaler" Agent. Die Sanduhr erscheint und ich muss warten bis der Serveragent komplett durchgelaufen ist.
Ich habe den Agenten per runOnServer aus dem Query-Close aufgerufen.
Der Agent befinde sich zudem in einer anderen Anwendung.
In der Hilfe steht nur ein Zweizeiler zu diesem Thema.

Hat zu diesem Thema schon jemand Erfahrungen gemacht?
Woran kann das liegen?


System:
Lotus Notes 8.5.3 FP2 Client
Server8.5.3 FP2

Grüße
Bernd
Arbeite klug, nicht hart.

Offline ascabg

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 3.697
  • Geschlecht: Männlich
Re: Agent als Hintergrund-Client-Thread starten
« Antwort #1 am: 06.11.12 - 15:11:48 »
Hallo,

Zitat
In der Hilfe steht nur ein Zweizeiler zu diesem Thema.
Welchen Zweizeiler hast Du denn gefunden?


Andreas

Offline Legolas

  • Senior Mitglied
  • ****
  • Beiträge: 446
  • Geschlecht: Männlich
Re: Agent als Hintergrund-Client-Thread starten
« Antwort #2 am: 06.11.12 - 15:32:07 »
Ok,

ist ein 9 Zeiler.

Hier die Hilfe vom Designer:
Zitat
Wenn Sie einen Agenten ausführen und nicht warten möchten, bis er abgeschlossen ist, aktivieren Sie "Im Hintergrund-Client-Thread ausführen".
Sie sollten diese Option nur dann aktivieren, wenn der Agent (oder der Agent auf höchster Ebene, der diesen Agenten aufruft) durch Auswählen
von "Durch Ereignis - Auswahl im Menü 'Aktionen'" ausgelöst wird.
Um diese Funktion bestmöglich nutzen zu können, sollte sich die Datenbank auf dem Server befinden und der Agent muss vom Client aufgerufen werden.
Wenn Sie diese Option aktivieren und der Agent Front-End-Klassen referenziert, wird dem Benutzer ein Laufzeitfehler angezeigt.

1) Durch Ereignis - Auswahl im Menü 'Aktionen':
  --> Habe ich im Agenten eingestellt. Ich würde hierzu erwarten, dass es dem Agenten egal ist ob er nun
über das Menü oder direkt aus dem Quellcode gestartet wird!

2) Um diese Funktion bestmöglich nutzen zu können, sollte sich die Datenbank auf dem Server befinden und der Agent muss vom Client aufgerufen werden.
  --> Ist der Fall

Grüße
Bernd
Arbeite klug, nicht hart.

Offline ascabg

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 3.697
  • Geschlecht: Männlich
Re: Agent als Hintergrund-Client-Thread starten
« Antwort #3 am: 06.11.12 - 15:36:18 »
Zitat
1) Durch Ereignis - Auswahl im Menü 'Aktionen':
  --> Habe ich im Agenten eingestellt. Ich würde hierzu erwarten, dass es dem Agenten egal ist ob er nun
über das Menü oder direkt aus dem Quellcode gestartet wird!
Ich glaube Du erwartest in diesem Fall zuviel.

Notes unterscheidet in diesem Fall schon, von wo der Agent aufgerufen wird.


Andreas

Offline Legolas

  • Senior Mitglied
  • ****
  • Beiträge: 446
  • Geschlecht: Männlich
Re: Agent als Hintergrund-Client-Thread starten
« Antwort #4 am: 06.11.12 - 15:42:34 »
Hallo ascabg (Wie spricht man das denn? ;) ),

vermutest du das oder bist du dir da sicher?
Es steht hierzu schließlich nichts eindeutiges in der Hilfe!
Und ... auch per Script kann man Agenten dieses Typs ja schließlich aufrufen.

Grüße
Bernd
Arbeite klug, nicht hart.

Offline pram

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.170
  • Geschlecht: Männlich
    • Foconis Object Framework
Re: Agent als Hintergrund-Client-Thread starten
« Antwort #5 am: 06.11.12 - 17:06:14 »
Du musst den Agenten über @Command(ToolsRunBackroundMacro) aufrufen.

Falls dein QueryClose schon mit Script gefüllt ist, kannst du dir u.U. damit helfen, dass du das @Command über eine (versteckte) Page absetzt:
http://atnotes.de/index.php/topic,52902.msg346607.html#msg346607

Gruß
Roland
Roland Praml

IBM Certified Application Developer - Lotus Notes and Domino 8
Ich verwende das Foconis Object Framework

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz