Gli hook field e action vengono eseguiti a intervalli predeterminati e nell'ordine prestabilito. Sono presenti quattro punti di esecuzione dell'hook durante la visualizzazione di un record:
Quando un utente avvia un'azione, gli hook vengono eseguiti nel seguente ordine:
È possibile modificare il controllo di accesso alle azioni, incluse le azioni che potrebbero essere aggiunte allo schema applicando i pacchetti. Tuttavia, qualsiasi limitazione del controllo di accesso situata nelle azioni base si applica alle altre azioni. Per le azioni nidificate, un hook access control non viene eseguito.
Se un hook Field Value Changed richiama il metodo SetFieldValue dell'oggetto Entity, l'hook VALUE_CHANGED per tale campo viene eseguito al momento del richiamo SetFieldValue.
Alcuni hook non vengono eseguiti mentre è in corso un'azione nidificata, inclusa l'esecuzione degli hook access control e tutti gli hook notification. Per ulteriori informazioni, consultare Controllo accesso e azioni e Hook nelle azioni nidificate in IBM Rational ClearQuest - Riferimento API.
Quando un utente modifica un record, gli hook vengono eseguiti nel seguente ordine:
Se l'opzione Limit to list è impostata e l'utente immette un valore che non è consentito, il campo viene contrassegnato come non valido. L'hook successivo viene eseguito solo quando l'utente immette un valore valido.
Se un hook Field Value Changed richiama il metodo SetFieldValue per modificare il valore di un altro campo, l'hook Field Value Changed per tale campo viene eseguito immediatamente.
Se si utilizzano i campi dipendenti con l'opzione Recalculate Choice list, viene eseguito prima l'hook Field Validation e poi l'hook Field Choice List per ogni campo, fino a quando i campi modificati non sono stati impostati e convalidati.
Gli hook field vengono eseguiti solo quando l'utente avvia l'azione Submit, a meno che il campo non sia contrassegnato come avente campi dipendenti. Consultare Utilizzo di hook per rilevare una sessione Web.
Prima di eseguire il commit delle modifiche sul database, il software Rational ClearQuest convalida il record eseguendo gli hook nel seguente ordine:
L'hook Commit viene eseguito dopo l'aggiornamento del database con le modifiche al record corrente, ma prima di eseguire il commit della transazione di aggiornamento al database. Non è possibile utilizzare un hook Commit per modificare il record corrente (ad esempio, non è possibile apportare le modifiche ad un campo da un hook Commit).
Il lavoro in un hook Commit viene completato mentre sono presenti dei blocchi nel database, tali blocchi possono impedire agli altri utenti di eseguire interrogazioni, di creare nuovi record o di modificare quelli esistenti. Per motivi di prestazioni, è preferibile ridurre il lavoro eseguito in un hook Commit.
Utilizzare un hook Commit solo per le azioni sugli altri record che fanno parte della stessa transazione del database come azione principale (ad esempio, la risoluzione di un difetto duplicato quando il difetto principale è stato risolto). È necessario verificare che siano stati inseriti i richiami appropriati nel contesto corretto. Ad esempio, non richiamare Revert da un hook Commit né richiamare Commit da qualsiasi azione diversa da un hook Commit.
Dopo che un record è stato convalidato, gli hook ne eseguono il commit nel database nel seguente ordine:
Per ulteriori informazioni, consultare Come modificare un record esistente in IBM Rational ClearQuest - Riferimento API.