액세스 제어 후크가 정의되어 있을 경우, 사용자에게 적합하고 실행할 수도 있는 제공된 레코드(Entity 오브젝트)에 대해 액세스 가능한 조치 목록을 리턴합니다.
이 메소드에서 리턴된 목록에는 현재 사용자가 현재 상태에서 Entity 오브젝트에 대해 수행할 수 있는 조치만이 포함되어 있습니다. Session 오브젝트의 EditEntity 메소드를 호출하기 전에 이 메소드를 사용하여 사용자가 레코드에 대해 적절하게 수행할 수 있는 조치를 판별할 수 있습니다.
리턴된 목록은 상태를 기본으로 허용되는 조치만 나열하며 사용자가 수행할 권한을 갖고 있는 조치로 제한됩니다.
이 메소드는 GetLegalActionDefNames과 유사하나 액세스 제어 후크에 대해 적절한 각 조치를 점검하고 사용자가 액세스 제어를 패스하는지 여부를 판별하여 사용자에게 조치를 수행할 권한이 있는지 여부도 판별합니다. 액세스 제어가 사용자를 차단할 경우, 리턴된 조치 목록에 있는 사용자에게 조치가 리턴되지 않습니다.
후크 내에서 이 메소드를 호출할 경우, 사용자는 항상 현재 레코드 상태에 적절한 조치를 실행할 권한을 갖습니다.
VBScript
entity.GetLegalAccessibleActionDefNames
Perl
$entity->GetLegalAccessibleActionDefNames();
Perl의 경우 문자열 배열에 대한 참조가 리턴됩니다.
VBScript
Dim EntityObj As OAdEntity
Set sessionObj = GetSession
Set EntityObj = sessionObj.GetEntity("Defect", "SAMPL00000001")
entityDefName = EntityObj.GetEntityDefName
Set entityDefObj = sessionObj.GetEntityDef(entityDefName)
' Get the legal accessible actions
actionDefList = EntityObj.GetLegalAccessibleActionDefNames
If IsArray(actionDefList) Then
For Each actionDef in actionDefList
msg2 = msg2 & " " & actionDef
Next
End If
MsgBox "Legal accessible actions are: " & msg2
Perl
$sessionobj = $entity->GetSession();
$entitydefname = $entity->GetEntityDefName();
$entitydefobj = $sessionobj->GetEntityDef($entitydefname);
# Search for a legal action with which to modify the record
$actiondeflist = $entity->GetLegalAccessibleActionDefNames();
foreach $actionname(@$actiondeflist)
{
$actiondeftype = $entitydefobj->GetActionDefType($actionname);
if ($actiondeftype eq $CQPerlExt::CQ_MODIFY)
{
$sessionobj->EditEntity($entity,$actionname);
}
}