Domino 9 und frühere Versionen > ND8: Entwicklung

Agent mit dem angegebenen Namen kann nicht gefunden werden

<< < (2/2)

pram:
ja, das Problem tritt z.b. dann auf, wenn man ein Frameset in DB1 mit einer Outline aus DB1 hat und eine View anzeigt, die aus DB2 stammt.

Will man nun einen Agent in der Outline starten, so wird dieser nicht (wie man erwarten würde) in DB1 gesucht, sondern in DB2.

Ich vermute dass es bei dir ähnlich ist, dass Notes einfach nicht weiß, welche DB aktuell offen ist.

ggf ein Workaround wäre: Anstatt einen Agenten zu starten mit @Command([Compose]... ) eine Maske zu öffnen.
Der Skript-Code kommt dann ins initialize der Maske und ins QueryOpen ein continue=false

Gruß
Roland

Axel:

--- Zitat von: pram am 08.12.10 - 16:37:38 ---ja, das Problem tritt z.b. dann auf, wenn man ein Frameset in DB1 mit einer Outline aus DB1 hat und eine View anzeigt, die aus DB2 stammt.

Will man nun einen Agent in der Outline starten, so wird dieser nicht (wie man erwarten würde) in DB1 gesucht, sondern in DB2.

Ich vermute dass es bei dir ähnlich ist, dass Notes einfach nicht weiß, welche DB aktuell offen ist.

--- Ende Zitat ---

Bingo!!

Das ist es. Ich hab's auf die Schnelle getestet. Die Startseite enthält auf der linken Seite die Gliederung und rechts wird oben die Inbox und unten der Kalender aus der Mailk-DB des entsptrechenden Users angezeigt.
Klicke ich einmal in die Inbox und klicke dann auf ein Gliederungselement an, dann kommt die Meldung.

Klicke ich zuerst einmal auf die freie Fläche im Frame mit der Gliederung und dann auf ein Element wird der Agent ausgeführt.

Manchmal sieht man den Wald vor lauter Bäumen nicht. Danke für den Tipp.

Ich muss mir jetzt nur noch eine Lösung einfallen lassen. Das mit der Maske geht so nicht, da über den Agent lediglich eine Datenbank gestartet wird. Mal sehen was mir da einfällt.

Axel

pram:

--- Zitat ---Das mit der Maske geht so nicht, da über den Agent lediglich eine Datenbank gestartet wird. Mal sehen was mir da einfällt.
--- Ende Zitat ---

Da hab ich mich vielleicht noch unklar ausgedrückt. Die Maske ersetzt den Agenten (erscheint aber nicht am Bildschirm)

Da dein Agent bereits in skript ist, müsste es reichen, diesen skript-code ins initialzie der Maske zu kopieren:

--- Code: ---sub initialize
     ' deinAgentCode, z.B.
     ws.openDatabase(sess.getEnvironmentString(...))
end sub

sub queryOpen(source, continue)
     continue = false ' verhindert das Öffnen
end sub

--- Ende Code ---
Nun kann es sein, dass du gewissermaßen recht hast, weil bestimmte UI Aktionen im initialize vielleicht nicht möglich ist. (öffnen einer DB gehört wohl dazu)

Dann muss man es wie Folgt im Postopen machen (queryOpen bleibt dann leer)

--- Code: ---sub postOpen(source)
     ' dein code
     source.close ' uiDoc schließen. Maske sollte ein verstecktes Feld SaveOptions = "0" enthalten
end sub

--- Ende Code ---

Nachteil: Maske erscheint kurz am Bildschirm, da kann man aber einen Text rein machen: "Bitte warten" oder so was in der Richtung.
Leider gibt es kein "offizielles" @Command um einen Agenten in einer bestimmten DB zu starten, außer vieelleicht noch das:
http://www.johndavidhead.com/jhead/johnhead.nsf/dx/ibm-just-blew-me-away-...-?opendocument&comments

Gruß
Roland

Axel:
Der Weg über die Maske ist anscheinend der im Moment einzigste Weg das geregelt zu kriegen.

Im Initialize-Event funktioniert das Ganze nicht 100%ig sauber, aber im Postopen sieht's recht gut aus.

Danke nochmal für den Tipp.


Axel

Navigation

[0] Themen-Index

[*] Vorherige Sete

Zur normalen Ansicht wechseln