Das Notes Forum

Lotus Notes / Domino Sonstiges => Java und .NET mit Notes/Domino => Thema gestartet von: Sebastianh am 26.03.09 - 14:48:56

Titel: RichtextItem löschen und neu erstellen
Beitrag von: Sebastianh am 26.03.09 - 14:48:56
Hallo,

folgendes Problem: Ich habe ein Dokument, lösche dessen Body-Item, versuche das dann neu zu erstellen (da ich den Inhalt komplett neu erstellen will), und an dieser Stelle wird mir gesagt, das Item sei noch vorhanden. Folgender Code:

Code
RichTextItem body = (RichTextItem) dokument.getFirstItem("Body");
body.remove();
dokument.save();
RichTextItem newbody = dokument.createRichTextItem("Body");

wirft diese Exception:
Code
NotesException: Rich text item Body already exists
        at lotus.domino.NotesExceptionHelper.read(Unknown Source)
        at lotus.domino.NotesExceptionHolder._read(Unknown Source)
        at lotus.priv.CORBA.iiop.RepImpl.invoke(Unknown Source)
        at lotus.priv.CORBA.portable.ObjectImpl._invoke(Unknown Source)
        at lotus.domino.corba._IDocumentStub.createRichTextItem(Unknown Source)
        at lotus.domino.cso.Document.createRichTextItem(Unknown Source)

Dabei besagt die Hilfe zu RichtextItem.remove():
"Permanently deletes an item from a document."

Was mache ich diesmal falsch?

Gruß,
Sebastian
Titel: Re: RichtextItem löschen und neu erstellen
Beitrag von: Sebastianh am 26.03.09 - 15:09:53
Problem gelöst:

Code
dokument.removeItem("Body");

erfüllt seinen Zweck wesentlich besser!
(auch wenn das nicht erklärt, warum RichtextItem.remove() nicht funktioniert)
Titel: Re: RichtextItem löschen und neu erstellen
Beitrag von: koehlerbv am 26.03.09 - 16:48:36
Das von Dir beobachtete tritt vermutlich genau dann auf, wenn nicht nur ein Item "Body" existiert. In der Regel ist das der Fall, wenn der Inhalt des Items mehr als 64 kB umfasst. Du hast dann nur das erste Items dieses Namens erwischt.

IIRC entfernt NotesDocument.RemoveItem alle Vorkommen des Items mit dem angegebenen Namen.

Bernhard