Loading

Come utilizzare l'operatore Non in nel flusso

Data pubblicazione: Apr 2, 2026
Descrizione
In Salesforce, è possibile estendere l'accesso utente assegnando agli utenti insiemi di autorizzazioni che forniscono funzioni o funzionalità aggiuntive.

Esistono tipi speciali di insiemi di autorizzazioni di cui è titolare un profilo (IsOwnedByProfile). Questi insiemi di autorizzazioni non possono essere rimossi senza modificare il profilo.

In questo articolo Knowledge vedremo la procedura in cui si utilizza un flusso per eliminare le assegnazioni degli insiemi di autorizzazioni assicurandosi nel contempo che quelli di proprietà di un profilo rimangano intatti.

Questo esempio utilizza l'operatore di flusso Non in introdotto nel rilascio Winter '23.
Risoluzione
Modello di oggetti 
Prima di passare alla parte dell'articolo relativa alle procedure, vediamo il modello a oggetti per capire in che modo vengono gestite le assegnazioni degli insiemi di autorizzazioni.

Permission Set Diagram.png

In Salesforce, una licenza insieme di autorizzazioni rappresenta una licenza che può essere assegnata a un utente senza modificarne il profilo. Un'assegnazione licenza insieme di autorizzazioni rappresenta la relazione tra un utente e una licenza insieme di autorizzazioni. Un insieme di autorizzazioni rappresenta un gruppo di autorizzazioni assegnate a un utente tramite un'assegnazione dell'insieme di autorizzazioni.

A causa del modello di relazione tra questi oggetti, in particolare gli insiemi di autorizzazioni, le assegnazioni dell'insieme di autorizzazioni e gli utenti nel flusso, è necessario eliminare gli insiemi di autorizzazioni che non appartengono a un profilo con un'assegnazione insieme di autorizzazioni correlata all'utente corrente.

Procediamo con il flusso
 
In questo caso, stiamo eliminando tutte le assegnazioni di insiemi di autorizzazioni quando un utente viene reso inattivo, a parte gli insiemi di autorizzazioni in cui IsOwnedByProfile = TRUE.

In questa soluzione, i nomi API, i tipi di flusso e altre impostazioni saranno predefinite. È possibile apportare modifiche in base al proprio caso d'uso e applicarle alle assegnazioni di licenze insieme di autorizzazioni. L'attributo "IsOwnedByProfile" non esiste per le assegnazioni di licenze insieme di autorizzazioni.
 
Fase 1. Passare a Imposta in Salesforce (tramite la rotella Impostazioni > Imposta)
 
Setup.png
 
Fase 2. Utilizzare la ricerca veloce per cercare Flussi
 
Quick Find.png
Fase 3. Fare clic su Flussi, quindi su Nuovo flusso
 
New Flow.png
 
Fase 4. Impostare il tipo di flusso come attivato da record, quindi scegliere Crea
 
Record Trigger.png

Fase 5. Selezionare Utente come oggetto e la condizione come Un record è aggiornato
 
Select object.png
 
Fase 6. Impostare il flusso in modo che venga eseguito quando sono soddisfatte tutte le condizioni (AND) quando IsActive è uguale a {!$GlobalConstant.False} 
           Set Entry.png
 
Fase 7. Impostare il flusso in modo che venga eseguito solo quando un record è aggiornato per soddisfare i requisiti della condizione e ottimizzare il flusso per: azioni e record correlati. Fare clic su Chiudi
  
When to run the flow.png
Fase 8. Utilizzando + aggiungere un componente Ottieni record per ottenere le assegnazioni dell'insieme di autorizzazioni per l'utente corrente: 
a. Etichetta: Ottieni assegnazioni dell'insieme di autorizzazioni
b. Nome API: Get_Permission_Set_Assignments
c. Descrizione: Recupera le assegnazioni dell'insieme di autorizzazioni per l'utente corrente
d. Nome oggetto: Assegnazione dell'insieme di autorizzazioni
e. Requisiti della condizione: Tutte le condizioni sono soddisfatte (AND)
f. AssigneeId è uguale a {!$Record.Id}
g. Ordinamento: Non ordinato
h. Quanti record memorizzare: Tutti i record
i. Come archiviare i dati record: Archivia automaticamente tutti i campi
 
Edit Get record.png
 
Fase 9. Utilizzare + per aggiungere un elemento Decisione per eseguire solo l'insieme successivo di azioni quando vengono rilevate assegnazioni dell'insieme di autorizzazioni: 
a. Etichetta: L'utente dispone di insiemi di autorizzazioni?
b. Nome API: Does_User_have_Permission_Sets
c. Descrizione: Determina se intraprendere un'azione in base al fatto che all'utente siano assegnati o meno insiemi di autorizzazioni
d. Dettagli esito
i. Etichetta: Vero
ii. Nome API: Vero
iii. Requisiti delle condizioni per eseguire l'esito: Tutte le condizioni sono soddisfatte (AND)
iv. Risorsa: {!Get_Permission_Set_Assignments} è Null {!$GlobalConstant.False}
v. Quando eseguire l'esito: se i requisiti della condizione sono soddisfatti
e. Dettagli esito
i. Etichetta: Falso
 
Edit Decision.png
 
Edit Decision 2.png
 
