Trovi un paio di esempi nel Workflow Manual (pag. 42) ma in realtà molto limitati.
Ti riporto sotto qualche esempio in più
con confronto fra CQL ed SQL
Fabio
----------------------------
Filtro semplice
Il filtro semplice permette di filtrare su un valore costante:
SQL:
SELECT
*
FROM
“NomeClasse”
WHERE
“Attributo”=Valore
CQL:
from NomeClasse where Attributo=Valore
ESEMPIO:
Selezione della email del gruppo “NomeGruppo” nell'extended attribute manageEmail.
Nella definizione definizione dell'extended attribute si definisce il parametro ToAddresses nel seguente modo:
ToAddresses={cql:nomeQueryCQL.Email}
quindi è possibile definire la seguente query CQL:
nomeQueryCQL=”select Email from Role where Code='NomeGruppo'”
Filtro semplice con variabile lato server
Questa query permette di filtrare su una variabile lato server:
SQL:
SELECT
*
FROM
“NomeClasse”
WHERE
“Attributo”=VariabileServer
CQL:
from NomeClasse where Attributo={server:NomeVariabile}
NOTE:
Per identificare la variabile NomeVariabile (in visualizzazione nella form) si utilizza la forma semplice:
{server:NomeVariabile}
Per attributi di tipo LookUp o Reference è necessario specificare tramite la notazione puntata se si vuole l'Id o la Description:
{server:NomeVariabile.Id}
{server:NomeVariabile.Description}
ESEMPIO:
Selezione della email dell'utente selezionato tramite l'attributo “Richiedente”, di tipo reference, nell'extended attribute manageEmail. Nella definizione definizione dell'extended attribute si definisce il parametro ToAddresses nel seguente modo:
ToAddresses={cql:nomeQueryCQL.Email}
quindi è possibile definire la seguente query CQL:
nomeQueryCQL="select Email from Personale where Id={server:Richiedente.Id} and Status='A'"
Filtro semplice con variabile lato client
Questa query permette di filtrare su una variabile lato client, si fa notare che se il campo nella form non è valorizzato la query semplice con variabile lato client segnala un errore in quanto il valore della variabile lato client non è ancora definito. Per risolvere questo problema è necessario utilizzare i Metadati (v. filtri con metadati):
SQL:
SELECT
*
FROM
“NomeClasse”
WHERE
“Attributo”=VariabileClient
CQL:
from NomeClasse where Attributo={client:NomeVariabile}
NOTE:
Per identificare la variabile NomeVariabile (in visualizzazione nella form) si utilizza la forma semplice:
{client:NomeVariabile}
Per attributi di tipo LookUp o Reference è necessario specificare tramite la notazione puntata se si vuole l'Id o la Description:
{client:NomeVariabile.Id}
{client:NomeVariabile.Description}
ESEMPIO:
L'esempio più comune è simile a quello della variabile lato server (sostituendo client a server)