레코드에서 잠금을 해제합니다. 잠금을 소유하고 있는 사용자, 수퍼유저 권한이 있는 사용자 또는 스키마 디자이너 권한이 부여된 사용자만 잠금을 제거할 수 있습니다. 다른 사람 또는 다른 세션에서 레코드를 잠갔거나 레코드가 업데이트된 경우 예외가 발생됩니다.
조치를 커미트하거나 되돌리면 레코드 잠금이 자동으로 해제됩니다. RECORD_SCRIPT_ALIAS 후크를 사용하여 사용되지 않는 잠금을 수동으로 제거할 수 있습니다.
VBScript
entity.UnlockRecord
Perl
$entity->UnlockRecord();
VBScript
Function Defect_Unlock(param)
' param As Variant
' record type name is Defect
REM add your hook code here
Dim result
Dim session
Dim locked_by
' Get the session
set session = GetSession
locked_by = GetLockOwner
if (locked_by <> "") then
Dim do_unlock
do_unlock = session.IsUserSuperUser
if (NOT do_unlock) then
' If the current user holds the lock, let them unlock it.
Dim username
username = session.GetUserLoginName
if (username = locked_by) then
do_unlock = true
end if
end if
if (NOT do_unlock) then
' Additional options to "authorize" unlocking:
'
' 1) allow if user is a member of an "unlock" group
' get user's groups, check if member
'
' 2) allow for some privileged users, e.g. Security Administrator
' check session for the chosen privilege
'
' 3) many other possibilities
end if
if (do_unlock) then
UnlockRecord
else
result = "You are not allowed to unlock this record."
end if
end if
End Function
Perl
sub Defect_Unlock {
my($result);
my($param) = @_;
# record type name is Defect
if (ref ($param) eq "CQEventObject") {
# add your CQEventObject parameter handling code here
} elsif (ref (\$param) eq "SCALAR") {
# add your scalar parameter handling code here
# The Web clients support scalar parameter type only,
# so the hook code added in the above section, needs to be duplicated here
} else {
# add your handling code for other type parameters here, for example:
# die("Unknown parameter type");
}
$result = "";
my $locked_by = $entity->GetLockOwner();
if ($locked_by ne "") {
my $do_unlock = $session->IsUserSuperUser();
if (! $do_unlock) {
# If the current user holds the lock, let them unlock it.
my $username = $session->GetUserLoginName();
if ($username =~ /^$locked_by$/i) {
$do_unlock = 1;
}
}
if (! $do_unlock) {
# Additional options to "authorize" unlocking:
#
# 1) allow if user is a member of an "unlock" group
# get user's groups, check if member
#
# 2) allow for some privileged users, e.g. Security Administrator
# check session for the chosen privilege
#
# 3) many other possibilities
}
if ($do_unlock) {
$entity->UnlockRecord();
}
else {
$result = "You are not allowed to unlock this record.";
}
}
return $result;
}