Domino 9 und frühere Versionen > ND6: Entwicklung
Richtextfeld wird nicht ohne uidoc.refresh gespeichert
CK:
@Axel
Ok das hatte ich vorher nicht versucht, weil ich von etwas anderem ausgegangen bin, aber auch an dieser Stelle bewirkte das Refresh, dass meine ParentDocumentUNID verloren geht.
Hallo Thomas Schulte,
wenn ich den Quellcode richtig verstanden habe, soll das sichern des Frontends die Speicherung des RT-Feldes bewirken, sofern es sich um ein neues Dokument handelt.
Bei meinem Problem geht dies leider nicht, weil durch die Ausführung von "Call uidoc.Save", mein RT-Feld zwar gespeichert wird, aber meine ParentDocumentUNID erneut verloren geht, oder habe ich etwas übersehen?
Vielleicht ist die Überschrift für mein Problem etwas schlecht gewählt, dass uidoc.save wäre eine Alternative zu uidoc.refresh(true). Dies hat jedoch zur Folge das meine ParentDocumentUNID gelöscht wird, obwohl ich diese benötige. Ich suche daher nach einer Lösung die dafür sorgt, dass mein Dokument das RT-Feld und die ParentDocumentUNID speichert und versendet, jedoch ohne weitere Variable oder verstecktem Feld, dass dazu benutzt wird die ParentDocumentUNID zu speichern, um im Anschluss über diesen Wert das ursprüngliche Dokument zu suchen, um eine erneute Zuordnung mit makeResponse() zu realisieren.
Thomas Schulte:
Dein Makeresponse sollte direkt von einem Newdoc.save gefolgt werden. Dann verlierst du auch die Zuordnung nicht mehr.
CK:
Danke für deinen Vorschlag.
Ich habe nun ein docnew.save nach meinem makeresponse eingefügt.
Funktion zur Erstellung der anzuhängenden Mail (Ansicht)
--- Code: ---Dim uiws As New NotesUIWorkspace
Dim sess As New NotesSession
Dim uidoc As NotesUIDocument
Dim doc As NotesDocument
Dim docNew As NotesDocument
Dim db As NotesDatabase
Dim dc As NotesDocumentCollection
Set db = sess.CurrentDatabase
Set dc = db.UnprocessedDocuments
Set doc = dc.GetFirstDocument
Set docNew = New NotesDocument( db )
Call docNew.ReplaceItemValue("Form", "Memo")
Call docNew.MakeResponse(doc)
Call docNew.Save(True,False,False)
Call uiws.EditDocument(True, docNew)
--- Ende Code ---
Sendenfunktion (Maske)
--- Code: --- Dim uiws As New NotesUIWorkspace
Dim uidoc As NotesUIDocument
Dim doc As NotesDocument
Set uidoc = uiws.CurrentDocument
Set doc = uidoc.Document
'Ich habe beide Methoden einzeln an dieser Stelle
'eingefügt, jedoch wurde erneut die ParentDocumentUNID
'gelöscht.
uidoc.Refresh(True)
uidoc.Save(false)
Call doc.Send(False)
Call uidoc.Close(True)
--- Ende Code ---
Leider wird, wie im Quellcode beschrieben, die ParentDocumentUNID auch hier wieder gelöscht.
Ein weiteres Problem wäre, selbst wenn es so funktionieren würde, dass sofern der Benutzer sich dafür entscheidet das Memo doch nicht zu schreiben, dass Dokument in der Datenbank verbleiben würde.
Dies hätte zur Folge das eine weitere Überprüfung erfolgen müßte, die dafür sorgt das nicht versendete Dokumente gelöscht werden.
Nach Möglichkeit sollte die Alternative, weniger umständlich sein als meine Lösung mit der temporären Speicherung der ParentDocumentUNID.
e_bg:
Prüfe mal bitte den Maskentyp (Eigenschaft Document). Damit $Ref beim uisave erhalten bleibt muss dieser vom Typ "Antwort" sein.
CK:
Hallo e_bg,
vielen Dank für den Hinweis, das war mein Fehler.
Navigation
[0] Themen-Index
[*] Vorherige Sete
Zur normalen Ansicht wechseln