Fase 10. Nel percorso TRUE (esito) + Ottieni record in modo da poter ottenere gli insiemi di autorizzazioni dove IsOwnedByProfile = TRUE
a. Etichetta: Ottieni insiemi di autorizzazioni di proprietà del profilo
b. Nome API: Get_Permission_Sets_Owned_by_Profile
c. Descrizione: Recupera tutti gli insiemi di autorizzazioni in cui IsOwnedByProfile = TRUE
d. Nome oggetto: Insieme di autorizzazioni
e. Requisiti della condizione: Tutte le condizioni sono soddisfatte (AND)
f. IsOwnedByProfile è uguale a {!$GlobalConstant.True}
g. Ordinamento: Non ordinato
h. Quanti record memorizzare: Tutti i record
i. Come archiviare i dati record: Archivia automaticamente tutti i campi
 
image.png
 
Fase 11. Ora utilizzare + per eseguire un loop per gli insiemi di autorizzazioni di cui il profilo è titolare
a. Etichetta: Loop per insiemi di autorizzazioni di proprietà del profilo
b.  Nome API: Loop_around_Permission_Sets_Owned_by_Profile
c. Descrizione: Loop per gli insiemi di autorizzazioni di proprietà del profilo
d. Variabile raccolta: {!Get_Permission_Sets_Owned_by_Profile}
e. Direzione: Dal primo elemento all'ultimo
 
image.png
 
Fase 12. Creare una risorsa da utilizzare nel loop per archiviare gli ID degli insiemi di autorizzazioni dove l'insieme di autorizzazioni è di proprietà del profilo. Fare clic sull'icona della casella degli strumenti e poi su Nuova risorsa 
 
 
Fase 13. Configurare la risorsa flusso come segue:
a. Tipo di risorsa: Variabile
b. Nome API: PermissionSetsToKeep
c. Descrizione: Archivia gli ID degli insiemi di autorizzazioni da escludere dall'eliminazione
d. Tipo di dati: Testo
e.  Consenti più valori (raccolta): Selezionato
f. Disponibile per l'input: Deselezionato
g. Disponibile per l'output: Deselezionato
 
Edit variable.png
 
Fase 14. Utilizzare + nel loop per aggiungere un elemento assegnazione:
a. Etichetta: Aggiungi elemento corrente alla raccolta testo
b. Nome API: Add_Current_Item_to_Text_Collection
c. Descrizione: Aggiunge l'elemento corrente a una variabile raccolta testo
d. {!PermissionSetsToRemove} Aggiungere {!Loop_around_Permission_Sets_Owned_by_Profile.Id}
 
Edit Assignment.png
 
Fase 15. All'esterno del loop utilizzare + per aggiungere un componente Elimina record:
a. Etichetta: Elimina le assegnazioni dell'insieme di autorizzazioni
b. Nome API: Delete_Permission_Set_Assignments
c. Descrizione: Elimina le assegnazioni dell'insieme di autorizzazioni di cui il profilo non è titolare
d. Come trovare i record da eliminare: Specifica le condizioni
e. Oggetto: Assegnazione dell'insieme di autorizzazioni
f. Requisiti della condizione per i record da eliminare: Tutte le condizioni sono soddisfatte (AND)
i. AssigneeId è uguale a {!$Record.Id}
ii. PermissionSetId non in {!PermissionSetsToKeep}

image.png
 
Fase 16. Fare clic su Salva
a. Etichetta flusso Elimina assegnazioni dell'insieme di autorizzazioni
b. Nome API del flusso: Delete_Permission_Set_Assignments
c. Descrizione: Elimina le assegnazioni dell'insieme di autorizzazioni quando un utente è reso inattivo
 
Save the Flow.png
 
Fase 17. Fare clic su Attiva
 
Activate Flow.png
 
 
Il flusso finale, una volta completato, deve avere questo aspetto:




___________________________________


Scritto da: Tom Bassett | Leader nelle Risposte Salesforce
Tom Bassett è un architetto di soluzioni presso Trigg Digital e ha più di cinque anni anni di esperienza con la piattaforma Salesforce. Desidera che i clienti ottengano il massimo dal CRM e diffonde la cultura Ohana supportando tutta la Trailblazer Community con nuove idee sulle funzionalità e rispondendo alle domande poste. È co-leader del gruppo London Architect Community e contribuisce anche a Salesforce Ben come autore esperto.

I materiali inviati riflettono esclusivamente le opinioni dell'utente che li ha resi disponibili e non le opinioni di Salesforce, indipendentemente dal fatto che l'utente sia affiliato a Salesforce, e possono contenere o costituire prodotti, servizi, informazioni, dati, contenuti e altri materiali resi disponibili da o per conto di terze parti ("Materiali di terze parti"). Salesforce non controlla né approva, né è responsabile per i materiali di terze parti, inclusa la loro accuratezza, validità, tempestività, completezza, affidabilità, integrità, qualità, legalità, utilità o sicurezza, o qualsiasi diritto di proprietà intellettuale applicabile. Tutti i materiali resi disponibili attraverso qualsiasi bacheca o forum in risposta a domande pubblicate, o che in altro modo pretendono di rispondere a qualsiasi domanda, comprese le domande su Salesforce o sui programmi, sono resi disponibili solo per conoscenza generale e non devono mai essere considerati come risposte a domande specifiche degli utenti (anche se una risposta è contrassegnata come risposta "migliore" o con qualifiche simili). È sempre consigliabile contattare l'assistenza Salesforce per ottenere risposte alle proprie domande specifiche. Salesforce non ha alcun controllo sui materiali inviati e non è responsabile di alcun uso o abuso (inclusa la distribuzione) da parte di terze parti di tali materiali. 

In caso di domande, è possibile attingere al sapere dell'intera Trailblazer Community qui: 
https://trailhead.salesforce.com/trailblazer-community/feed
Numero articolo Knowledge

000394118

 
Caricamento
Salesforce Help | Article