現在のフックがすべてのユーザーを表示するか、現在のユーザーが表示を許可されているユーザーのみを表示するかを指定します。
スキーマ開発者がユーザーに対するフックの可視性をフックごとに制御できるようにします。Set 関数は、現在実行中のフックのみの期間中の可視性を指定します。
このメソッドを True (1) に設定すると、現在のフックがクエリーの実行時にすべてのユーザーを表示することが指定されます。False (0) は、現在のフックが、現在のユーザーがクエリーの実行時に (セッション中のユーザーの実際のユーザー権限に基づいて) 表示を許可されているユーザーのみを表示することを意味します。機能レベル 5 および 6 では、 これらのプロパティのデフォルト値は True (1) です。機能レベル 7 では、デフォルト値は False (0) です。
$session->SetHookSeesAllUsers(0);
$session->SetHookSeesAllUsers(1);
スキーマ開発者は、HOOKS_SEE_ALL_USERS および HOOKS_SEE_ALL_RECORDS マスター データベースのプロパティを使用することにより、使用中のデータベース内のすべてのフックにデフォルトの可視性を構成できます。機能レベル 5 および 6 では、 これらのプロパティのデフォルト値は True (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;
}
VBScript
user_restr = session.SetHookSeesAllUsers set_vis
Perl
session->SetHookSeesAllUsers(set_vis);
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;
}