Domino 9 und frühere Versionen > ND6: Entwicklung
AppendRTItem meldet "Missing rich text object"
(1/1)
Basti07:
Hallo zusammen,
ich verzweifle schon den ganzen Tag an der Umsetzung einer Kleinigkeit und komme auch mit Hilfe des Forums zu keiner Lösung.
Ich habe eine Maske mit einem RichtTextFeld (RTF), welches vom Anwender mit Attachments gefüllt werden kann.
Im Querysave veranlasse ich, dass der Inhalt des RTF in ein RTF eines neuen Dokuments geschrieben wird und per NewDoc.Send an eingetragene Empfänger versendet wird.
Wenn man jetzt versucht die Maske - mit gefülltem RichtTextFeld - zu speichern, erhält man bei der Zeile "Call rtitemNew.AppendRTItem( rtitemAkt )" den Fehler: Missing rich text object obwohl das RichtTextFeld mit Inhalt gefüllt ist.
Bitte gebt mir einen Tipp was ich falsch mache!
Danke
Gruß Basti
--- Code: ---Sub Querysave(Source As Notesuidocument, Continue As Variant)
Dim workspace As New NotesUIWorkspace
Dim s As New NotesSession
Dim doc As NotesDocument
Dim uidoc As NotesUIDocument
Dim db As NotesDatabase
Dim rtitemAkt As NotesRichTextitem
Dim rtitemNew As NotesRichTextItem
Set doc = Source.Document
Set uidoc = workspace.CurrentDocument
Set db = s.CurrentDatabase
Set newDoc = New NotesDocument( db )
Set rtitemAkt = doc.GetFirstItem( "Anlage")
Set rtitemNew = New NotesRichTextItem( newDoc, "Body" )
Call rtitemNew.AppendRTItem( rtitemAkt )
newDoc.Subject = source.FieldGetText("Statusaenderung_Betreff_1")
Call newDoc.Send( False, doc.SendTo )
source.Close(True)
End Sub
--- Ende Code ---
pram:
Hallo Basti,
im gegensatz zu normalen Items kannst du auf Richtextitems nicht im Backend zugreifen, so dass die Änderungen sofort im UI sichtbar sind.
Dies geht erst im postSave oder nach einem uiDoc.refresh(true), welches aber auch einige Fallstricke mit sich bringt.
Gruß Roland
koehlerbv:
RTIs sind die einzigen Item-Types, die erst nach einem expliziten Speichern im Backend zur Verfügung stehen.
Im QuerySave kann Dein Code also nicht funktionieren - die Fehlermeldung beschreibt die reale Situation.
Falsch wäre, im QuerySave jetzt ein Backend-Save durchzuführen - das Backend weiss hinsichtlich RTI in diesem Moment nichts vom Frontend.
Als Alternativen bieten sich die Events PostSave oder QueryClose an. Zu letzterem: Setze ein Item (welches sich auf ein cfd-Feld bezieht), was dem QueryClose sagt, dass real etwas zu tun ist (falls machbar).
HTH,
Bernhard
Basti07:
Der Tipp mit dem PostSave hat mir geholfen!
Vielen Danke euch beiden!
Basti07:
Jetzt muss ich mich leider doch nochmal zu Wort melden.
Wie schon gesagt, funktioniert der Mailversand mit RTI über das PostSave einwandfrei. Dennoch kommt es sporadisch vor, dass er das Attachment aus dem RTF nicht "richtig" mitverschickt.
Das Mail wird in der Inbox mit der bekannten Büroklammer und auch dem Feld $FILE angezeigt. Im geöffnetem Mail ist das Attachment aber nicht zu sehen...
Wie kann das sein?
Gruß Basti
Navigation
[0] Themen-Index
Zur normalen Ansicht wechseln