Restituisce un elenco di azioni accessibili per un dato record (oggetto Entity).
Questo metodo è simile al metodo GetActionDefNames dell'oggetto EntityDef; tuttavia, l'elenco restituito da questo metodo contiene solo le azioni che possono essere eseguite sull'oggetto Entity nel relativo stato corrente. È possibile utilizzare questo metodo prima di richiamare il metodo EditEntity dell'oggetto Session per determinare le azioni valide che un utente può eseguire sul record.
Oltre ad elencare solo le azioni consentite basate sullo stato, l'elenco restituito è limitato anche alle azioni che un utente può eseguire. Tuttavia, questa verifica dei permessi si basa solo sui permessi di accesso del gruppo. Se invece l'azione o qualsiasi azione di base dispone di un hook Access_Control, tale hook non viene eseguito per determinare se l'utente dispone dei permessi per eseguire l'azione. Quindi, l'utente può ottenere un messaggio di errore "permission denied" se viene eseguita una di queste azioni.
Se questo metodo viene richiamato dall'interno di un hook, l'utente disporrà sempre dei permessi per eseguire qualsiasi azione valida per lo stato corrente del record.
VBScript
entity.GetLegalActionDefNames
Perl
$entity->GetLegalActionDefNames();
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); } }