- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Datenquellen mittels Projekteinstellung filtern
Moin,
ist es mรถglich bei Abfragen fรผr Datenquellen (also dem brauen Bereich ) 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?
- Labels:
-
Developers
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Moin,
ich glaub das geht nicht. Was willst Du damit erreichen?
Sollen dann die Nutzer in den Datenquellen besser filtern kรถnnen (vordefinierte Filter)?
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Da musst Du auf die FS-Spezies warten ...
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").
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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.
Viele Grรผรe
Sebastian

