Questions & Answers

dude
I'm new here

Datenquellen mittels Projekteinstellung filtern

Moin,

ist es mรถglich bei Abfragen fรผr Datenquellen (also dem brauen Bereich Smiley Wink) auf Projekteinstellungen zurรผckzugreifen? Was ich ich machen will, ist folgendes:

In den Projekteinstellungen kann eine aktuelle Veranstaltung gewรคhlt werden, das ist ein einfacher String (ps_verboseFairId).

Jetzt will ich in einer weiteren Datenquellen 'News' nur die Eintrรคge anzeigen (filtern), welche die in den Projekteinstellung gewรคhlte Relation zu einem bestimmten Event besitzen. Es gibt also eine Relation von 'News' zu 'Event'. Angezeigt werden sollen News, die mit einem Event verknรผpft sind, dessen technische ID (fairIdentifier) gleich der Projekteinstellung (ps_verboseFairId) sind.

Also in einem Content Select habe ich folgende Abfrage erfolgreich getestet:

<CMS_HEADER>

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

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

  <CMS_VALUE_PARAM name="param1" value="ps_verboseFairId" /> 

          <QUERY entityType="news">

                    <FILTERPARAM parameter="param1" datatype="java.lang.String" value="foo"/>

                    <EQ attribute="event.fairIdentifier" parameter="param1"/>

          </QUERY>

</CMS_FUNCTION>

</CMS_HEADER>

Wenn ich aber versuche, im Tab Parameter param1 auf ps_verboseFairId zu setzen, wird der Wert anstelle einer Variablen, als String interpretiert und somit wird nicht auf die Projekteinstellungen zurรผckgegriffen.

Was habe ich da falsch gemacht, oder ist es รผberhaupt mรถglich, Projekteinstellungen fรผr Filter auszuwerten?

5 Replies
aVogt
Returning Creator

Moin,

ich glaub das geht nicht. Was willst Du damit erreichen?

Sollen dann die Nutzer in den Datenquellen besser filtern kรถnnen (vordefinierte Filter)?

0 Kudos

Ich hatte das oben schon engedeutet, es geht hier um Messen, die halt jรคhrlich wechselnde Veranstaltungen haben. Einmal im Jahr wird das ganze System auf das nรคchste Messejahr umgestellt (Projekteinstellungen) und da wรคre es super, wenn alle Datenquellen dann entsprechend der Projekteinstellung nur die zugehรถrigen News/Pressemitteilungen/Pressetermine/Tagesprogrammpunkte ... anzeigen wรผrde.

Es gibt derzeit schon 8 Tabellen pro Messe/FirstSpirit-Projekt, bei denen ich gerne automatisch die Filter umstellen mรถchte. Ich habe mich erstmal mit einem Beanshell-Skript รผber den Tag gerettet, dass die Projekteinstellung รถffnet, die Entitรคt liest und das besagte Attribut in die FilterParams schreibt.

Dynamsiche Filter fรคnde ich aber trotzdem spannend, daher die Frage hier, ob das denn geht.

0 Kudos
aVogt
Returning Creator

Da musst Du auf die FS-Spezies warten ...

Als Alternative kรถnnte man in dem Filter das jeweilige Jahr angeben. Ob man nun in dem Filter das Jahr รคndert, oder in den Projekteinstellungen ist vieleicht nicht ganz das selbe, aber es hilft auch.

0 Kudos

Da musst Du auf die FS-Spezies warten ...

Smiley Wink

Prinzipiell funktionieren sollte das. Gibt es denn Fehlermeldungen bei der Benutzung der angegebenen Syntax?

Was mich stutzig macht: Bei FILTERPARAM ist "java.lang.String" als "datatype" angegeben. ps_verboseFairId und event.fairIdentifier hรถren sich aber eher nach eine Zahl an ("java.lang.Integer" oder "java.lang.Long").

Peter
0 Kudos
sgoess
I'm new here

Ich hatte eben das gleiche Problem. Bei mir funktioniert es wie folgt:

<CMS_HEADER>

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

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

    <CMS_VALUE_PARAM name="domain_id" value="ps_domain.toString().toNumber()" />

    <QUERY entityType="t_entity">

      <FILTERPARAM parameter="domain_id" datatype="java.lang.Integer" />

      <EQ attribute="t_domain.fs_id" parameter="domain_id"/>

    </QUERY>

  </CMS_FUNCTION>

</CMS_HEADER>

Entscheidend ist die Konvertierung toString().toNumber(), da es sich bei der Datenquelle um einen Integer handelt; in den Projekteinstellungen wird aber aus einer Combobox gelesen.

Vielleicht geht die Konvertierung auch etwas einfacher, also ohne den Zwischenschritt "toString()", dann bin ich gerne fรผr Hinweise dankbar. Smiley Happy

Viele GrรผรŸe

Sebastian

0 Kudos

Type a product name