SetHookSeesAllUsers

설명

현재 후크가 모든 사용자를 볼 수 있는지 아니면 현재 사용자가 볼 수 있도록 허용된 사용자만 볼 수 있는지를 지정합니다.

스키마 개발자가 후크 단위별로 후크에서 사용자에 대해 후크 가시성을 제어할 수 있도록 허용합니다. Set 함수는 현재 실행 중인 후크의 지속 기간에 대해서만 가시성을 지정합니다.

메소드를 True (1)로 설정하면 조회가 실행될 때 현재 후크가 모든 사용자를 볼 수 있도록 지정됩니다. 값이 False (0)이면 조회가 실행될 때 현재 후크는 현재 사용자가 볼 수 있도록 허용된 사용자(세션에서 사용자의 실제 사용자 권한에 따라)만 볼 수 있습니다.

예를 들어, 후크의 기본 동작은 모든 사용자를 본 후에 다음 행을 볼 수 있습니다.
  • 영향을 주지 않음
    $session->SetHookSeesAllUsers(0);
  • 후크가 모든 사용자를 볼 수 있음
    $session->SetHookSeesAllUsers(1);

HOOKS_SEE_ALL_USERSHOOKS_SEE_ALL_RECORDS 마스터 데이터베이스 특성으로 스키마 개발자는 데이터베이스에 있는 모든 후크에 대한 기본 가시성을 구성할 수 있습니다. 7.1 이전 버전(기능 레벨 5 및 6)의 경우 이러한 특성의 기본값은 True (1)입니다. 버전 7.1(기능 레벨 7)의 경우 기본값은 False (0)입니다. CLI 명령에 대한 정보는 CLI 참조 페이지를 참조하십시오.

다음 예제는 사용자에게 할당된 필드가 후크로 선택 목록을 채워 현재 사용자의 그룹에 있는 사용자만 나열하도록 합니다.
sub AssignedTo_ChoiceList {
  my($fieldname) = @_;
  my @choices;
  my $session = $entity->GetSession();
  $session->SetHookSeesAllUsers(0);
  my $queryDefObj = $session->BuildQuery("users");
  $queryDefObj->BuildField("login_name");
  my $resultSetObj = $session->BuildResultSet($queryDefObj);
  $resultSetObj->Execute();

  while ($resultSetObj->MoveNext() == $CQPerlExt::CQ_SUCCESS) {
    push(@choices,$resultSetObj->GetColumnValue(1));
  }
 return @choices; 
}
주: 이 메소드는 버전 7.1부터 사용 가능합니다.

구문

VBScript

user_restr = session.SetHookSeesAllUsers set_vis 

Perl

session->SetHookSeesAllUsers(set_vis); 
ID
설명
session
현재 database-access 세션을 나타내는 Session 오브젝트입니다.
set_vis
현재 후크가 모든 사용자를 볼 수 있는지 아니면 현재 사용자가 볼 수 있도록 허용된 사용자만 볼 수 있는지를 지정하는 부울입니다. True로 설정하면 사용자 조회가 실행될 때 현재 후크가 모든 사용자를 볼 수 있습니다. False로 설정하면 사용자 조회가 실행될 때 현재 후크는 현재 사용자가 볼 수 있도록 허용된 사용자만 볼 수 있습니다.
Return value
없음

예제

VBScript

sub project_ChoiceList(fieldname, choices)
  ' fieldname As String
  ' choices As Object
  ' record type name is Defect
  ' field name is project

set session = GetSession
dim curHooksSeesAllUsers

' Store current session "Context"
curHookSeesAllUsers = session.GetHookSeesAllUsers()

' set session context to "User Context"
session.SetHookSeesAllUsers(0)

set querydef = session.BuildQuery("project") 
querydef.BuildField("name") 
set resultset = session.BuildResultSet(querydef) 
resultset.Execute 

status =resultset.MoveNext
Do While status = AD_SUCCESS 
   choices.AddItem resultSetObj.GetColumnValue(1)
Loop 

' revert to original session "Context"
session.SetHookSeesAllUsers( curHookSeesAllUsers )

End Sub

Perl

sub project_ChoiceList 
{
    my($fieldname) = @_;
    my @choices;
    # $fieldname as string scalar
    # @choices as string array
    # record type name is Defect
    # field name is Project

    # start building a query of the users 
    my $session = $entity->GetSession();
    my ($curHooksSeesAllUsers);

# store current "Context"
    $curHooksSeesAllUsers=$session->GetHookSeesAllUsers();

# set to "User Context"
    $session->SetHookSeesAllUsers(0);

    my ($queryDefObj, $resultSetObj);

    $queryDefObj = $session->BuildQuery("Project");

    # have the query return the desired
    # field of the user object(s)
    $queryDefObj->BuildField("Name");
    $resultSetObj = $session->BuildResultSet($queryDefObj);

    # run it
    $resultSetObj->Execute();

    # add each value in the returned column to the choicelist
    while ($resultSetObj->MoveNext() == $CQPerlExt::CQ_SUCCESS) {
push(@choices,$resultSetObj->GetColumnValue(1));
    }

# revert to original session "Context"
    $session->SetHookSeesAllUsers($curHooksSeesAllUsers);

    return @choices; 
}

피드백