Am Anfang des Agenten hole ich mir meine zwei Rich Text Felder:
printPage = this.getRTField(doc, FIELDNAME_PRINT); actualPrintPage = this.getRTField(doc, FIELDNAME_PRINT_ACTUAL);
Danach fange ich mit dem Löschen nach dem Verfahren in meinem letzten Post im Feld actualPrintPage an. Am Ende werden dann beide Felder mit jeweils einem Anhang wieder befüllt. Also ist am Ende in printPage eine Historie der Anhänge und in actualPrintPage immer der letzte / aktuelle Anhang.
Hier die Funktion zum Holen der Felder:
private RichTextItem getRTField(final Document doc, final String fieldname) throws NotesException { RichTextItem rti; if (doc.hasItem(fieldname)) { rti = (RichTextItem) doc.getFirstItem(fieldname); } else { rti = this.createRTField(doc, fieldname); } return rti; } private RichTextItem createRTField(final Document doc, final String fieldname) throws NotesException { RichTextItem rti; rti = doc.createRichTextItem(fieldname); return rti; }
Was ich jetzt noch probiert habe:
this.removeAllEmbeddedObjects(doc, actualPrintPage);
und
private void removeAllEmbeddedObjects(final Document doc,
final RichTextItem rti) throws NotesException {
Vector objects;
Iterator iterator;
EmbeddedObject obj;
objects = rti.getEmbeddedObjects();
iterator = objects.iterator();
while (iterator.hasNext()) {
obj = (EmbeddedObject) iterator.next();
obj.remove();
System.out.println("remove");
doc.save();
}
}
Alles anzeigen
Das Ergebnis ist aber leider das gleiche: Der ehemalige Anhang aus actualPrintPage ist nicht gelöscht sondern befindet sich am Ende der Maske.