Die WHERE-Klausel in der Abfragefunktion beschreibt die Filterbedingungen,
die auf die Abfragedomäne angewendet werden.
Die Syntax der WHERE-Klausel ist die gleiche wie bei der SQL-Klausel WHERE. Sie
müssen keine SQL-Klausel FROM und keine Verknüpfungsprädikate zur WHERE-Klausel
hinzufügen. Diese Konstrukte werden beim Ausführen der Abfrage automatisch hinzugefügt.
Zum Anwenden von Filterbedingungen müssen Sie für die WHERE-Klausel
null angeben.
Die Syntax der WHERE-Klausel unterstützt Folgendes:
Außerdem gelten die folgenden Regeln:
- Objekt-ID-Konstanten sind als ID('string-rep-of-oid') anzugeben.
- Binärkonstanten sind als BIN('UTF-8 string') anzugeben.
- Anstelle von Ganzzahlaufzählungen sind symbolische Konstanten zu verwenden. Geben Sie beispielsweise
anstelle eines Ausdrucks für Aktivitätsstatus (ACTIVITY.STATE=2)
ACTIVITY.STATE=ACTIVITY.STATE.STATE_READY an.
- Wenn der Wert des Merkmals in der Vergleichsanweisung einfache Anführungszeichen (') enthält,
machen Sie daraus doppelte Anführungszeichen; Beispiel: "TASK_CPROP.STRING_VALUE='d''automatisation'".
- Merkmale von Name/Wert-Paaren (z. B. benutzerdefinierte Merkmale) sind durch
Hinzufügen eines einstelligen Suffixes zum Ansichtsnamen zu referenzieren.
Beispiel: "TASK_CPROP1.NAME='prop1'
AND "TASK_CPROP2.NAME='prop2'"
- Zeitmarkenkonstanten sind als TS('jjjj-mm-ttThh:mm:ss') anzugeben. Das
aktuelle Datum ist durch die Zeitmarke CURRENT_DATE anzugeben.
In der
Zeitmarke ist mindestens ein Datums- oder Zeitwert anzugeben:
- Wenn Sie nur ein Datum angeben, wird der Zeitwert auf Null gesetzt.
- Wenn Sie nur eine Zeit angeben, wird das Datum auf das aktuelle Datum gesetzt.
- Wenn Sie ein Datum angeben, muss das Jahr aus vier Ziffern bestehen, die Werte für
Monat und Tag sind optional. Fehlende Werte für Monat und Datum werden auf 01 gesetzt. Beispiel:
TS('2003') ist identisch mit TS('2003-01-01T00:00:00').
- Wenn Sie eine Zeit angeben, wird dieser Wert im 24-Stunden-Format angegeben.
Beispiel: Ist das aktuelle Datum der 1. Januar 2003, ist TS('T16:04') oder TS('16:04')
identisch mit TS('2003-01-01T16:04:00').
Beispiele für WHERE-Klauseln
- Objekt-ID mit vorhandener ID vergleichen
"WORK_ITEM.WIID = ID('_WI:800c00ed.df8d7e7c.feffff80.38')"
Dieser
Typ der WHERE-Klausel wird normalerweise mit einer vorhandenen Objekt-ID aus einem
vorangegangenen Aufruf dynamisch erstellt. Ist diese Objekt-ID in einer Variablen
wiid1 gespeichert,
kann die Klausel wie folgt konstruiert werden:
"WORK_ITEM.WIID = ID('" + wiid1.toString() + "')"
- Zeitmarken verwenden
"ACTIVITY.STARTED >= TS('2002-06-1T16.00.00')"
- Symbolische Konstanten verwenden
"WORK_ITEM.REASON = WORK_ITEM.REASON.REASON_OWNER"
- Boolesche Werte 'wahr' und 'falsch' verwenden
"ACTIVITY.BUSINESS_RELEVANCE = TRUE"
- Benutzerdefinierte Merkmale verwenden
"TASK_CPROP1.NAME = 'prop1' AND " TASK_CPROP1.STRING_VALUE = 'v1' OR
TASK_CPROP2.NAME = 'prop2' AND " TASK_CPROP2.STRING_VALUE = 'v2'"