필드 기본값 후크 예제

사용자가 레코드를 작성한 경우 Rational® ClearQuest® 소프트웨어는 레코드를 작성하고 해당 필드를 적절한 기본값으로 초기화합니다. 특정 필드에 이와 연관된 기본값 후크가 있으면 후크가 실행되어 필드 값을 설정합니다. 필드와 연관된 후크가 없으면 필드 유형에 적합한 기본값이 지정됩니다. 예를 들어, 정수 필드는 0으로, 문자열 필드는 빈 문자열로, 목록 필드는 빈 목록으로 설정됩니다. 날짜 필드는 기본값으로 초기화되지 않고 항상 날짜 필드에 기본값 후크를 제공해야 합니다.

참고: 후크는 관리자 권한을 사용하여 실행되기 때문에 이 예제는 필드의 동작이 읽기 전용인 경우에도 작동합니다.

다음 예제는 날짜 필드를 현재 날짜와 시간으로 초기화하는 방법을 나타냅니다.

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());

} 

다음 예제에서는 레코드를 제출하고 있는 사용자의 로그인 이름으로 "submitter" 필드를 초기화합니다.

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);

} 

피드백