GetLegalActionDefNames

Description

Devuelve una lista de acciones accesibles para un registro determinado (objeto Entity).

Este método es similar al método GetActionDefNames de EntityDef; sin embargo, la lista que devuelve este método sólo contiene las acciones que puede realizar el objeto Entity en su estado actual. Puede utilizar este método antes de llamar al método EditEntity del objeto Session para determinar las acciones que puede realizar legalmente en el registro.

Además de listar sólo las acciones que están permitidas en base al estado, la lista devuelta también se limita a las acciones que el usuario está autorizado a llevar a cabo. No obstante, la comprobación del permiso se basa sólo en permisos de acceso de grupo. Si, en vez de ello, la acción o cualquier acción de base tiene un enganche de control_acceso, el enganche no se ejecuta para determinar si el usuario tiene permiso para llevar a cabo la acción y, por consiguiente, el usuario puede obtener un mensaje de error de "permiso denegado" al ejecutar una de dichas acciones.

Si se llama a este método desde un enganche, el usuario siempre tiene permiso para ejecutar cualquier acción que esté permitida para el estado actual del registro.

Sintaxis

VBScript

entity.GetLegalActionDefNames 

Perl

$entity->GetLegalActionDefNames(); 
Identificador
Description
entity
Un objeto Entity que representa un registro de datos de usuario. En un enganche, si se omite esta parte de la sintaxis, se presupone el objeto Entity correspondiente al registro de datos actual (sólo VBScript).
Valor de retorno
Para Visual Basic, devuelve un valor Variant que contiene una matriz de series. Cada serie contiene el nombre de una acción permitida. Si no se puede realizar ninguna acción en el objeto Entity, el valor de retorno es un Empty Variant.

Para Perl, una referencia a una matriz de series.

Ejemplos

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);

  }

 } 

Comentarios