Ordine di esecuzione degli hook campo e azione

Gli hook campo e azione vengono eseguiti a intervalli predeterminati e in un ordine prestabilito.

Sono presenti quattro punti di esecuzione dell'hook durante la visualizzazione di un record:

Hook eseguiti quando viene avviata un'azione

Prima di eseguire il commit delle modifiche sul database, o quando è richiesta una convalida da un client ClearQuest Web o RCP, il software Rational ClearQuest convalida il record eseguendo gli hook nel seguente ordine:

  1. L'hook controllo accessi azione verifica l'accesso dell'utente ed arresta l'elaborazione dell'azione se all'utente non è consentito avviarla. In questo caso, i restanti hook non vengono eseguiti.

    È possibile modificare il controllo accessi alle azioni, incluse le azioni che potrebbero essere aggiunte allo schema applicando i package. Tuttavia, qualsiasi limitazione del controllo accessi situata nelle azioni base si applica alle altre azioni. Per le azioni nidificate, un hook controllo accessi non viene eseguito.

  2. L'hook autorizzazione campo determina se ogni campo è obbligatorio, facoltativo o di sola lettura.
  3. L'hook inizializzazione azione esegue le attività di inizializzazione quali l'impostazione dei valori del campo prima che l'azione venga avviata.
  4. L'hook valore predefinito del campo imposta il valore per ogni campo (solo per le azioni Inoltra).
  5. L'hook convalida campo convalida il contenuto di ogni campo, tranne per un'azione di importazione in cui non si verifica alcuna convalida. Gli hook convalida campo non possono convalidare i valori inesistenti, come ad esempio un campo obbligatorio in cui il valore non è stato impostato.
  6. L'hook elenco di scelte campo viene eseguito per ogni campo che utilizza l'opzione Calcola nuovamente l'elenco di scelte. Se sono presenti campi dipendenti e si seleziona Calcola nuovamente l'elenco di scelte durante la creazione dei campi, viene eseguito prima l'hook convalida campo, poi l'hook elenco di scelte campo per ogni campo, finché non vengono impostati e convalidati tutti i campi modificati.

    Se un hook valore campo modificato richiama il metodo SetFieldValue dell'oggetto Entità, l'hook VALUE_CHANGED per tale campo viene eseguito al momento del richiamo SetFieldValue.

Azioni nidificate

Alcuni hook non vengono eseguiti mentre è in corso un'azione nidificata, inclusa l'esecuzione degli hook controllo accessi e tutti gli hook notifica. Per ulteriori informazioni, consultare Azioni e controllo accessi e Hook nelle azioni nidificate in Riferimento API IBM Rational ClearQuest.

Hook eseguiti quando viene impostato un valore del campo

Quando un utente modifica un record, gli hook vengono eseguiti nel seguente ordine:

  1. L'hook valore campo modificato viene eseguito per ogni campo modificato.

    Se l'opzione Limita all'elenco è impostata e l'utente inserisce un valore 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 valore campo modificato richiama il metodo SetFieldValue per modificare il valore di un altro campo, l'hook valore campo modificato per tale campo viene eseguito immediatamente.

  2. L'hook convalida campo viene eseguito per ogni campo.
  3. L'hook elenco di scelte campo viene eseguito per ogni campo che utilizza l'opzione Calcola nuovamente l'elenco di scelte.

    Se si utilizzano i campi dipendenti con l'opzione Calcola nuovamente l'elenco di scelte, viene eseguito prima l'hook convalida campo, poi l'hook elenco di scelte campo per ogni campo, finché non vengono impostati e convalidati tutti i campi modificati.

Gli hook campo vengono eseguiti solo quando l'utente avvia l'azione Inoltra, a meno che il campo non sia contrassegnato come avente campi dipendenti. Consultare Utilizzo di hook per rilevare una sessione Web.

Hook eseguiti quando viene convalidato il record

Prima di eseguire il commit delle modifiche sul database, il software Rational ClearQuest convalida il record eseguendo gli hook nel seguente ordine:

  1. L'hook convalida campo viene eseguito per ogni campo del record.
  2. L'hook convalida azione viene eseguito per l'azione eseguita.

Hook eseguiti quando viene eseguito il commit del record

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 query, 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 padre è 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:

  1. Viene eseguito l'hook commit azione.
  2. Viene eseguito il commit della transazione nel database.
  3. Viene eseguito l'hook notifica azione. Ad esempio, una notifica via e-mail può essere inviata a vari utenti.

Per ulteriori informazioni, consultare Modifica in un record esistente in Riferimento API IBM Rational ClearQuest.


Feedback