現在のフックがすべてのユーザーを表示するか、現在のユーザーが表示を許可されているユーザーのみを表示するかを指定します。
スキーマ開発者がユーザーに対するフックの可視性をフックごとに制御できるようにします。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; }