Wenn Du im Queryclose das Dokument im Backend speicherst, und Du vorher im Prozess ein SaveOptions = "0" eingetragen hast, um das Dokument ohne irgendwelche Zwischenrufe sauber schließen zu können, hast Du das SaveOptions mitgespeichert. Dann (und nur dann) sollte man das SaveOptions vor dem Speichern löschen.
Warum speichern im Backend? Wenn Du einen Workflow hast (mit COSMOS hatten wir solche netten Spielchen), gibst Du das Dokument mittels Schaltfläche in die nächste Stufe. Es berechnen sich alle möglichen Dinge, wie Leser, Verteiler, nächster Bearbeiter, nächste Stufe und und und. Das Dokument hat dann einen Zustand, in dem es evtl. nicht mehr im Frontend gespeichert werden kann (weil z.B. in der nächsten Stufe zwingend eine Eingabe in ein Feld erwartet wird). Trotzdem will man ja die geänderten Einstellungen speichern. Also erfolgt das im Backend. Ablauf grob skizziert:
Button drücken
Speichern im Frontend
-> erfolglos? -> Valdierung negativ, Ende des Prozesses
-> erfolgreich? Validierung positiv
Dokument für die nächste Stufe vorbereiten
Dokument im Backend speichern
SaveOptions = "0"
Dokument schließen
Und dann kommt noch irgendeine "Sauerei" hinterher, die im Queryclose das Dokument nochmal speichern muss (wir hatten das bei Dateianhängen, die wir nicht einfach über Richtextitems bearbeitbar hatten (das gab es so unter R4 noch nicht), sondern die wurden über separate Schaltflächen gelöst, gestartet und mussten natürlich wieder an das Dokument ran). Da das SaveOptions = "0" mitgespeichert, war das Dokument nicht mehr änderbar.
Also Speichern im Queryclose so
Prüfen auf SaveOptions, wenn vorhanden, merken, Feld löschen, Dokument speichern, Feld wieder reinsetzen (falls danach noch eine andere Teilmaske ähnliches treibt).
Das nur mal ein kleiner Einblick in sechs Jahre hochinteressante Entwicklung. War schon ein geiles Teil (und ist es immer noch ...
)