GetLegalActionDefNames

説明

指定されたレコード (Entity オブジェクト) のアクセス可能アクションのリストを戻します。

このメソッドは EntityDef の GetActionDefNames メソッドと似ています。ただし、このメソッドから戻されたリストには、現在の状態で Entity オブジェクトに実行できるアクションのみが含まれています。Session オブジェクトの EditEntity メソッドを呼び出す前にこのメソッドを使用すると、レコードに正当に実行できるアクションを判別できます。

状態に基づいて許可されるアクションのみのリスト作成に加え、戻されるリストを、ユーザーが実行を許可されているアクションに限定することもできます。しかし、この許可検査は、グループ アクセス権限にのみ基づきます。 そうではなく、アクションまたはベース アクションにアクセス制御フックがある場合、このフックは、ユーザーにアクションを実行する権限があるかどうかを判別するために実行されません。したがって、ユーザーがこれらのいずれかのアクションを実行するときに、「許可は拒否されました」のエラー メッセージが表示されることがあります。

このメソッドがフック内から呼び出される場合、ユーザーには常に、レコードの現在の状態に正当なすべてのアクションを実行する権限があります。

構文

VBScript

entity.GetLegalActionDefNames 

Perl

$entity->GetLegalActionDefNames(); 
識別子
説明
entity
Entity オブジェクトは、ユーザー データ レコードを表します。構文のこの部分を省略すると、フック内では、現在のデータ レコードに対応する Entity オブジェクトが想定されます (VBScript のみ)。
戻り値
Visual Basic の場合、文字列の配列を含む Variant が戻されます。各文字列には、1 つの正当なアクションの名前が含まれています。Entity オブジェクトにアクションを実行できない場合、戻り値は空の variant です。

Perl の場合は、文字列の配列への参照。

VBScript

set sessionObj = GetSession

entityDefName = GetEntityDefName 
set entityDefObj = sessionObj.GetEntityDef(entityDefName) 

' Search for a legal action with which to modify the record 
actionDefList = GetLegalActionDefNames 
For Each actionDef in actionDefList 
   actionDefType = entityDefObj.GetActionDefType(actionDef)
   if actionDefType = AD_MODIFY Then 
      sessionObj.EditEntity entity, actionDef 
      Exit For 
   End If 
Next

Perl

$sessionobj = $entity->GetSession();



$entitydefname = $entity->GetEntityDefName();



$entitydefobj = $sessionobj->GetEntityDef($entitydefname); 



# Search for a legal action with which to modify the record 

$actiondeflist = $entity->GetLegalActionDefNames();



foreach $actionname(@$actiondeflist)
   {
 $actiondeftype = $entitydefobj->GetActionDefType($actionname);

 if ($actiondeftype eq $CQPerlExt::CQ_MODIFY)

  {

  $sessionobj->EditEntity($entity,$actionname);

  }

 } 

フィードバック