Questions & Answers

baginski
I'm new here

Wert eines Datensatzes per Scripting auslesen

Hallo,

ich habe einer Seite einen Datensatz aus einer Datenquelle zugeordnet (In der Seitenvorlage CMS_INPUT_COMBO_BOX mit CMS_INCLUDE_CONTENT)

nun mรถchte ich an einen bestimmten Stringwert aus dieser Datenquelle (per Script) auslesen.

Ich habe folgendes versucht

ComboboxEditorValue ctobj = (ComboboxEditorValue)sourcePage.getData().get("st_teasertyp").getEditor();

wenn ich fortsetze mit

Object obj= ctobj.get(ctx.getLanguage());

Bekomme ich als Klasse die inner class

de.espirit.firstspirit.store.access.contentstore.ContentOptionFactory$ContentOption

An dieser Stelle komme ich schon nicht weiter; irgendwann mรผรŸte ich noch die Tabellenspalte spezifizieren, um an den Wert zu kommen,

der mich interessiert..

Mit einem $CMS_VALUE$ komme ich per

$CMS_SET(setContentTyp,sourcepage.getData().get("st_teasertyp").getEditor().get(context.getProject().getMasterLanguage()).getValue().getValue("techname"))$

an mein Ziel, die Kette ist aber im Eclipse so nicht lauffรคhig - hier bekomme ich nach dem getEditor() den Fehler (genauso)

The method getValue() is undefined for the type capture#11-of ?

Irgendwas mache ich da noch falsch.. (jemand eine Idee?)

Danke & GruรŸ,

Michael

0 Kudos
7 Replies
aVogt
Returning Creator

Hallo Michael,

Wenn ich mal annehme, dass die Werte in der Combobox auch aus einer Datenquelle kommen, komme ich mit "ctobj.get(ctx.getLanguage()).getValue(); an die ausgewรคhlte "Entity"

Language lang = context.getProject().getMasterLanguage();

Content2 C2contentTable = cs.getContent2ByName("dq_ohb_rgl_import");

Data erg = C2contentTable.getDataObject(dbRow);

ComboboxEditorValue cbe = (ComboboxEditorValue) erg.get("cs_Handbuch").getEditor();

Entity ent = cbe.get(lang).getValue();

dq_ohb_rgl_import ist eine Datenquelle

cs_Handbuch ist das Comboboxfeld in der Datenquelle

GrรผรŸe aus DD

Andreas

0 Kudos

Hallo Andreas,

danke fรผr die Unterstรผtzung.

Mein Fall ist etwas anders; ich habe die Zuordnung aus einer Seite heraus, รผber eine Combox, in der ich den Datensatz auswรคhle.

Wie gesagt, Ich bekomme als Objekt fรผr den ComboBoxEditorValue die innere Klasse "ContentOptionFactory.ContentOption". Ich kann daraufhin leider nicht casten, da sie im Prinzip nicht sichtbar ist. Es hilft mir leider auch nicht, daรŸ diese die Klasse "OptionImpl "extended; wenn ich nรคmlich versuche,

Object optObject = ctobj.get(ctx.getLanguage());

OptionImpl opt = (OptionImpl)optObject;

fรคllt er mir genauso auf die FรผรŸe; ich weiรŸ jetzt auch wieso:

in meinem Modul (bei Ausfรผhrung der Methode, nicht zur Compilezeit) bekomme ich die Fehlermeldung:

java.lang.NoClassDefFoundError: de/espirit/firstspirit/access/editor/value/OptionImpl

hmmmm.... wenn ich die client.jar in das Modul packe wรผrde es vermutlich mรถglicherweise gehen.. aber: ist es sinnvoll (gerade im Hinblick auf Serveraktualisierung ?) - andere Mรถglichkeiten ?

Edit: Ich stelle gerade fest, daรŸ ich im Eclipse mit 4.2 arbeite, es aber auf einem 4.1er teste; vergeรŸt die Ausfรผhrungen vorerst.. :smileyblush:

Edit 2: In 4.1 ist es so, daรŸ die innere Klasse ContentOption die Klasse Option extended.

Die Fehlermeldung, die ich beim casten auf (Option) erhalte ist:

java.lang.IncompatibleClassChangeError: Found class de.espirit.firstspirit.access.editor.value.Option, but interface was expected

GruรŸ,

Michael

0 Kudos
aVogt
Returning Creator

Hallo Michael,

da kann ich erst mal nicht weiter helfen (hab kein 4.1 mehr), Wenn ich mich ganz dunkel erinnere hatte ich glaub so was รคhnliches. Die Combobox lieferte mir glaub immer nur die ausgewรคhlte ID des Datensatzes, keine Entity (wenn ich die von einer Inhaltsseite ermittelt habe)

Dann musste man mittels der gelieferten ID den zugehรถrigen Datensatz suchen.

Wie gesgt, das nur unter Vorbehalt. Da muss ein Profi ran Smiley Wink

GruรŸ

Andreas

0 Kudos

Hi,

wรคre ein Workaround.. wie kรคme ich sinnvollerweise an die ID heran ?

sourcePage.getData().get("st_teasertyp").getEditor().getValue()

gibt sie mir zwar zurรผck, ist leider deprecated.. :smileycry:

GruรŸ,

Michael

0 Kudos
aVogt
Returning Creator

Hmm, ich bekomme wie gesagt die Entity geliefert.

Vieleicht nur "sourcePage.getData().get("st_teasertyp")"??? Irgendetwas muss man eigentlich bekommen ...

Wenn Du die ID hast => KeyValue.add(...) liefert Fehler

Mehr kann ich leider auch nicht helfen (und bin nun erst mal in Urlaub)

GruรŸ Andreas

0 Kudos

Es geht um die ID des Datensatzes, richtig?

Auf der Option kรถnnen sie einfach ein getValue() machen, dann bekommen Sie die Entity zurรผck. Falls nicht, bitte mal das komplette Skript, die verwendeten Eingabekomponenten und die FirstSpirit Version posten.

0 Kudos

Hi, (gerade frisch aus dem Urlaub zurรผck) Smiley Happy

Ich habe es mit getValue zurรผck - sie ist wie gesagt, da oben zwar deprecated, aber das war mir jetzt auch egal..


Ansonsten habe ich es mittlerweile jetzt anders gelรถst - ich hole mir die Werte einmalig aus der DB heraus (sind nicht viele), packe sie in eine Map und gleiche sie jeweils mit der zugeordneten ID ab.

GruรŸ,

Michael

0 Kudos

Type a product name