- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Datenquelle Eintrag abfrage case insensitive
Hallo,
ich mรถchte mit FirstSpirit Integration (FSI) etwas in einer Datenquelle suchen. Dabei sollte Groร- und Kleinschreibung ignoriert werden.
In "normalem" SQL wรผrde ich sowas in der Art wie "where tolower(name) like tolower(suchbegriff)" machen (richtige Syntax sei jetzt mal dahingestellt)
Wie mache ich das aber bei FSI?
<QUERY entityType="datenquellenname">
<LIKE attribute="name_DE" datatype="java.lang.String" value="<%=searchfor%>"/>
</QUERY>
"searchfor" ist der Suchbegriff, der bereits escaped und ggf. in Kleinbuchstaben daher kommt...z.B: "Test"
Datenquelle sieht in etwa so aus:
Test 1
Test 2
Test 3
Suchbegriff "Test" funktioniert, "test" nicht. (Oracle DB)
Die Hilfe und das Handbuch haben mich leider nicht weiter gebracht...
Vielen Dank und viele Grรผรe
Jannis
- Labels:
-
Developers
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Ja, die geht ja auch - nur dass descending="0" halt das oben beschrieben Verhalten hervorruft (A,B,a,b,c,d und nicht A,a,B,b,c,d).
Interessant ist halt die Tatsache, dass eine solche Query in FS ein anderes Ergebnis liefert als die Query direkt auf der Oracle-DB.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Die Treiber sind auch gleich. Jedenfalls liegt der Treiber, den ich in Eclipse eingebunden habe (worรผber ich die Abfragen prรผfe), auch im <FS-Ordner>/shared/lib. Der FS-Server wurde auch schon 1000 Mal neu gestartet, somit mรผรte ja dieser Treiber genutzt werden. Dennoch gibt es die unterschiedlichen Ergebnislisten.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Die Liste manuell nachsortieren hรถrt sich erst einmal einfach an, gestaltet sich aber durchaus kompliziert:
<CMS_FUNCTION name="contentSelect" .../> liefert mir ein ContentSelectImpl.SelectResultList.
- Ich habe ein BeanShell-Skript geschrieben, welches die Liste geeignet sortiert. Das Ergebnis der Sortierung ist eine List<Entity>, die ich gerne wieder an das Template zurรผckreichen kรถnnte. Dazu fehlt mir eine Funktion wie $CMS_SET(set_result, call(skript:"meinSkript", params...))$. Gibt es das und ich habe es nur nicht gefunden?
- Ich habe ein Java-Modul geschrieben und dieses als globale Bibliothek im Server hinterlegt, darunter eine statische Methode, die die Sortierung umsetzt. In der Beanshell-Konsole kann ich die Methode erfolgreich aufrufen. Hinterlege ich den Aufruf im Template $CMS_SET(set_result, de.adesso.firstspririt.blablabla.Sorter.sort(resultset))$, so bekomme ich die Ausgabe, auf "...Undefined" existiere die Methode nicht. Der CLASSPATH scheint also das Modul nicht zu enthalten. Was ist hier zu tun?
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Zu 1)
So sollte es gehen:
$CMS_SET(set_result, contentSelect.copy.sort(x -> x.meinAttributFรผrDieSortierung)))$
Ein Beanshell-Skript ist dafรผr nicht nรถtig.
Anmerkung: Der Aufruf "copy" deswegen, weil die Liste selber nicht modifizierbar ist.
Damit sollte sich auch 2) erledigt haben. Trotzdem der Hinweis: Klassennamen kรถnnen in FirstSpirit nicht wie in Java angegeben werden.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Danke fรผr die schnelle Antwort. entries.copy.sort(entry -> entry.row.toUpperCase()) lรถst das Problem.


- ยซ Previous
-
- 1
- 2
- Next ยป
- ยซ Previous
-
- 1
- 2
- Next ยป