objList":Warum werden Objekte-Listen beim Server abgefragt?
In manchen Situationen muss aus der Gesamtmenge aller Objekte oder zumindest aus einer größeren Anzahl eine Auswahl getroffen werden. Dann wäre es unzweckmäßig, die Auswahl der auf dem Server gespeicherten Objekte in der WIM-App zu machen, da dazu zunächst alle relevanten Daten aller in Frage kommenden Objekte zur WIM-App übertragen werden müssten.
Daher wird von der WIM-App an den (Frontend-)Server ein parameterisierter Auftrag gesendet, in dem die vorzunehmende Auswahl beschrieben wird. Im folgenden finden sich weitere Angaben zu den angebbaren Parametern.
Welche Parameter zur Steuerung der Objekte-Auswahl sind vorgesehen?
Zunächst ein Beispiel eines "objList"-Auftrags zum Liefern einer Liste der bis zu 10 neuesten Beiträge aus dem Jahr 2012, die im Teaser-Text die Buchstabenfolge "Suchtext" enthalten:
<objList Limit="10" Offset="0" Values="PUBLISHED">... (weitere (Standard-) Parameter
<Spec>
<select Param="PUBLISHED" min="20120101_" max="20121231_235959"/>
<select Param="teaserText" contains="Suchtext"/>
<sort by="+PUBLISHED -CREATED"/>
</Spec>
</objList>
Zur Bedeutung und Aufgabe der Parameter:
Limit:Hier kann angegeben werden, dass die Länge der Ergebnisliste begrenzt werden soll.
Offset:Hier kann angegeben werden, wie viele Einträge der originalen Ergebnisliste übersprungen werden sollen, bevor die dann folgenden Einträge in die zu übermittelnden Ergebnisliste übernommen werden.
Zu beachten ist dabei, dass bei "häppchenweiser" Abfrage eine längeren Liste Einträge doppelt erscheinen oder ausgelassen werden können, weil sich zwischen den Abfragen die Liste geändert hat.
Spec:Hier wird angegeben, welche Parameterwerte für die Auswahl und das Sortieren verwendet werden sollen. Dazu wird eine wimList mit wimRecords angegeben.
ACHTUNG: Vorläufig(?) wird ein wimRecord statt einer wimList verwendet!Folgende Records sind vorgesehen:
- Recordtyp
select:
Angabe eines Auswahlkriteriums, das zusammen mit eventuellen weiteren angegebenen Auswahlkriterien erfüllt sein muss. Folgende Parameter sind dabei anzugeben:Param: Name des Parameters, dessen Wert abgefragt werden soll.min: Minimalwert für den Parameterwert.max: Maximalwert für den Parameterwert.contains: Zeichenkette, die im Parameterwert enthalten sein muss....: Diverse weitere Operatoren /Funktionen. (Sie werden bei Bedarf implementiert ;-)
- Recordtyp
sortmit dem (einzigen) Parameterby:
Optionale Angabe des oder der Sortierkriterien. Hier sind die Parameternamen anzugeben, nach denen sortiert werden soll. Vor den Parameternamen sollte entweder ein "+" -Zeichen oder ein "-" -Zeichen stehen, das bestimmt, ob in auf- oder absteigender Reihenfolge sortiert werden soll.
- Recordtyp
Values:Neben der Liste der ermittelten Objekte können zu jeder Objektangabe auch ein bis mehrere Parameterwerte mitgeliefert werden. Da die Darstellung der einzelnen Parameterwerte kein Leerzeichen enthalten darf, werden Leerzeichen durch XML-Zeichen-Entities ersetzt: Als z.B.   oder   . Durch die Lieferung von Name/Wert-Gruppen kann die Verarbeitungsgeschwindigkeit erhöht werden, weil oft eine zusätzliche Anfrage beim Server gespart wird.
Im Values-Parameter werden die Namen der Parameter angegeben, deren Werte im Ergebnis mitgeliefert werden sollen. Ist kein Name angegeben, wird nur die Liste der Objektspezifkationen geliefert.
Wie sieht das Ergebnis der Abfrage aus?
Als Ergebnis wird eine leerzeichen-separierte Liste von Objekt-Spezifikationen geliefert, die gegebenen falls mit den angefragten Parameterwerten durchsetzt ist. Bei einem einzelnen Parameterwert entstehen dann also Name-Wert-Paare.
Können Einzelwerte von als wimRecord vorliegenden Parameterwerten adressiert werden?
Ja. Dazu muss dem Parameternamen ein Punkt (".") und der Name des gewünschten Parameters im wimRecord des Parameterwerte angegeben werden. Im Prinzip ist eine "beliebige" weitere Verschachtelungstiefe möglich.
Wie werden Parameterwerte vom Typ wimList behandelt?
Liegt als Parameterwert eine wimList vor, wird jedes einzelne Item der Liste geprüft. Mindestens eines der Items muss die Auswahlkriterien erfüllen.
tbd: Sortier-Verhalten ?
Ist eine kombinierte Auswahl möglich?
Im Prinzip ja. So sollte in der WIM-App die Möglichkeit vorhanden sein, dort lokal gespeicherte Daten mit einer entsprechenden Abfrage abzufragen.
Nur wenn Objektelisten vom Server abgefragt werden, muss der Frontend-Server die Objektelisten ermitteln. Sind die Objekte in der WIM-App als Überlagerung der Objekte des Servers deklariert, muss in der WIM-App die vom Server gelieferte Objekteliste mit der app-eigenen Objekteliste vereint werden.
Objekte beim WIM-System BACKEND-Modul-Services
