Anonymous
Not applicable

Wert aus Combobox innerhalb eines FS_LIST-Elements ermitteln

Hallo Community,

langsam verzweifel ich an nicht dokumentierten Klassen in DEV- und Access-API...

Ich versuche mittels eines Skripts den selektierten Wert einer ComboBox innerhalb eines Elements in einer FS_LIST auszulesen und lande immer auf der nicht dokumentierten Klasse "de.espirit.firstspirit.client.editorcomponent.EditorWrapper". Dieser stellt einem zwar die Methode "getValue(String)" zur Verfügung, sie liefert jedoch immer null, da ich einfach nicht weiß, was als String erwartet wird. Weder Komponentenname, noch sonst ein Wert (ich hab alle durchprobiert) liefert irgendetwas Verwertbares.

Den EditorWrapper bekomme ich, in dem ich eine BeanShell-Konsole auf meiner Datenquelle öffne und dann folgenden Code eingebe:

show();

f = e.getData();

g = f.get(0); // stupide das erste Entity in der Datenquelle auswählen

h = g.getValue("countryTeaser"); // die ComboBox steckt in der FS_LIST "countryTeaser"

h ist nun vom Typ EditorWrapper mit dem ich nicht viel anfangen kann ...

Quintessenz: HIIIIIILFEEEEE!!!! 😉

Viele Grüße.

1 Reply
gockel
Crownpeak employee

Hallo,

bitte immer die FS-Version mit posten.

und lande immer auf der nicht dokumentierten Klasse "de.espirit.firstspirit.client.editorcomponent.EditorWrapper".

dass EditorWrapper nicht dokumentiert ist, ist genau richtig, denn das ist KEINE öffentliche Schnittstelle.

[1] f = e.getData();

[2] g = f.get(0); // stupide das erste Entity in der Datenquelle auswählen

[3] h = g.getValue("countryTeaser"); // die ComboBox steckt in der FS_LIST "countryTeaser"

In ihrem Beispiel bewegen sie sich ab Zeile 3 in der OR-API (Entity#getValue(String)), was für simple Typen auch kein Problem ist.

Das korrekte Vorgehen ist hier über das Dataset zu gehen:

content2 = e;       // das Skript wurde ja auf der Datenquelle gestartet somit ist "e" vom Typ Content2

final List<? extends Entity> entityList = content2.getData();

final Entity entity = entityList.get(0); // stupide das erste Entity in der Datenquelle auswählen

final Dataset dataset = content2.getDataset(entity);

FormData formData = dataset.getFormData();

FormField fsListFormField = formData.get(language, "countryTeaser"); // die ComboBox steckt in der FS_LIST "countryTeaser"

ab da kann man sich anhand der FS_LIST Beispiele entlang hangeln.

API-Einstiegspunkte:

siehe auch: Re: Per Skript Medien-Objekte in Datenquelle importieren