Mit einem
Validierungs-Hook können Sie prüfen, ob ein Benutzer gültige Informationen in ein Feld
eingegeben hat. Wenn die Informationen nicht gültig sind, wird der Benutzer aufgefordert, gültige Informationen einzugeben.
Informationen zu diesem Vorgang
Beim Definieren eines neuen BASIC- oder PERL-Hooks für ein
Feld oder eine Aktion wird die Aufrufsyntax für den Hook im Fenster des Script-Editors hinzugefügt. Die Aufrufsyntax kann nicht bearbeitet werden.
Da Hooks das Verhalten eines Felds beeinflussen können, sollten Sie Hooks
besonders sorgfältig entwerfen und testen, bevor Sie sie Benutzern zur Verfügung stellen.
Dieses Beispiel für einen Hook für Benutzereingabe macht das Feld "user_number" zu einem
Musseingabefeld, unabhängig von der Einstellung im Raster "Behaviors".
Vorgehensweise
- Starten Sie Designer.
- Erweitern Sie im ClearQuest-Schema-Repository-Explorer den Ordner Record Types in Ihrem Schema,
und klicken Sie dann doppelt auf einen Satztyp. Der Satztypeditor wird geöffnet.
- Klicken Sie auf das Register Fields, um das Raster "Record Fields" anzuzeigen.
- Klicken Sie im Raster "Fields" auf die Zelle Validation
für das Feld, das Sie ändern möchten, und klicken Sie auf den Abwärtspfeil, um eine Liste der verfügbaren Hooks anzuzeigen. Klicken Sie auf
oder
. Wenn der Modus für sofortige Bearbeitung aktiviert ist, wird der Script-Editor gestartet. Ist der Modus für sofortige Bearbeitung inaktiviert, müssen Sie doppelt
auf die Zelle Validation für das Feld klicken, um den Script-Editor zu
öffnen.
BASIC und Perl verwenden ihre eigenen Script-Editoren. Designer zeigt in der Titelleiste des Fensters "Designer" an, welcher Editortyp verwendet wird.
Vergewissern Sie sich vor dem Bearbeiten des Codes, dass Sie den richtigen Editor verwenden.
- Geben Sie den Code zum Validieren der Benutzereingabe nach den folgenden Zeilen ein
(in Perl beginnen die Zeilen mit dem Zeichen "#"):
REM Return a non-empty string explaining why the
REM field's current value is not permitted.
REM Or, if it is valid, return an empty string value.
REM Example:
REM Dim value_info
REM Set value_info = GetFieldValue(fieldname)
REM If Len(value_info.GetValue()) < 10 Then
REM resolution_date_Validation = "Must be at least 10 chars long"
REM End If
Wenn das Feld
den Namen "user_number" und den Typ "INT" aufweist, stellt der Code sicher,
dass Benutzer einen Wert zwischen 1 und 100 eingeben:
REM Return a non-empty string explaining why the field's current
value is not permitted
REM Or, if it is valid, return an empty string value.
value = GetFieldValue(fieldname).Get Value()
if Not IsNumeric(value)
user_number_Validation="Field does not contain a number."
Else If (value < 1) or (value > 100) then
user_number_Validation="User number must be between 1 and 100."
end if