Domino 9 und frühere Versionen > ND8: Entwicklung
Das Dokument wurde noch nicht gespeichert
Klafu:
Hallo zusammen,
ich hab gerade den folgenden Fall, dass ich in einer DB ein neues Dokument erstelle.
Ich befülle alle Pflichtfelder (Prüfung im Querysave) und will das Dokument - via @Commands im Button - speichern.
Das passt auch alles soweit. Nur Im Script steigt er am Ende aus
--- Zitat ---ergebnis := @Prompt([YesNo];"Hinweis";"Wollen Sie speichern?");
@If(ergebnis = 1&@Command([FileSave]);@Do(
...
@SetField
...
@If(@Command([FileSave]);@Command([ToolsRunMacro];"aSubmitApplication");""));@Return(""))
--- Ende Zitat ---
Das ist das Ende vom Script. Dann kommt die Warnmeldung, dass das Dokument noch nicht gespeichert wurde und dann ist Schluss.
Wenn ich das Dokument schließ, kommt die Notes-Eigene Speicherabfrage. Wenn ich auf Nein klicke ist das Dokument trotzdem gespeichert und das Set Field ist auch noch gesetzt worden. Das heißt für mich, das es vermutlich am Agentenaufruf liegt - der ist in LS geschrieben und der Debugger wird auch nicht geöffnet.
Ich hab es auch schon mit @Command([RunAgent]) und @DocMark([Update]) probiert. Dort kommt aber die selbe Meldung.
Wie kann ich mit Formel einen Agenten in einem - mit @Command([FileSave)] gespeicherten Dok. - aufrufen?
Gruß Chris
Axel:
--- Zitat von: Klafu am 25.08.11 - 10:16:51 ---Ich befülle alle Pflichtfelder (Prüfung im Querysave) und will das Dokument - via @Commands im Button - speichern.
--- Ende Zitat ---
Warum denn so umständlich?
Wenn du die Prüfung der Pflichtfelder im QuerySave ausführst warum rrufts du denn den Agenten auch nicht von dort aus? Mit Script bist du wesentlich flexibler und hast 1000 und eine Möglichkeit.
Axel
Klafu:
Hey Axel,
danke für die Antwort!
Geht das denn wenn der Agent das Dokument noch weiterverarbeiten und prüfen soll ?
Ab welcher stelle im QuerySave ist das Dokument denn gespeichert ?
Aber dem "END SUB"? :)
Bekomm grad die Meldung
"Notes error: Unsupported trigger and search in the background or embedded agent"
Chris
koehlerbv:
Chris, mach das Überprüfungsgeraffel nur im QuerySave (oder rufe eine entsprechende Funktion in einer ScriptLibrary daraus auf). Das QuerySave hat nicht umsonst den Parameter Continue - wenn Du den im Fehlerfall auf False setzt, dann wird aus QuerySave ein "DoNotSave".
Beispiele:
Im QuerySave only:
... Code ...
If Source.Document.MyItem (0) = "" Then
Messagebox "Gemecker!"
Continue = False
Exit Sub 'Besser: Sprung zu definiertem Ausstiegspunkt!
End If
... Code ...
In einer Function:
Function CheckMyValues (Source As NotesUIDocument) As Integer
... Code ...
If Source.Document.MyItem (0) = "" Then
Messagebox "Gemecker!"
CheckMyValues = False
Exit Function 'Besser: Sprung zu definiertem Ausstiegspunkt!
End If
... Code ...
Der Aufrug der Function und der Bezug zu Continue sollte klar sein :)
HTH,
Bernhard
Klafu:
Danke, Bernhard! :)
Das QuerySave hat ja bisher funktioniert und das Dokument wird auch gespeichert. Aber scheinbar nicht ganz.
Denn der Agent wird ja nicht aufgerufen, weil das Dokument angeblich nicht gespeichert ist.
Wenn ich dann aber das Script beende und das Dokument einfach nur schließe, dann passt das Dokument ja - Auch die wichtigen Felder sind gesetzt. Nur der Agent ist nicht geloffen.
Bisher hat ein einfach @Command([ToolsRunMacro];"AGENT")immer geklappt.
Ich hab nur bestimmt irgendwas übersehen 8)
Chris
Navigation
[0] Themen-Index
[#] Nächste Seite
Zur normalen Ansicht wechseln