Ausführungsreihenfolge für Feld- und Aktions-Hooks

Feld- und Aktions-Hooks werden zu vorgegebenen Zeiten und in einer vorgegebenen Reihenfolge ausgeführt. Während ein Datensatz geöffnet ist, gelten die folgenden vier Ausführungspunkte für Hooks:

Hooks, die zu Beginn einer Aktion ausgeführt werden

Wenn ein Benutzer eine Aktion einleitet, werden die Hooks in dieser Reihenfolge ausgeführt:

  1. Der Hook für Aktionszugriffssteuerung (Action Access Control) überprüft den Benutzerzugriff und stoppt die Verarbeitung der Aktion, wenn der Benutzer nicht berechtigt ist, diese einzuleiten. In diesem Fall werden die verbleibenden Hooks nicht ausgeführt.

    Sie können die Zugriffssteuerung für Aktionen ändern. Dies gilt auch für Aktionen, die durch das Anwenden von Paketen zu Ihrem Schema hinzugefügt wurden. Alle Begrenzungen der Zugriffssteuerung, die für Basisaktionen festgelegt werden, gelten auch für alle anderen Aktionen. Für verschachtelte Aktionen wird kein Zugriffssteuerungs-Hook ausgeführt.

  2. Der Hook für Feldberechtigung (Field Permission) legt fest, ob ein Feld verbindlich, optional oder schreibgeschützt ist.
  3. Der Hook für Aktionsinitialisierung (Action Initialization) führt Initialisierungstasks aus (z. B. Festlegen von Feldwerten vor Beginn der Aktion.
  4. Der Hook für den Feldstandardwert (Field Default Value) legt den Wert für jedes Feld fest (nur bei Aktionen vom Typ "Submit").
  5. Der Hook für Feldprüfung (Field Validation) überprüft den Inhalt aller Felder (außer bei Importaktionen, in denen keine Prüfung erfolgt). Feldprüfungs-Hooks können keine nicht vorhandenen Werte überprüfen (z. B. in einem Pflichtfeld, für das kein Wert festgelegt ist).
  6. Der Hook für Feldauswahlliste (Field Choice List) wird für jedes Feld ausgeführt, das die Option "Recalculate Choice List" verwendet. Sind abhängige Felder vorhanden, für die Sie beim Erstellen die Option "Recalculate Choice List" ausgewählt haben, wird für jedes Feld der Feldprüfungs-Hook und danach der Hook für die Feldauswahlliste ausgeführt, bis alle geänderten Felder festgelegt und überprüft sind.

    Wenn ein Hook für geänderten Feldwert (Field Value Changed) die Methode "SetFieldValue" für das Objekt "Entity" aufruft, wird der Hook "VALUE_CHANGED" für dieses Feld ausgeführt, sobald "SetFieldValue" aufgerufen wird.

Verschachtelte Aktionen

Bestimmte Hooks werden nicht ausgeführt, solange eine verschachtelte Aktion ausgeführt wird. Dies gilt für Zugriffssteuerungs-Hooks und für alle Benachrichtigungs-Hooks. Weitere Informationen hierzu finden Sie in den Abschnitten Aktionen und Zugriffssteuerung und Hooks in verschachtelten Aktionen in der Veröffentlichung IBM Rational ClearQuest API-Referenz.

Hooks, die beim Festlegen eines Feldwerts ausgeführt werden

Wenn ein Benutzer einen Datensatz bearbeitet, werden die Hooks in folgender Reihenfolge ausgeführt:

  1. Der Hook für geänderten Feldwert wird für jedes geänderte Feld ausgeführt.

    Ist die Option "Limit to list" aktiviert und gibt der Benutzer einen nicht zulässigen Wert ein, wird das Feld als ungültig markiert. Nur wenn der Benutzer einen zulässigen Wert eingibt, wird der nächste Hook ausgeführt.

    Wenn ein Hook für geänderten Feldwert die Methode "SetFieldValue" aufruft, um den Wert eines anderen Felds zu ändern, wird der Hook für geänderten Feldwert des anderen Felds sofort ausgeführt.

  2. Der Hook für Feldprüfung (Field Validation) wird für jedes Feld ausgeführt.
  3. Der Hook für die Feldauswahlliste (Field Choice List) wird für jedes Feld ausgeführt, das die Option "Recalculate Choice list" verwendet.

    Wenn Sie abhängige Felder mit der Option "Recalculate Choice list" verwenden, wird zuerst der Hook für Feldprüfung und danach der Hook für die Feldauswahlliste ausgeführt, bis alle geänderten Felder festgelegt und geprüft sind.

Feld-Hooks werden nur ausgeführt, wenn der Benutzer die Aktion "Submit" aufruft, es sei denn, das Feld ist als Feld mit abhängigen Feldern gekennzeichnet. Weitere Informationen finden Sie im Abschnitt Mit Hooks eine Websitzung erkennen.

Hooks, die beim Prüfen des Datensatzes ausgeführt werden

Vor dem Festschreiben von Änderungen in der Datenbank prüft Rational ClearQuest den Datensatz. Diese Prüfung erfolgt durch das Ausführen von Hooks in der folgenden Reihenfolge:

  1. Der Hook für Feldprüfung (Field Validation) wird für jedes Feld in dem Datensatz ausgeführt.
  2. Der Hook für Aktionsprüfung (Action Validation) wird für die ausgeführte Aktion ausgeführt.

Hooks, die beim Festschreiben des Datensatzes ausgeführt werden

Der Festschreibungs-Hook ("Commit") wird nach dem Aktualisieren der Datenbank mit den Änderungen des aktuellen Datensatzes, aber noch vor dem Festschreiben der Aktualisierungstransaktion in der Datenbank ausgeführt. Das bedeutet, ein Festschreibungs-Hook kann nicht zum Ändern des aktuellen Datensatzes verwendet werden (z. B. können Sie mit einem Festschreibungs-Hook keine Änderungen an einem Feld vornehmen).

Die Verarbeitungsvorgänge in einem Festschreibungs-Hook erfolgen, während Sperren in der Datenbank aktiv sind. Diese Sperren hindern möglicherweise andere Benutzer daran, Abfragen auszuführen, neue Datensätze zu erstellen oder vorhandene Datensätze zu ändern. Unter dem Leistungsaspekt ist es sinnvoll, die Verarbeitungsvorgänge in einem Festschreibungs-Hook auf ein Minimum zu reduzieren.

Verwenden Sie einen Festschreibungs-Hook nur für Aktionen an anderen Datensätzen, die Bestandteil derselben Datenbanktransaktion wie die Hauptaktion sein sollen (z. B. zum Beheben eines Fehlerduplikats, wenn der übergeordnete Fehler behoben wird). Stellen Sie sicher, dass die entsprechenden Aufrufe im richtigen Kontext stehen. Beispielsweise sollte Revert nicht aus einem Festschreibungs-Hook und Commit nicht aus einer anderen Aktion als einem Festschreibungs-Hook aufgerufen werden.

Nachdem ein Datensatz geprüft wurde, wird er in der Datenbank festgeschrieben von Hooks, die in der folgenden Reihenfolge ausgeführt werden:

  1. Der Hook für Aktionsfestschreibung (Action Commit) wird ausgeführt.
  2. Die Transaktion wird in der Datenbank festgeschrieben.
  3. Der Hook für Aktionsfestschreibung (Action Notification) wird ausgeführt. Beispielsweise kann eine E-Mail-Benachrichtigung an verschiedene Benutzer gesendet werden.

Weitere Informationen hierzu finden Sie im Abschnitt Vorhandenen Datensatz bearbeiten in der Veröffentlichung IBM Rational ClearQuest API-Referenz.


Feedback