- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
KeyValue.add(...) liefert Fehler
Hallo,
ich habe mir einen Importer fรผr Datensรคtze geschrieben. Die werden in eine Datenquelle geschrieben.
Nach der Umsetllung auf FS4.2.219.38784 bekomme ich eine Fehlermeldung bei der Ermittlung einer Refernez auf einen anderen Datensatz einer anderen Datenquelle.
Von dem Datensatz auf den ich die Verlinkung setzen will, habe ich die Datensatz ID und die Datenquelle (die auf der Tabelle .
Um die Verlinkung zu ermitten, habe ich mir eine Methode geschrieben
รbergabewerte an die Methode:
DQ_Name = dq_produkte
formName = cs_NummerVersion
value = 62713
Auszug aus der Methode:
...
try{
ContentStoreRoot cs = (ContentStoreRoot) this.us.getStore(de.espirit.firstspirit.access.store.Store.Type.forName("CONTENTSTORE"), false);
Content2 cSource = (Content2) cs.getContent2ByName(DQ_Name);
EntityType entityType = null;
try{
entityType = (EntityType) cSource.getEntityType();
} catch (Exception et){
...
}
this.debug("gefundene Tabelle: " + entityType.toString());
Session session = cSource.getSchema().getSession();
try{
ListEditorValue editor = null;
editor = (ListEditorValue) importEntityData.get(formName).getEditor();
this.debug("gefundener editor: " + editor.toString());
} catch (Exception E){
...
}
this.debug("\tElement: " + value);
KeyValue kv = new KeyValue(entityType.getName());
this.debug("\tkv: " + kv);
kv.add(""+value);
this.debug("\tadd ok");
Entity dataset = (Entity) session.find(kv);
this.debug("\tdataset: " + dataset);
...
} catch (Exception E) {
this.debug("ERROR setMultiOptionColumn: " + E.getMessage());
...
}
Die Logausgaben (this.debug) ergeben folgendes:
gefundene Tabelle: Produkte
gefundener editor: de.espirit.firstspirit.client.access.editor.ListEditorValueImpl@4430e2
Element: 62713
kv: Entity type: Produkte ()
ERROR setMultiOptionColumn Message: null
Der Fehler tritt also bei
kv.add(""+value);
auf.
Aus dem Stackrtarce (siehe Anhang) werde ich auch nicht schlau.
"Unknown Source" klingt so, als ob er die Datenquelle nicht findet, die ist aber da.
Zumindest erst konnte ich sie รผber "referenznamen suchen" nicht finden (obwohl der Referenzname stimmte). Ich habe dann die DQ gelรถscht (nun wird sie im JavaClient gefunden), aber mein Script liefert immer noch den Fehler.
Hat sich etwas gegenรผber der Version 4.1 geรคndert? in 4.1 funktionierte das ohne Probleme.
- Labels:
-
Developers
Accepted Solutions
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Wenn das unter 4.1 noch funktioniert hat, sollten das an den Helpdesk als inkompatible รnderung kommuniziert werden.
Bis dahin versuchen Sie doch mal folgendes Code-Fragment:
KeyValue kv = new KeyValue(entityType.getName(), "" + value);
Entity dataset = (Entity) session.find(kv);
Oder noch kรผrzer:
Entity dataset = (Entity) session.find(entityType.getName(), "" + value);
Ein frohes neues Jahr!
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
das ist der komplette trace? steht nicht sowas wie UnsupportedOperationException davor bzw. der Exception-Typ
schauen sie sich mal diesen post an, das geht u.a. es auch im KeyValue, vielleicht hilft das
https://community.e-spirit.com/message/2353#2353
"Unknown Source" bedeutet einfach, hier kann die Zeilennummer im trace nicht ermittelt werden. Also kein Problem.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Wenn das unter 4.1 noch funktioniert hat, sollten das an den Helpdesk als inkompatible รnderung kommuniziert werden.
Bis dahin versuchen Sie doch mal folgendes Code-Fragment:
KeyValue kv = new KeyValue(entityType.getName(), "" + value);
Entity dataset = (Entity) session.find(kv);
Oder noch kรผrzer:
Entity dataset = (Entity) session.find(entityType.getName(), "" + value);
Ein frohes neues Jahr!
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hallo,
auch ihnen ein frohes gesundes neue Jahr.
Ihr Code funktioniert .
Vielen Dank.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Im JavaClient funktioniert diese Methode aber nicht, auch die alte nicht!
Wenn ich das als Methode in eine Klasse und dann in ein Modul packe, klappt das. Ich habe bei mir keine Unterschiede gefunden, die auf irgendetwas schliessen ...
Fehlermeldung siehe Anhang
ergรคnzt:
Ich glaub ich habs gefunden, aber was ist dann die Lรถsung?
de.espirit.or.Session cs_sess = contentSource.getSchema().getSession();
liefert im JavaClient:
de.espirit.or.impl.SessionImpl
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Aus der Beanshell heraus (ich nehme an, das ist mit "JavaClient" gemeint) muss die Methode leicht anders angesprochen werden. Wenn ich mich nicht schwer vertue, mรผsste das wie folgt aussehen:
Entity dataset = (Entity) session.find(entityType.getName(), new Object[] {"" + value});
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
funktioniert. Danke!

