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!

1 Solution

Accepted Solutions

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

View solution in original post

0 Kudos
17 Replies
StefanSchulz
I'm new here

Hallo,

wo findet denn der Versuch der Ausgabe statt? Eine Referenz mit #row liest sich für mich ein wenig unerwartet und nach direktem Zugriff auf den Datensatz. In diesem Fall könnte es sein, dass die Kontextinformationen zum Auflösen der Datensatzreferenzen nicht verfügbar sind.

Weitere Fragen:

Was genau hat bei der Lösung laut Doku nicht funktioniert?

Wie sieht das Mapping für die Komponente ct_events aus?

Beste Grüße

Stefan

0 Kudos

Hallo,

die Ausgabe ist auf der Detailseite der Niederlassung, dort werden alle Felder der Tabelle niederlassungen_group ausgegeben, das funktioniert auch bei allen Feldern bis auf den FS_INDEX.

" #row.group_eventlist.values kann nicht iteriert werden"

#row.group_eventlist.values  liefert den Fehler  kann nicht iteriert werdenmapping.png

Grüße

Dietmar.

0 Kudos

Hallo,

der Zugriff über die Spalte des Datensatzes direkt (#row) wird vermutlich nicht funktionieren. Auf der Detailseite sollten die Eingabekomponenten aber direkt ansprechbar sein, das wäre hier wohl ct_events (ohne #row). Es sei denn, hier wird eine ContentStore-Abbildung benutzt oder ähnliches.

Was ergibt denn ein einfacher Versuch mit $CMS_FOR(event, ct_events.values)... ?

Gruß

Stefan

0 Kudos

Hallo Stefan,

das funktioniert leider auch nicht.

Grüße

Dietmar

0 Kudos

Werden denn Fehler geloggt? Oder Warnings?

Dass dabei gar nichts passiert, kann ich mir nicht vorstellen.

Gruß

Stefan

0 Kudos

Es kann nicht iteriert werden, ich kann mir auch nicht vorstellen das man innerhalb der Datenquelle/ Datendetailsatz einfach ohne #row die Eingabekomponente ansprechen kann.
Wenn ich mir die Komponente ct_events in einem CMS_VALUE ausgeben lasse komm eine Warnung: empty value.

Grüße

Dietmar

0 Kudos

Vielleicht verstehe ich auch falsch, was du mit "Datendetailsatz" meinst.

Wo findet der #row Aufruf statt? (Tabellenvorlage? Wie ist Aufrufkette bis da hin?)

Gruß

Stefan

0 Kudos

Es gibt für jede Niederlassung eine Detail Seite die über Schema niederlassungen_group und Tabellevorlage NL Group Detail erzeugt wird.

Im html Teil wird über #row auf die einzelnen Felder zugegriffen.

Bei der Tabellenvorlage NL Group Übersicht im Formular ist dann die FS_INDEX angelegt:

<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>

Mapping

und

$CMS_FOR(event,#row.group_eventlist)$

            <div class="cols_full">

                <div class="inner_wrapper">

                    <div class="inner_main">

                        $CMS_VALUE(event)$

                       

                    </div>

                </div>

            </div>

                $CMS_END_FOR$

            $CMS_END_IF$

ergibt folgende Ausgabe:

Wenn ich eine M:N Verknüpfung anlege und darauf Mappe kommt folgender Fehler:

Danke für die Gedult.

Grüße

Dietmar

0 Kudos

leider Fehlen jetz die ganzen Bilder ;-(

aufbau-datenbankschema.png

Mappingfehler.png

0 Kudos