Costruzione
di frasi |
E' possibile utilizzare
i seguenti operatori per combinare frasi singole e creare una
definizione esauriente della frase della regola.
Utilizzare il pulsante dell'operatore And per eseguire un
collegamento tra due frasi. I dati a cui si accede devono corrispondere a entrambe le
condizioni. Selezionare il pulsante And dopo aver inserito la prima
frase e prima di inserire la seconda. Nell'esempio seguente,
l'utilizzo dell'operatore And specifica le modifiche con uno stato
completato e una data dell'evento precedente al 31 Marzo 1999:
Modifica:Status_ID=completato AND Change_History:Event_Date <
31/03/99
Utilizzare il pulsante dell'operatore Or per collegare due frasi. I
dati devono corrispondere a entrambe le frasi.
Selezionare Or dopo aver inserito la prima frase e prima di inserire la seconda. Nell'esempio seguente,
l'utilizzo dell'operatore Or specifica le modifiche con uno stato
completato o con una data dell'evento precedente al 31 Marzo 1999:
Modifica:Status_ID=completato OR Change_History:Event_Date
<
31/03/99
Utilizzare il pulsante dell'operatore Not prima di inserire
una frase per invertire lo stato true o false della frase. Ad
esempio, l'utilizzo dell'operatore Not nella frase seguente specifica
tutte le modifiche tranne quelle con uno stato completato:
Modifica NOT:Status_ID=Completato
che deve essere equivalente alla frase:
Change_Status_ID<>completato
E' possibile utilizzare l'operatore Not con gli operatori
And e Or. L'esempio seguente specifica tutte le modifiche con uno
stato completato con una data dell'evento successiva o uguale al
31 Marzo 1999:
Modifica:Status_ID=completato AND NOT
Modifica:Event_Date<31/03/99
Utilizzare i pulsanti delle parentesi per inserire le
parentesi prima, dopo o tra le frasi e gli operatori nell'elenco. Le
parentesi si utilizzano per controllare l'ordine in cui vengono
interpretate le frasi, così come nelle istruzioni matematiche si
utilizzano per controllare l'ordine di più calcoli.
Nell'esempio seguente, le parentesi vengono utilizzate per
definire una regola che si applica a due gruppi di modifiche
(modifiche completate con una data dell'evento precedente al 31 Marzo
1999 e le modifiche salvate con una data dell'evento posteriore al
31 Marzo 1999):
(Modifica:Status_ID=completata AND Change_History:Event_Date<31/03/99) OR (Modifica:Status_ID=salvata AND
Change_History:Event_Date>31/03/99)
|
|
Quando TCM valuta
una frase al tempo di esecuzione, utilizza la seguente logica:
- Se tutte le congiunzioni sono And (non vi sono congiunzioni
Or), la routine di valutazione uscirà e restituirà false come
condizione generale, non appena la prima condizione viene impostata
su false. Le condizioni vengono valutate da sinistra a destra.
- Se tutte le congiunzioni sono Or (cioè, non vi sono
congiunzioni And), la routine di valutazione uscirà e restituirà true
come condizione generale, non appena la prima condizione viene
impostata su true. Le condizioni vengono valutate da sinistra a destra.
- Se in una frase vengono utilizzate le congiunzioni And
e Or, tutta la frase deve essere valutata per determinare la
risoluzione generale true/false.
Utilizzando questa logica di valutazione, è possibile
utilizzare la definizione delle frasi della regola che hanno un
impatto diretto sulla prestazioni del tempo di esecuzione. Se una
frase ha più condizioni con tutte le congiunzioni And, definendo la condizione che ha la più alta probabilità di valutazione
su false sulla parte sinistra della definizione della frase, viene
salvato il tempo di elaborazione che altrimenti sarebbe utilizzato
per valutare condizioni ulteriori.
Ad esempio, supporre che:
- Una frase della regola venga definita per
rilevare Modifica:Status_ID completa, Modifica: il Costo è superiore
a 100 e la Modifica:Categoria è software.
Per ottimizzare la prestazione di questa frase, la valutazione
di Status_ID viene definita prima, perché solo un numero relativamente
piccolo di valutazioni (paragonato a tutte le transazioni di
modifica) ha uno Status_ID completato.
- A seconda delle condizioni utilizzate dall'utente, le
rimanenti potrebbero essere definite in entrambi gli ordinamenti, ma
tenere presente che la maggior parte dei costi di modifica sono
inferiori a 100 e che la maggior parte delle modifiche sono per la
la categoria software. In base a questi assunti, la definizione
ottimale della regola è:
Modifica:Status_ID = completato AND Modifica:Costo > 100 AND
Modifica: Categoria = software
Tuttavia, se la frase della regola è definita per rilevare
tutte le condizioni di cui sopra, l'ordine delle condizioni viene
invertito. Definendo la condizione nella frase della regola prima che
vi sia una maggiore probabilità di valutazione su true, è possibile
trarre vantaggio dalla precedente logica di uscita.
Modifica:Categoria = software OR Modifica:Costo > 100 OR
Change:Status_ID = completato
|