Domino 9 und frühere Versionen > ND8: Entwicklung

Das Dokument wurde noch nicht gespeichert

<< < (3/4) > >>

Axel:

--- Zitat von: Klafu am 26.08.11 - 09:49:01 ---@If(@Command([FileSave]);@Prompt([Ok];"test";"agent")&@Command([RunAgent];"aSubmitApplication");@Prompt([Ok];"test";"NICHT")));@Return(""))

--- Ende Zitat ---

Bernhard hast es ja schon geschrieben, dass geht so nicht.

Wenn du mehrere Formelanweisungen hintereinander, z.B. in einem IF-Zweig, ausführen willst, dann musst du das mit @Do(...) machen.

In deinem Fall müsste das so aussehen:

@If(@Command([FileSave]);@Do(@Prompt([Ok];"test";"agent"); @Command([RunAgent];"aSubmitApplication"));@Prompt([Ok];"test";"NICHT")));@Return(""))

Axel

koehlerbv:
Friggelt der Agent eventuell auch noch am geöffneten Dokument im Backend herum? Das würde auch die Meldung "Wollen Sie speichern?" erklären.

Ich verstehe nach wie vor nicht, warum Du das nicht gleich alles in LotusScript machst. Die Lösung mit dem Buhtong halte ich auch für kritisch - zum Speichern / Beenden muss man ja nicht zwingend eben diesen benutzen.

Bernhard

Klafu:
Danke euch beiden.
Diese Nachricht hab ich nur Testweise eingebaut. Das heißt, dass auch ohne diese Prompts der Fehler kommt.
Genau so, wenn ich ein DO einbauen - selber Erfolg.

Der Agent jedoch, greift tatsächlich auf das Dokument zu. Und zwar über NotesDocument und NotesUIDocument.
Kann das daran liegen?
Sollte dann der Debugger aber nicht erst starten?

Warum ich es so mache ist, weil es den Button schon gab und ich die Funktion durch den Agenten gerne erweitern würde.
Und da davon nicht nur diese Maske betroffen ist, dachte ich mir, ich regel das Zentral über einen Agentenaufruf.

Chris

Klafu:
Also, ich hab es nun geschluckt und hab das ganze in LS umgesetzt. Warum das nicht tut, hab ich dennoch nicht verstanden.
Den Button gibts aber auch noch. Nur eben kürzer :)

ergebnis := @Prompt([YesNo];"Hinweis";"Wollen Sie den Dokument speicher?");
@If(ergebnis = 1;@Do(@Command([FileSave]);@Command([ToolsRunMacro];"aSubmitApplication2"));@Return(""))

Nun läuft es auf jeden Fall ... fast, denn sobald im Agenten einmal ein Call Uidoc.Save kommt, wird der Agent kommentarlos beendet.
Kommt er damit nicht klar, dass er im QuerySave Felder prüfen muss?

Chris

ata:
... wenn du im QuerySave - also vor der eigentlichen Speicherung über einen Agenten einen Save absetzt, dann kann das nicht gehen - Nested event...

Du hast ein Problem mit den Events - du musst dir klar machen wann die laufen und was sie ausführen. Bernhard und Axel hatten dir ja die Tipps für die Architektur bereits gegeben... ;) - deine Idee den Button mittels eines Agenten zu erweitern, damit der Agent auch weiterverwendet werden kann ist zunächst ja richtig - aber umständlich und in deinem Fall mit den Events eben falsch.

Nimm alles in eine LS-Library und ruf die entsprechenden Funktionen von dort aus auf...

Toni

Navigation

[0] Themen-Index

[#] Nächste Seite

[*] Vorherige Sete

Zur normalen Ansicht wechseln