GetLegalAccessibleActionDefNames

Descripción

Devuelve una lista de acciones a las que se puede acceder para un registro determinado (objeto Entity), que se permiten al usuario y se pueden ejecutar si existe un enganche de control de acceso definido.

La lista que devuelve este método sólo contiene las acciones que puede realizar el usuario actual en 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 un usuario 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.

Este método es similar a GetLegalActionDefNames, pero también determina si el usuario tiene permiso para realizar una acción comprobando cada acción permitida para enganches de control de acceso y determinando si el usuario pasa el control de acceso. Si el control de acceso bloquea al usuario, la acción no se devuelve al usuario en la lista de acciones devueltas.

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.

Nota: Este método estuvo disponible en la versión 7.0.0.0.

Sintaxis

VBScript

entity.GetLegalAccessibleActionDefNames 

Perl

$entity->GetLegalAccessibleActionDefNames(); 
Identificador
Descripción
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

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

  }

 } 

Feedback