La clausola where nella query descrive i criteri di filtraggio da applicare al dominio della query.
La sintassi di una clausola where è uguale ad una clausola where SQL. Non è necessario aggiungere esplicitamente un SQL dalla clausola o aggiungere i predicati alla clausola where, questi costrutti vengono aggiunti automaticamente quando viene eseguita la query. Se non si desidera applicare i criteri di filtro, è necessario specificare null per la clausola where.
La sintassi della clausola where supporta:
Vengono applicate anche le seguenti regole:
- Specificare le costanti ID come ID('string-rep-of-oid').
- Specificare le costanti binarie come BIN('UTF-8 string').
- Utilizzare le costanti simboliche al posto delle enumerazioni di numeri interi. Ad esempio, invece di specificare un'espressione dello stato di attività ACTIVITY.STATE=2,
specificare ACTIVITY.STATE=ACTIVITY.STATE.STATE_READY.
- Se il valore della proprietà nell'istruzione di confronto contiene gli apici ('), i doppi apici, ad esempio, "TASK_CPROP.STRING_VALUE='d''automatisation'".
- Fare riferimento alle proprietà di più coppie nome-valore, ad esempio le proprietà personalizzate, aggiungendo un suffisso a una cifra al nome della vista. Ad esempio: "TASK_CPROP1.NAME='prop1'
AND "TASK_CPROP2.NAME='prop2'"
- Specificare le costanti data/ora come TS('aaaa-mm-ggThh:mm:ss'). Per fare riferimento alla data corrente, specificare CURRENT_DATE come data/ora.
È necessario specificare almeno un valore data o ora nella data/ora:
- Se si specifica solo una data, il valore ora è impostato su zero.
- Se si specifica solo l'ora, la data viene impostata su quella corrente.
- Se si specifica una data, l'anno deve essere costituito da quattro cifre; i valori mese e giorno sono facoltativi. I valori mese e giorno mancanti sono impostati su 01. Ad esempio, TS('2003') è uguale a TS('2003-01-01T00:00:00').
- Se si indica un'ora, questi valori vengono espressi nel sistema di 24 ore.
Ad esempio, se la data corrente è 1 gennaio 2003, TS('T16:04') o TS('16:04') è uguale a TS('2003-01-01T16:04:00').
Esempi di clausole where
- Confronto di un ID oggetto con un ID esistente
"WORK_ITEM.WIID = ID('_WI:800c00ed.df8d7e7c.feffff80.38')"
Normalmente, questo tipo di clausola where viene creata in modo dinamico con un ID oggetto esistente di una chiamata precedente. Se questo ID oggetto viene memorizzato in una variabile
wiid1, la
clausola può essere costruita come:
"WORK_ITEM.WIID = ID('" + wiid1.toString() + "')"
- Uso degli indicatori di data/ora
"ACTIVITY.STARTED >= TS('2002-06-1T16.00.00')"
- Uso delle costanti simboliche
"WORK_ITEM.REASON = WORK_ITEM.REASON.REASON_OWNER"
- Utilizzo dei valori booleani true e false
"ACTIVITY.BUSINESS_RELEVANCE = TRUE"
- Utilizzo delle proprietà personalizzate
"TASK_CPROP1.NAME = 'prop1' AND " TASK_CPROP1.STRING_VALUE = 'v1' AND
TASK_CPROP2.NAME = 'prop2' AND " TASK_CPROP2.STRING_VALUE = 'v2'"