Ejemplos de enganches de valor predeterminado de campo

Cuando el usuario crea un registro, el software de Rational ClearQuest crea el registro e inicializa los campos en los valores predeterminados adecuados. Si un campo determinado tiene un enganche de valor predeterminado asociado, el enganche se ejecuta para establecer el valor del campo. Si no hay ningún enganche asociado al campo, se asigna un valor predeterminado que es adecuado para el tipo del campo. Por ejemplo, los campos de entero se establecen en 0, los campos de serie se establecen en una serie vacía y los campos de lista se establecen en una lista vacía. Los campos de fecha no se inicializan con un valor predeterminado; proporcione siempre un enganche de valor predeterminado para los campos de fecha.

Nota: Puesto que los enganches se ejecutan con privilegios de administrador, los ejemplos funcionan aunque el comportamiento de los campos sea de sólo lectura.

En el ejemplo siguiente se muestra cómo inicializar un campo de fecha para la fecha y hora actuales:

VBScript

Sub submit_date_DefaultValue(fieldname)

    ' fieldname As String
    ' entityDef = defect
    call SetFieldValue(fieldname, now)

End Sub 

Perl

# Define a function for the current timestamp

sub GetCurrentDate {

    my ($sec, $min, $hour, $mday, $mon, $year, $wday, $yday, $time) =
      localtime();
    return sprintf("%4d-%2.2d-%2.2d %2.2d:%2.2d:%2.2d", $year + 1900, 
      $mon + 1, $mday,  $hour, $min, $sec);
}

# Define a routine to call the timestamp function

sub Submit_Date_DefaultValue {

   my($fieldname) = @_;
   # $fieldname as a string scalar and entityDef is Defect
   $entity->SetFieldValue($fieldname, GetCurrentDate());

} 

En el ejemplo siguiente se inicializa el campo "submitter" para el nombre de inicio de sesión de la persona que envía el registro:

VBScript

Sub submitter_DefaultValue(fieldname)

    ' fieldname As String
    ' entityDef = swbug

    SetFieldValue fieldname, GetSession().GetUserLoginName()

End Sub 

Perl

sub Submitter_DefaultValue {

    my($fieldname) = @_;

    # $fieldname as a string scalar

    # entityDef is Defect

    my $session;

    my $username;

    $session = $entity->GetSession();

    $username = $session->GetUserLoginName();

    $entity->SetFieldValue($fieldname, $username);

} 

Feedback