In einer Ansicht sorgt die unten angegebene Funktion für die Erstellung eines Backenddokumentes, welches dem in der Ansicht ausgewählten Dokument angehangen wird. Das Dokument selber wird im Anschluss geöffnet und entspricht einer "Memo" Maske, die für den Mailverkehr benutzt wird. Sollte nun die Maske versendet werden, wird das Richtextfeld nicht übernommen.
Dies kann durch das hinzufügen eines uidoc.refresh(true) behoben werden, der Nachteil ist jedoch das der Wert des ParentDocumentUNID verloren geht.
Eine Lösung dafür wäre das hinzufügen eines weiteren Feldes, dass vor dem uidoc.refresh(true) die ParentDocumentUNID zwischenspeichert, um im Anschluss die Beziehung erneut herzustellen.
Dies ist jedoch relativ umständlich und ich wollte anfragen ob jemand eine Alternative für dieses Problem kennt.
Vielen Dank im voraus!
Funktion zur Erstellung der anzuhängenden Mail (Ansicht)
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 uiws.EditDocument(True, docNew)
Sendenfunktion (Maske)
Dim uiws As New NotesUIWorkspace
Dim uidoc As NotesUIDocument
Dim doc As NotesDocument
Set uidoc = uiws.CurrentDocument
Set doc = uidoc.Document
'uidoc.Refresh(True)
Call doc.Save(True,False,False)
Call doc.Send(False)
Call uidoc.Close(True)
Andere Baustelle, aber ein ähnliches Problem.
Damit funktioniert es. Ohne Refresh oder Reload.
Sub Click(Source As Button)
' This Aktion finds a system based on specific data located
Dim thissession As New NotesSession
Dim thiswksp As New notesuiworkspace
Dim thisdb As NotesDatabase
Dim thisuidoc As NotesUIDocument
Dim ok As Boolean
Dim userlanguage As String
Dim doc As notesdocument
Set thisdb = thissession.CurrentDatabase
Set thisuidoc = thiswksp.CurrentDocument
' should be saved before calling because it need to be a reply
If thisuidoc.IsNewDoc = True Then
Call thisuidoc.Save
End If
Set doc = thisuidoc.Document
doc.txtWflDowntime = "0"
userlanguage = findcurrentuserlanguage
OK = GetdocumentFromDatabase(thisuidoc, CALLPARAMETER, buildlanguageliststring(userlanguage,GetLanguageitem(userlanguage, "DOWNTIME ACTIONS & STRINGS")),"")
Call Doc.Save( True, False) ', True )
Doc.saveoptions="0"
Call thisuidoc.close
Set thisuidoc=thiswksp.editdocument(True,Doc,False)
End Sub
Dafür aber mit
Case 4, 7
' this should do the trick for creating a Doclink
Set copytortitem = me_thisuidoc.Document.CreateRichTextItem(foundfield(1))
Call copytortitem.AppendDocLink(founddoc,me_founddb.Title)
Call copytortitem.update
Call copytortitem.Compact
Update und Compact auf dem RtItem, weil nämlich sonst beim ersten Klicken auf den Doclink der Client hasta la vista sagt.
Danke für deinen Vorschlag.
Ich habe nun ein docnew.save nach meinem makeresponse eingefügt.
Funktion zur Erstellung der anzuhängenden Mail (Ansicht)
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)
Sendenfunktion (Maske)
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)
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.