Das Notes Forum

Domino 9 und frühere Versionen => ND6: Entwicklung => Thema gestartet von: RvM am 28.06.05 - 17:01:39

Titel: Zwei Makros im WebQuerySave
Beitrag von: RvM am 28.06.05 - 17:01:39
Wie kann ich im WebQuerySave zwei Makros hintereinander laufen lassen?
Titel: Re: Zwei Makros im WebQuerySave
Beitrag von: TMC am 28.06.05 - 21:15:01
AFAIK im WebQuerySave-Event direkt nicht möglich, ich glaub es läuft dann nur der erste Agent an, oder?

Was gehen sollte: Du erzeugst einen "Container-Agenten", welchen Du vom WebQuerySave-Event aufrufst. In diesem Container-Agenten rufst Du dann Deine eigentlichen Agenten auf.
Titel: Re: Zwei Makros im WebQuerySave
Beitrag von: datenbanken24 am 28.06.05 - 22:29:32
Ich denke, es ist Dir sicher bekannt
und ich weiß auch, daß dies der R5 Thread ist,
aber trotzdem die Info:

In R6 geht das wunderbar und problemlos.

Sorry, wenn's hier im R5 Thread eher weh tut statt hilft.

Gruß,
Uwe
Titel: Re: Zwei Makros im WebQuerySave
Beitrag von: Mark³ am 23.03.06 - 14:48:32
Ich habe folgendes vor:

im WebQuerySave laufen hintereinander 2 Agenten (Notes 6):

der 1. ist ein LotusScript-Agent und ändert Felder im Doc (über DocumentContext)
der 2. ist ein JavaAgent (RealWorkFlow) und nimmt bezug auf die von 1. geänderten Felder

Wird das zuverlässig laufen? Oder muss ich den 2. Agenten aus dem 1. heraus starten? Oder geht das gar nicht weil ich im Agenten das Backend-Doc ändere, die Änderungen aber nicht speichern darf weil nach WebQuerySave ja automatisch gespeichert wird?
Titel: Re: Zwei Makros im WebQuerySave
Beitrag von: datenbanken24 am 23.03.06 - 15:40:19
Zwei WQS in der Maske aufrufen:
Das funktioniert und läuft auch völlig zuverlässig.

Man schreibt einfach die zwei Agenten im WQS Event der Maske untereinander.

Beachten sollte man:
Man darf NIEMALS im WQS Agenten selbst ein doc.Save absetzen.
Davor warnt sogar IBM explizit.
Es kommt zwar manchmal kein direkter Fehler, aber auf jeden Fall "ein unerwartetes, nicht vorhersagbares Funktionsergebnis..."
Is aber auch irgendwo logisch. Der WQS macht immer am Ende selbst ein Save.

Und DANACH startet er den zweiten WQS-Agenten.
Das heißt, wenn der erste WQS etwas neues in das Dokument hineinschreibt, kann der zweite das schon auslesen und verarbeiten.

Wir nutzen das z.B., wenn wir hochgeladene Uploadfiles mit dem ersten WQS speichern und dann mit Java-Agenten weiterverarbeiten, z.B. Thumbnails generieren, etc. Dazu muss das Dok schon mal gespeichert sein.

Im Gegensatz dazu, wenn der zweite Agent aus dem ersten heraus aufgerufen wird,
wird dieser VOR dem Speichern ausgeführt. Erst nach Ablauf des zweiten (inneren) Agenten
wird das Dokument dann durch den ersten gespeichert.
Ein explizites Save im inneren Agenten geht jedoch auch hier hundertprozentig schief.

Je nachdem, was man braucht, kann man sich für eine der beiden Varianten entscheiden.

Geht aber nur ab ND 6.

Gruß,
Uwe
Titel: Re: Zwei Makros im WebQuerySave
Beitrag von: Mark³ am 23.03.06 - 16:04:32
stimmt, klappt super   :-*

ich hatte leider einen falschen Fehler gemacht  >:D und im ersten der beiden Agenten ein GetDocumentByKey gemacht und den Key aber erst in der nächsten Zeile gefüllt, daher dachte ich es funktioniert nicht wegen der beiden Agenten  :o