- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
FS_LIST Database ohne Relation über API füllen
Hallo zusammen,
folgende Situation: wir haben ein Datenbankschema mit Tabellen A, B, C. In Tabellenformular A gibt es zwei FS_LIST Komponenten im Database Modus, die eine wird mit Einträgen ausTabelle B gefüllt und es gibt eine N:M Beziehung zwischen A und B. Die andere wird mit Einträge aus Tabelle C befüllt, es existiert allerdings keine Beziehung zwischen A und C. Funktioniert soweit auch.
Jetzt versuchen wir, Daten per API in Tabelle A zu schreiben und u.A. auch die beiden Listen zu befüllen. Folgenden Code verwenden wir dazu (value ist dabei ein Dataset aus der jeweils anderen Tabelle, dass wir der Liste hinzufügen wollen):
FormDataList formDataList = (FormDataList) formField.get();
FormDataProducer producer = formDataList.getProducer();
IdProvidingFormData newListEntry = ((ContentFormsProducer) producer).create(value.getEntity());
formDataList.add(newListEntry);
dataset.setFormData(formData);
Das Ganze funktioniert bei Liste A<->B auch ohne Probleme, bei Liste A<->C allerdings bleibt die Liste leer.
Wenn wir den Code folgendermaßen ändern...
FormDataList formDataList = (FormDataList) formField.get();
FormDataProducer producer = formDataList.getProducer();
IdProvidingFormData newListEntry = ((ContentFormsProducer) producer).create(value.getEntity());
formDataList.add(newListEntry);
Logging.logInfo(String.valueOf(formDataList.size()), Data.class);
dataset.setFormData(formData);
formData = dataset.getFormData();
formField = formData.get(lang, field);
formDataList = (FormDataList) formField.get();
Logging.logInfo(String.valueOf(formDataList.size()), Data.class);
... erhalten wir die Ausgaben 1 und 0, d.h. es landet etwas in der Liste, wird aber nicht persistiert. Wir führen in beiden Fällen nach dem Einfügen ein commit auf Tabelle A aus.
Was machen wir falsch? Prinzipiell müsste das doch der gleiche Ansatz sein, wie eine FS_LIST Database in einer Seiten- oder Absatzvorlage per API zu befüllen, also nichts wirklich "ungewöhnliches".
FS-Version: 5.0.211.55785
Viele Grüße
- Labels:
-
Developers
Accepted Solutions
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hm, Ok. Ich wundere mich gerade, warum das in dem ersten Fall funktioniert, da in dem Skript die Liste nicht zurückgeschrieben wird. Meines Erachtens fehlt dort mindestens mal ein formField.set(formDataList).
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi Tobias,
auf welche Art Spalte ist denn die FS_LIST für A-C gemappt?
Gruß
Stefan
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
XML und es klappt ja auch alles, wenn man Inhalte über den Client pflegt.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hm, Ok. Ich wundere mich gerade, warum das in dem ersten Fall funktioniert, da in dem Skript die Liste nicht zurückgeschrieben wird. Meines Erachtens fehlt dort mindestens mal ein formField.set(formDataList).
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Das kann ich mir nicht erklären, aber jetzt funktionieren beide Fälle. Danke.

