Restituisce un elenco di azioni accessibili per un dato record (oggetto Entity) valido per l'utente e possibile da eseguire se esiste un hook di controllo accessi definito.
L'elenco restituito da questo metodo contiene soltanto le azioni che possono essere eseguite sull'oggetto Entity nel relativo stato corrente tramite l'utente 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.
Questo metodo è simile a GetLegalActionDefNames, ma determina anche se l'utente dispone dei permessi per eseguire un'azione tramite la verifica di ogni azione valida per gli hook di controllo accessi e se un utente supera o meno il controllo di accesso. Se i blocchi del controllo di accesso bloccano l'utente, l'azione non viene restituita all'utente nell'elenco delle azioni restituite.
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.GetLegalAccessibleActionDefNames
Perl
$entity->GetLegalAccessibleActionDefNames();
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); } }