dspieser
Returning Observer

FS_INDEX Eingabekomponente in Datenquellen

Jump to solution

Hallo Zusammen,

flogendes Problem: ich möchte gerne eine FS_INDEX Komponente nutzen um Datensätze einer Datanquelle mit einem Datensatz einer anderen Datenquelle zu verknüpfen.

Die Doku und hier in der Community bin ich nicht wirklich fündig geworden.

Tabelle A: sind Niederlassungen  an denen Events stattfinden

Tabelle B: enthält die möglichen Events.

Hier die FS_INDEX Komponente:

<FS_INDEX name="ct_events" useLanguages="no">

    <LANGINFOS>

      <LANGINFO lang="*" label="Event selection"/>

      <LANGINFO lang="DE" label="Eventauswahl"/>

    </LANGINFOS>

    <SOURCE name="DatasetDataAccessPlugin">

      <TEMPLATE uid="niederlassungen_group.events"/>

    </SOURCE>

  </FS_INDEX>

Hier der Versuch die Liste auszugeben:

$CMS_FOR(event,#row.group_eventlist)$

     $CMS_VALUE(event)$

$CMS_END_FOR$

Das ist das Ergebenis:

BoundRecord{_id={"schema":"niederlassungen_group","gid":"523d4060-14e9-4987-bad4-f733eb27db16","table":"events"}}

BoundRecord{_id={"schema":"niederlassungen_group","gid":"5bc28d84-b695-4823-94f6-2da2a477c6c4","table":"events"}}

In der Doku steht es ein wenig anders, aber das hat bei mir gar nicht funktioniert:

...

$CMS_FOR(entry,st_index.values)$

    $CMS_VALUE(entry.formData.tt_headline)$

$CMS_END_FOR$

...

#row.group_eventlist.values kann nicht iteriert werden.

#row.group_eventlist ist vom Typ de.espirit.firstspirit.client.access.editor.lists.IndexImpl

Irgendwie fehlt mir die zündende Idee.

Vielen Dank für eure Hilfe!

17 Replies

Hi,

mir erschließt sich das Gesamtbild leider nicht richtig. Ich kann nicht erkennen, woher das #row kommt bzw. wieso du darüber auf die Liste zugreifen musst.

Wenn die Index-Komponente im Template NL Group Übersicht definiert ist und du in diesem Template per CMS_FOR über die Inhalte des Index iterieren möchtest, dann genügt es, die Komponente direkt mit Namen anzusprechen, also:

$CMS_FOR(event, ct_events)$ ...

Die Fehlermeldung deutet darauf hin, dass eventsList nicht über eine Beziehung im Schema definiert ist. Der Name passt allerdings nicht zu dem Ausgabequelltext, den du oben zitierst hast. Möglicherweise liegt hier ein Fehler an anderer Stelle vor, an der du dieses eventsList referenzierst. Vom Namen her leicht zu verwechseln.

Das ist leider ohne die Sicht auf Schema und Vorlagendefinitionen von hier aus schlecht zu erkennen.

Gruß

Stefan

Hi,

das Tabellentemplate NL Grou Übersicht ist die Liste aller Datensätze, das Template NL Group Detail ist der einzelne Datensatz. Das Detail Template hat kein Formular sondern gibt lediglich den einzelnen Satz aus und das funktioniert nur mit #row.

Die Fehlermeldung kommt wenn man eine M:N Referenzierung anlegt und versucht die FS_INDEX darauf zu mappen, sollte lediglich Zeigen das es über die Referenzierung nicht geht.

Weswegen ich lediglich im FS_INDEX auf die Event Tabelle zugreife und in einem FIRSTspirit-Editor element speichere.

Gruß

Dietmar

0 Kudos

Hi,

> Das Detail Template hat kein Formular sondern gibt lediglich den einzelnen Satz aus und das funktioniert nur mit #row.

Ok, ohne Formular kein Zugriff auf die Komponenten, was allerdings keine schöne Variante ist.

Aber die FOR-Schleife ist doch aus der Übersichtsvorlage, oder verstehe ich das falsch?

Wenn sich die Index-Komponente nicht auf eine Beziehung abbilden lässt, dann stimmt da irgendetwas mit dem Schema nicht. Diese Abbildung ist sowohl technisch möglich als auch in Projekten bereits erprobt. Mit einer Spalte vom Typ FS-Editor sollte die Komponente aber identisch funktionieren.

Gruß

Stefan

0 Kudos

Hi,

wie sollen die Datenquellen den aussehen?

Wie wäre den die schöne Variante? Bei uns sind alle Datenquellen so aufgebaut und laufen seid Jahren so.

Nein die FOR Schleife ist auf der Detailseite.

Wie kann ich das Schema denn Prüfen?

Mit FS_LIST hatten wir noch nie Probleme, FS_INDEX war unser erster Versuch.

Gruß

Dietmar

0 Kudos

Hi,

Sorry, dass es komplizierter scheint. Ist aus der Ferne halt schwierig zu beurteilen.

Die "schöne" Variante wäre, wenn auch die Detailseite eine Formulardefinition und das entsprechende Mapping hat. Dann kann man (wie oben beschrieben) direkt über die Eingabekomponenten auf die Inhalte zu greifen. Der Vorteil ist, dass dann auch die Formulardefinition bekannt ist (mit allen möglichen Einschränkungen etc.).

Wenn die FOR-Schleife auf der Detailseite ist, dann habe ich den Aufbau der Datenbank nicht verstanden. Ich hätte vermutet, dass die Tabelle A (NL Group Übersicht?) die Indexkomponente ct_events beinhaltet und auf die Events verweist. Aber ich glaube, da liege ich völlig daneben. :smileyblush:

Eine existierende und funktionierende FS_LIST (vom Typ DATABASE) sollte einfach durch die FS_INDEX mit DatasetDataAccessPlugin zu ersetzen sein, ohne weitere Änderungen. Bis auf den Zugriff bei Schleifen eben. So wurde die FS_INDEX zumindest entwickelt und erprobt. Wenn dies in deinem Fall nicht funktioniert, kannst du natürlich versuchen, den Weg über unseren Technical Support zu gehen und das Problem als Fehlermeldung einreichen.

Mit Schemaproblem meinte ich eher die Abbildung auf die Datenbank. Ist aber eher eine weitere Vermutung ohne Kenntnis der Dinge.

Vielleicht kannst du hier ein Screenshot der Schemadefinition für die betroffenen Tabellen einstellen? Kann sein, dass man daran schon ein wenig mehr erkennt. Wie geschrieben, irgendwie ist mir das Bild unklar, wie in dem Projekt die Gestaltung aussieht.

Gruß

Stefan

0 Kudos

Hallo,

mir war nicht klar, dass ich in der Detailseite die selben Komponenten und das jeweilige Mapping machen kann.

$CMS_FOR(event,ct_events)$

            <div class="cols_full">

                <div class="inner_wrapper">

                    <div class="inner_main">

                        $CMS_VALUE(event.ct_eventtitle)$

                    </div>

                </div>

            </div>

                $CMS_END_FOR$

            $CMS_END_IF$

Jetzt funkjtioniert auch dieser Teil.

Liefert mir den Titel des Events.

Danke für die Zeiut und denn Denkanstoß

Gruß

Dietmar

Hi,

sehr gut! Freut mich, dass ich helfen konnte.

Grüße

Stefan

0 Kudos
mikula
Crownpeak employee

Hallo Dietmar,

ist dieses Posting noch aktuell? Benötigst du noch weitere Hilfe oder konnte Stefan dir bereits helfen? In diesem Fall wäre es super, wenn du die "richtige Antwort" entsprechend markierst.

Solltest du zwischenzeitlich eine eigene Lösung gefunden haben, wäre es toll, wenn du sie hier bereitstellst.

Viele Grüße

Martin

0 Kudos