Search the FirstSpirit Knowledge Base
Hallo zusammen,
wir haben eine Tabelle A in der wir mittels einer FS_LIST im Database Modus Inhalte aus einer anderen Tabelle B eintragen. Die Tabellen sind nicht verknüpft. Innerhalb von FirstSpirit funktioniert das alles ohne Probleme, jetzt müssen wir aber per API zu einer Entity aus Tabelle A auf die in der Liste gespeicherten Entities aus Tabelle B zugreifen. Bisher haben wir folgendes versucht:
final EditorWrapper editorWrapper = (EditorWrapper) entity.get("list");
final EditorValue<FormDataList> editorValue = (EditorValue<FormDataList>) editorWrapper.getAccessEditor(sourceDocument.getProject().getUserService(), true);
final Object listObj = editorValue.get(lang);
final List<EntityFormData> formDataList = (List<EntityFormData>) listObj;
Da wo Inhalte in der FS_LIST gepflegt sind, bekommen wir auch die richtige Anzahl an EntityFormData Objekten zurück. Aus den einzelnen Elementen holen wir uns dann die Entities und wollen auf Werte zugreifen:
final Entity entitiy = EntityFormDataAccessor.getDataset(formData).getEntity();
final Object obj = entity.getValue("column");
Im Eclipse Debugging hat entitiy auch die richtige fs_id, aber obj ist null, obwohl das nicht der Fall sein dürfte.
Was machen wir falsch?
Danke!
final EditorWrapper editorWrapper = (EditorWrapper) entity.get("list");
Muss an dieser Stelle mit "entity" gearbeitet werden? Mit dem cast wird bereits der API-Pfad verlassen... Hier wäre es angebracht, mit FormData zu arbeiten, dann sollte auch die rekursive Auflösung (immer über API) funktionieren.
Wir greifen aus einem Modul per Select auf die Daten zu, d.h. unsere Ausgangsbasis ist eine EntityList. Gibt es eine Möglichkeit von dort auf die FormData Objekte zuzugreifen?
Da habe ich gerade etwas verwechselt. Mit den FormData Objekten haben wir es zu erst versucht, wenn wir da aber versuchen auf die einzelnen Formular Elemente zuzugreifen, sind diese immer null.
[..] wenn wir da aber versuchen auf die einzelnen Formular Elemente zuzugreifen, sind diese immer null.
An der Stelle würde ich noch mal ansetzen - wenn die Elemente im Formular sind, sollten diese auch ihre Werte liefern. Kannst du zu dem Verhalten noch weitere Informationen lieferen?
Klar, gleiche Ausgangssituation wie im ersten Post, formDataList enthält ein Element und die fs_id stimmt mit dem gepflegten Wert überein:
final EntityFormData formData = formDataList.get(0);
final Object obj = formData.get(lang, "tt_text").get();
lang ist in diesem Fall das Language Objekt für DE und im deutschen Sprachkanal ist das Feld auch befüllt. Trotzdem ist obj null.
Das kann ich so nicht nachvollziehen - sprich: es funktioniert bei mir.
Hallo Tobias,
konnten die Antworten die weiterhelfen oder besteht dein Problem noch?
Viele Grüße
Thorsten
Wir haben es jetzt so gelöst, dass wir anhand der fs_id einfach eine weitere Query abschicken, die uns dann die "richtige" Entity zurückliefert.