phafke
Returning Observer

Wert aus FS_DATASET auslesen

Jump to solution

Hallo zusammen,

ich würde gern über die API den ausgewählten Wert eines Datensatzes auslesen, der per FS_DATASET auf einer Seitenvorlage gesetzt wurde.. und das per Schleife auf einem bestimmten Strukturknoten. Dazu hole ich mir also zunächst den IDProvider

IDProvider pageRefFolder = siteStore.getStoreElement("employee_portal", IDProvider.UidType.SITESTORE_FOLDER);

Mittels getChildren(Pageref.class, true) und iterator() kann ich per while-Schleife darüber iterieren. Innerhalb der Schleife hole ich mir dann per Page page = iter.next().getPage() und

Page storeElement = (Page) pageStore.getStoreElement(page.getUid(), UidType.PAGESTORE);

das Inhaltselement. Leider fehlt mir jetzt der passende Ansatz um an das FS_DATASET bzw. den dahinterliegenden Wert zu kommen. Mit

FormField<?> data = storeElement.getFormData().get(masterLanguage, "fs_portal_com_D_vaillant_D_frwk_D_serviceLocation");

komme ich an die Eingabekomponente, nur schaffe ich es grad irgendwie nicht den Wert daraus auszulesen. Leider hilft mir auch das DatasetEditorValueExample nicht weiter...

Hat jemand einen Tipp für mich?

Besten Dank und viele Grüße

Peter

0 Kudos
1 Solution

Accepted Solutions
maaroufi
I'm new here

Hallo Peter,

wenn du an das Dataset-Objekt willst versuche mal folgendes:

DatasetContainer datasetContainer = (DatasetContainer) formData.get(masterLanguage,"fs_portal_com_D_vaillant_D_frwk_D_serviceLocation").get();

Dataset dataset=datasetContainer.getDataset();

Freundliche Grüße

Ismail

View solution in original post

0 Kudos
4 Replies
Peter_Jodeleit
Crownpeak employee

Die "Schleife" über "PageStore.getStoreElement(String, Store.Type)" ist überflüssig, du hast zu dem Zeitpunkt ja bereits die Seite vom Typ "Page" (es gilt also page == storeElement).

Das Beispiel DatasetEditorValueExample ist "alte" API, hilft also für den Weg über "FormData" und "FormField" nicht weiter.

Glücklicherweise ist mit der neuen API alles viel einfacher. Der Typ (in deinem Code das Fragezeichen) der FormField Instanz ist DatasetContainer. Also fehlt in deinem Code nur noch diese Zeile:

     DatsetContainer datasetContainer = (DatasetContainer) data.get();

     Dataset dataset = datasetContainer.getDataset();

Peter
maaroufi
I'm new here

Hallo Peter,

wenn du an das Dataset-Objekt willst versuche mal folgendes:

DatasetContainer datasetContainer = (DatasetContainer) formData.get(masterLanguage,"fs_portal_com_D_vaillant_D_frwk_D_serviceLocation").get();

Dataset dataset=datasetContainer.getDataset();

Freundliche Grüße

Ismail

0 Kudos
phafke
Returning Observer

Hallo zusammen,

super, vielen Dank für eure Hilfe.

@Peter: Danke, das war mir gar nicht aufgefallen Smiley Happy Mit "neuer API" meinst du FS5?

@Isamail: Genau das hat mir gefehlt.. perfekt, besten Dank!!

Viele Grüße

Peter

0 Kudos

Mit "neuer API" meine ich FormData und FormField. Eingeführt haben wir das mit Version 4.2 Release 4, damit das den Übergang zu Version 5 erleichterr. In Version 5 wurde noch mehr auf diese API umgestellt, trotzdem gibt es auch in v5 noch der Weg über die alten API-Wege (nur eben als "deprecated" gekennzeichnet).

Peter
0 Kudos