- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Per Skript Medien-Objekte in Datenquelle importieren
Hallo community,
ich mรถchte in einem Import-Skript Daten aus einer CSV-Datei in eine Datenquelle schreiben. Dabei ist in der Datei nur der Name eines Bildes vorhanden. Die Bilder liegen in der Medienverwaltung. Mittels der Methode getMediaByUid() bekomme ich ein Medien-Objekt was diese Form hat:
<MEDIUM editor="1" filename="Dateiname" id="27357" revision="11331" type="pic" uniquedescription="Dateiname"><LANG displayname="Dateiname" language="DE"/><PICTURE><RESOLUTION crc="e2ade3fd" extension="jpg" height="300" pictureRevision="11331" resolutionid="ORIGINAL" size="22984" width="212"/></PICTURE></MEDIUM>
Wie bekomme ich dieses Objekt nun in mein Datenfeld vom Typ PICTURE?
Grรผรe, Nic
- Labels:
-
Developers
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Indem Sie die Spalte รผber die gemappte Eingabekomponente befรผllen. Bei einem INPUT_PICTURE geht dies so.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hallo Herr Feddersen,
auf diesem Wege habe ich es versucht und ich bekomme folgenden Fehler:
java.lang.IllegalArgumentException: de.espirit.or.SchemaException: illegal type class de.espirit.firstspirit.access.editor.value.GraphicalMediumImpl for attribute 'image' - correct type is class de.espirit.firstspirit.client.editorcomponent.EditorWrapper
at de.espirit.or.impl.EntityImpl.setValue(EntityImpl.java:716)
at de.espirit.or.impl.EntityImpl.setValue(EntityImpl.java:199)
at com.communicode.agro.main.Main$1.run(Main.java:236)
at com.communicode.agro.main.Main.importCSV(Main.java:263)
at com.communicode.agro.main.Main.main(Main.java:53)
Caused by: de.espirit.or.SchemaException: illegal type class de.espirit.firstspirit.access.editor.value.GraphicalMediumImpl for attribute 'image' - correct type is class de.espirit.firstspirit.client.editorcomponent.EditorWrapper
at de.espirit.or.impl.schema.EntityTypeImpl.getAttribute(EntityTypeImpl.java:158)
at de.espirit.or.impl.EntityImpl.setValue(EntityImpl.java:709)
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Die Exception sieht so aus als wรผrden sie nicht die Eingabekomponente befรผllen, sondern direkt auf den Entities arbeiten. Ohne den Sourcecode gesehen zu haben, bleibt das aber eine Vermutung.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Ich erweitere das csvimport-Skript vom helpdesk, hier der Part:
} else if (columnNames[col].equals("image")) {
jpg = value.replace(".jpg", "");
jpg = jpg.replace("-", "_");
print("jpg = "+jpg+ "\n");
media = mediaStore.getMediaByUid(jpg) ;
print("media = "+media.toXml(true)+ "\n");
pic = media.getMediaContent(lang);
print("pic = "+pic+ "\n");
//PictureEditorValue
dataset = t.getDataset(po);
data = dataset.getData();
pictureEditor = data.get("st_image").getEditor();
print("pictureEditor = "+pictureEditor+ "\n");
//GraphicalMedium
graphicalMedium = pictureEditor.get(lang);
graphicalMedium.setMedium(media);
print("graphicalMedium = "+graphicalMedium+ "\n");
po.setValue(columnNames[col], graphicalMedium);
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Bei Datensรคtzen wรคre es sinnvoller mit dem Interface DataSet zu arbeiten. Wenn Sie direkt auf dem Entity arbeiten mรผssen Sie fรผr komplexe Feldtypen (im Schema-Editor entspricht das dem Datentyp "FirstSpirit Editor") รผber das Interface AccessEditorHolder gehen.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hallo,
รผber welche FS-Version reden wir hier?
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Version Server: 4.2.432.43881
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Wo ist denn das Interface AccessEditorHolder dokumentiert?
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
1. AccessEditorHolder ist KEINE รถffentliche Schnittstelle, deshalb auch nicht dokumentiert und sollte auch nicht verwendet werden.
zu ihrem Problem:
sie mรผsssen im Editor das Persistenzobjekt wieder setzen [1] und das Dataobjekt (ab Version 4.2.440 sollte FormData verwendet werden) im Dataset wieder setzen [2]. Im umliegenden Code muss spรคter ein commit() auf der Session gemacht werden [3]
} else if (columnNames[col].equals("image")) {
jpg = value.replace(".jpg", "");
jpg = jpg.replace("-", "_");
print("jpg = "+jpg+ "\n");
media = mediaStore.getMediaByUid(jpg) ;
print("media = "+media.toXml(true)+ "\n");
pic = media.getMediaContent(lang);
print("pic = "+pic+ "\n");
//PictureEditorValue
dataset = t.getDataset(po);
data = dataset.getData();
pictureEditor = data.get("st_image").getEditor();
print("pictureEditor = "+pictureEditor+ "\n");
//GraphicalMedium
graphicalMedium = pictureEditor.get(lang);
graphicalMedium.setMedium(media);
print("graphicalMedium = "+graphicalMedium+ "\n");
[1] pictureEditor.set(lang, graphicalMedium);
[2] dataset.setData(data);
}
[3] orSession.commit();

