Flexible Abfrage
Es ist möglich, sich eine komplett flexible Abfrage selbst zu bauen. Dazu dient der Parameter 'ABFRAGE'.
Ein Beispiel soll die Möglichkeiten verdeutlichen:
ABFRAGE=(((ortid == 7411) AND (artID != 4)) OR (kategoRIEid == 6)) AND (REIHE == Blaue Nacht)
Übersetzt heißt dies:
liefert alle Veranstaltungen, die
- vom Ort mit der ID 7411 sind und nicht zur Veranstaltungsart mit ID 4 gehören oder
- alle Veranstaltungen der Kategorie mit ID 6
- und nur wenn alle obigen Treffer zur Reihe "Blaue Nacht" gehören
Folgendes gilt es beim Zusammenbau einer Abfrage zu beachten:
- die Parameter und ihre Werte sind 'case insensitive', d.h. Reihe==BlAue NaCht, reihe==blaue nacht oder REIHE==BLAUE NACHT sind alle gleich bedeutend
- alle Name-Value-Pairs (=NVPs), wie z.B. ortid==7411, müssen in Klammern stehen, d.h. müssen immer so aufgebaut sein: (ortid==7411)
- Leerzeichen zwischen den Klammern, Parameter, Vergleichsoperatoren und logischen Verknüpfungen werden ignoriert, d.h. ( ortid == 7411 ), (ortid==7411) oder (ortid == 7411) sind alle möglich
- in den NVPs sind '!=' (ist nicht) und '==' (ist gleich) als Vergleiche möglich
- NVPs können beliebig geschachtelt werden, die Blöcke müssen aber mit Klammern umschlossen bzw. gruppiert werden
- NVPs und NVP-Blöcke können entweder mittels 'AND' oder mit 'OR' verknüpft werden
Aktuell können flexible Abfragen aus folgenden Parametern zusammengestellt werden:
- artid
- unterartid
- kategorieid
- unterkategorieid
- ortid
- veranstalterid
- eintritt
- reihe
- suchtext
- tag
- privatetag
Diese Liste wird in Zukunft wahrscheinlich um weitere Parameter erweitert.
Eine flexible Abfrage ist für die Schnittstelle letztlich nur ein weiterer Parameter, d.h. eine flexible Abfrage kann um alle schon vorhandenen Parameter (siehe Kapitel "Optionale Parameter") weiter eingegrenzt werden. Beispiel:
ABFRAGE=(((ortid == 7411) AND (artID != 4)) OR (kategoRIEid == 6)) AND (REIHE == Blaue Nacht) & ALTER_VON=4
Ergibt das gleiche Ergebnis wie oben, nur eben eingegrenzt auf alle Veranstaltungen ab 4 Jahren.