다중 레코드 업데이트 편집 조작 제어

ClearQuest® 관리자 또는 스키마 디자이너로써 사용자는 다중 레코드 업데이트 상태 정보를 사용하여 다중 레코드 업데이트 제어를 구현하는 후크 코드를 쓸 수 있습니다.

예를 들어, 스키마는 수정할 수 있는 레코드 또는 레코드 유형, 수정할 수 있는 필드, 다중 레코드 업데이트 조작을 수행할 수 있는 사용자 또는 오류 수가 한계에 도달했을 때 추가적인 변경사항을 막을 수 있는 사용자를 제한할 수 있습니다. 기타 가능성은 레코드 유형, 연관된 프로젝트 레코드, 현재 사용자 또는 그룹 멤버십을 기반으로 하는 제한사항을 포함합니다.

다중 레코드 업데이트 상태 정보가 ratl_MultiModifyBatchStatus 세션 변수의 스키마에 제공됩니다. ratl_MultiModifyBatchStatus 세션 변수의 값은 표시된 순서의 다음 숫자 값으로 구성됩니다. 각 값은 숫자이며 줄 바꾸기로 구분됩니다.
  • 템플리트 레코드를 포함한 총 레코드 수입니다.
  • 현재 레코드의 서수이며 1부터 총 레코드 수까지의 범위입니다. 템플리트 레코드에 대한 서수 값은 1입니다.
  • 실패 업데이트 수입니다.
레코드 서수는 다중 레코드 업데이트 템플리트 레코드가 편집되는 시기를 판별하는 데 사용될 수 있습니다. 2 이상의 서수 값은 재생이 진행 중이고 다중 레코드 업데이트가 서수 값에 해당하는 레코드에서 현재 조작 중임을 표시합니다. 예를 들어, 13개의 레코드에서 다중 레코드 업데이트를 수행한다고 가정합니다. 템플리트 레코드가 편집되면 ratl_MultiModifyBatchStatus 세션 변수의 값은 "13 1 0"(공백을 위한 줄 바꾸기 포함)입니다. 다중 레코드 업데이트가 실패 없이 다섯 번째 레코드에서 재생되는 경우 ratl_MultiModifyBatchStatus의 값은 "13 5 0"입니다. 다중 레코드 업데이트가 이전 레코드에서 두 번 실패한 후 아홉 번째 레코드에서 재생되는 경우 ratl_MultiModifyBatchStatus의 값은 "13 9 2"입니다.

다중 레코드 업데이트가 레코드에서 후크를 실행하는 조작을 수행하는 경우 ratl_MultiModifyBatchStatus 세션 변수 및 ratl_MultiModifyBatchMode 세션 변수가 설정됩니다. 해당 조작의 예제는 모든 조치 단계(Phase), 레코드 스크립트 별명 조치, 필드 변경사항, 선택사항 목록 후크, 레코드의 편집 조작에 대해 실행할 수 있는 후크, 다중 레코드 업데이트에 포함되지 않은 후크입니다.

다음 예제는 현재 레코드가 다중 레코드 업데이트가 조작 중인 레코드임을 확인하는 방법을 표시합니다. 이 예제는 조치 액세스 제어 후크에서 사용되는 것입니다. 조치 제어 후크가 다중 레코드 업데이트가 진행 중인지 여부를 확인한 후에 후크는 실패 수를 확인합니다. 10번 이상의 실패가 있는 경우 Perl die () 명령문을 사용하여 오류를 발생시킵니다. 다중 레코드 업데이트는 다중 레코드 업데이트 결과 세트의 모든 레코드를 계속 처리하며 이 예제 후크는 각 후속 레코드를 계속 실패로 표시합니다.

$result = 1;
# 다중 레코드 업데이트를 수행하는 경우 너무 많은 오류가 있는지 여부를 확인합니다.
   #
   my $mru_id = $session->GetNameValue("ratl_MultiModifyBatchMode");
   if ($mru_id ne "") {
      my $me = $entity->GetDisplayName();
      if ($mru_id eq $me) {
         # 예, 현재 레코드에서 다중 레코드 업데이트를 수행합니다.

         my $status = $session->GetNameValue("ratl_MultiModifyBatchStatus");
         my ($count, $ordinal, $failures, $ignore) = split('\n', $status, 4);

         if ($failures > 10) {
            die("이 다중 레코드 업데이트에서 너무 많은 오류($failures)가 발생했습니다. 추가 업데이트가 허용되지 않습니다.")
         }
      }
   }

피드백