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.
VBScript
entity.GetLegalActionDefNames
Perl
$entity->GetLegalActionDefNames();
Para Perl, una referencia a una matriz de series.
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);
}
}