Questions & Answers

robert_wieser
I'm new here

Speicherung von komplexen Datentypen im Content2

Hallo Community,

ich habe ein Problem beim Speichern komplexer Datentypen im Conent2-Bereich.

Beim Zurรผckspeichern sind die verรคnderten Spalten leer.

Kann mir bitte jemand sagen, wie man schreibend korrekt auf XML-Strukturen (Editoren sind:DomEditorValueImpl oder LinkListEditorValueImpl) zurgreifen kann.

(Die Editoren bekomme ich mit:   EditorValue<?> editorValue = editorWrapper.getAccessEditor(view.getStore().getProject().getUserService(), true);)

Hier der Auszug meines Codes:

Session session = view.getSchema().getSession();

// entity hohlen

Object valueObject = entity.getValue("Name");

if (valueObject instanceof EditorWrapper) {

     org.w3c.dom.Element node = editorWrapper.getData();

     // verรคnderen des XML-Objects

     EditorWrapper newEditorWrapper = new EditorWrapper(node);

     entity.setValue(column, newEditorWrapper);

}

session.commit();

session.release(entity);

session.commit();

Vielen Dank im Vorraus fรผr eure Hilfe

Robert Wieser

0 Kudos
4 Replies
tklein
I'm new here

Hallo,

das Thema "per Access-Api" Datensรคtze bearbeiten wurde in der Community schon an mehreren stellen beantwortet.

Auch bei Entitys sollte รผber das Data bzw. Dataset gearbeitet werden. Siehe dazu:

http://www.e-spirit.com/odfs42/access/de/espirit/firstspirit/access/store/contentstore/class-use/Dat...

0 Kudos

Hallo,

danke erst mal fรผr die Unterstรผtzung

Leider hift mir der Weg รผber DataSet nicht weiter.

Derzeit abeite ich an einem Modul, bei dem die Uid der Linktemplates verรคndert werden. Da bei Standard-Getttern das XML geparst komme ich um den Parsing-Error nicht herum.

Benennt man zuerst die Uid's um, erzeugt man bereits beim ersten Hohlen des Data-Objekts einen Error. Im anderen Fall halt beim Hohlen nach der Umbenennung.

Unsere derzeitige Lรถsung bei Seiten ist das Data-Objekt zu speichern, anschlieรŸend zu nullen, Uid umbenennen, gespeichertes Objekt korrigieren und schlieรŸlich zu setzten.

Jedoch funktioniert das nullen des (Entity-)Data-Objekts nicht, so dass dieser Weg ausgeschlossen werden muss.

Ein mรถglichst direkte, nicht gewrappter Zugriff kรถnnte die Lรถsung sein.

Viele GrรผรŸe

Robert Wieser

0 Kudos

Robert Wieser schrieb:

Leider hift mir der Weg รผber DataSet nicht weiter.

warum nicht? Denn dann kommt man an das Data / FormData Objekt. Von da aus dann an die EditorValues bzw. FormFields und somit auch an gesetze Links.

Dadurch benutzt man dann keinen keinen EditorWrapper, der im รผbrigen auch nicht Access-Api Bestandteil ist.

รœber welche FirstSpirit Version reden wir? Und wie sieht der Anwendungsfall konkret aus?

0 Kudos

Hallo,

sorry, dass ich erst Heute antworten kann, wir haben gestern noch lรคnger versucht das Problem allein zu lรถsen.

Speicherung scheint erst mal zu funktionieren, mit new EditorWrapper(org.w3c.dom.Element).

Der Weg รผber Data scheidet aus, wegen der Umbennung der Linktemplate-Uid's.

Um eine Parsing-Exception zu Umgehen mรผssen wir das Data-Objekt i.d.R. wegspeichern, die Referenz im Owner nullen. Dann werden die Template-Uids umbennant. AnschlieรŸend muss man die Refenzen im Data-Objekt anpassen. Jetzt kann das weggespeicherte, angepasste Data-Objekt zurrรผckgesetzt werden ohne eine ParsingException zu erzeugen.

Ich verstehe, dass der Weg รผber die Api von eSpirit preferiert wird, aber machmal geht's halt nicht anders.

(Oder mit meinen Mitteln geht's nicht anders)

Danke auf jeden Fall nochmal fรผr die Unterstรผtzung.

Viele GrรผรŸe

Robert Wieser

0 Kudos

Type a product name