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:
Wenn ein Benutzer eine Aktion einleitet, werden die Hooks in dieser Reihenfolge 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.
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.
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.
Wenn ein Benutzer einen Datensatz bearbeitet, werden die Hooks in folgender Reihenfolge 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.
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.
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:
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:
Weitere Informationen hierzu finden Sie im Abschnitt Vorhandenen Datensatz bearbeiten in der Veröffentlichung IBM Rational ClearQuest API-Referenz.