Questions & Answers

SOLVED
bianca_batsch
New Responder

Leere Datenquelle auswerten

Jump to solution

Hallo,

ich habe eine leere Datenquelle (ohne Eintrรคge) und wรผrde dies gerne auswerten kรถnnen.

#cs.isEmpty bringt keinerlei Ausgabe, wenn kein Datensatz in der DQ vorhanden ist. Eine Null-Prรผfung oder Ausgabe des Wertes von #cs helfen nichts. Die Ausgabe ist mehr als leer.

Gleiches gilt auch fรผr eine Query

<CMS_HEADER>

<CMS_FUNCTION name="contentSelect" resultname="fr_list">

<CMS_PARAM name="schema" value="SCHEMA" />

<QUERY entityType="empty_dq"/>

</CMS_FUNCTION>

</CMS_HEADER>

Hier gibt $CMS_VALUE(fr_list)$ nichts aus. Keine Fehler in der Vorschau, keine Vergleiche mรถglich.

รœbersehe ich was?

LG Bianca

PS: FS Version 5.2.200312.78911

1 Solution

Accepted Solutions

Hallo Bianca,

wie Stefan schon schreibt, muss die Ausgabe von $CMS_VALUE(fr_list.size)$ 0 ergeben (oder eine andere Zahl).

Mich macht die Ausgabe "Das ganze ist eine technische Seite, die ein JSON rendert" etwas misstrauisch. Wie wird denn das JSON erzeugt? รœber die json() Funktion, per Templatemittel oder auf eine andere Art?
Wenn es per Templatemitteln erzeugt wird, dann wird das Problem wahrscheinlich sein, dass auf der Seitenvorlage nur die Absรคtze ausgegeben werden - und diese nicht erzeugt werden, da es ja keinen Datensatz gibt. Somit wird ein leeres Dokument erzeugt, was wiederum dazu fรผhrt, dass FirstSpirit gar nicht erzeugt.

Lรถsung wรคre dann beispielsweise auf dem Seitentemplate abzufragen, ob $CMS_VALUE(#global.pageParams.data.size)$ == 0 ist und wenn ja, entsprechende Ausgaben zu erzeugen, anstatt die [nicht vorhandenen] Absรคtze auszugeben.

Viele GrรผรŸe

Holger

View solution in original post

0 Kudos
6 Replies
hoebbel
Crownpeak employee

Hallo Bianca,

bei der ContentSelect Funktion wรผrde ich erwarten, dass $CMS_VALUE(fr_list.size)$ 0 ergibt und Du drauf prรผfen kannst.

Bei #cs (also der Ausgabe รผber eine Tabellenvorlage) ist das schon etwas komplizierter, da fรผr jeden Datensatz die Tabellenvorlage einmal ausgegeben wird. Sind keine Datensรคtze vorhanden, wird die Tabellenvorlage nicht aufgerufen, der dort hinterlegte Templatecode also niemals durchlaufen.

Leider hast Du nicht geschrieben, was Du mit der Abfrage #cs.isEmpty erreichen willst. Wenn es darum geht, eine Standard-Ausgabe zu erzeugen fรผr "leider keine Datensรคtze vorhanden", so ist dafรผr auf der Seitenreferenz auf der Karteikarte Daten die Option "Seite fรผr leeres Abfrageergebnis" gedacht. Dort kann eine beliebige Seite aus der Inhalte-Verwaltung referenziert werden, die immer angezeigt wird, wenn die entsprechende Abfrage zu einer leeren Menge an Datensรคtzen fรผhrt.

Viele GrรผรŸe

Holger

0 Kudos

Hallo Holger,

das dachte ich auch @$CMS_VALUE(fr_list.size)$ 0, aber das passiert halt nicht.

Am Ende ist es eine ContentProjektion รผber die gedamte Tabelle, die die Eintrรคge auf einer Seite ausgeben soll. Ich will erreichen, dass die Seite auch gerendert wird, ob in der DQ etwas drin steht oder nicht. Momentan wird die gesamte Seite nicht erzeugt, weil die Tabelle leer ist. Das ganze ist eine technische Seite, die ein JSON rendert. Mir wรผrde ja am Ende eine Datei mit dem Inhalt "[]" reichen, damit รผberhaupt was gerendert wird und ich keinen 404 bekomme.

LG Bianca

0 Kudos

Hallo Bianca,

hast du mal nachgeschaut, ob in den Logausgaben ein Error zu finden ist?

Wรคre fรผr mich der einzige Grund, warum ein Aufruf von size keinen Wert liefert.

Ansonsten gerne auch mal fr_list.class ausgeben lassen, um den Typ รผberprรผfen zu kรถnnen.

Beste GrรผรŸe

Stefan

0 Kudos

Hallo Holger Stefan, (sorry!!!, hatte mich verlesen :smileyshocked:)

keine Fehler in Logs oder sonst wo. Das Ding scheint nicht zu existieren / aufgerufen zu werden, wenn nichts in der DB steht. Der Aufruf .class bringt da auch nichts - hab ich schon versucht.

Wie gesagt, DQ leer = Inhalte leer / nicht vorhanden (Prinzip keine Hรคnde - keine Kekse Smiley Sad). Ich denke, es kommt nichtmal dazu, dass das Template aufgerufen wird. Demzufolge habe ich keine Liste und keine GrรถรŸe der Liste.

LG Bianca

0 Kudos

Hallo Bianca,

wie Stefan schon schreibt, muss die Ausgabe von $CMS_VALUE(fr_list.size)$ 0 ergeben (oder eine andere Zahl).

Mich macht die Ausgabe "Das ganze ist eine technische Seite, die ein JSON rendert" etwas misstrauisch. Wie wird denn das JSON erzeugt? รœber die json() Funktion, per Templatemittel oder auf eine andere Art?
Wenn es per Templatemitteln erzeugt wird, dann wird das Problem wahrscheinlich sein, dass auf der Seitenvorlage nur die Absรคtze ausgegeben werden - und diese nicht erzeugt werden, da es ja keinen Datensatz gibt. Somit wird ein leeres Dokument erzeugt, was wiederum dazu fรผhrt, dass FirstSpirit gar nicht erzeugt.

Lรถsung wรคre dann beispielsweise auf dem Seitentemplate abzufragen, ob $CMS_VALUE(#global.pageParams.data.size)$ == 0 ist und wenn ja, entsprechende Ausgaben zu erzeugen, anstatt die [nicht vorhandenen] Absรคtze auszugeben.

Viele GrรผรŸe

Holger

0 Kudos

Hi Holger,

ich habe es mit $CMS_VALUE(#global.pageParams.data.size == 0)$ im Seitentemplate umgesetzt. Ich finde es nicht wirkich gut, aber es tut, was es soll.

Vielen Dank fรผr eure Hilfe!

LG Bianca

Type a product name