Loading

Verwenden des Operators "Not in" in Flow

Veröffentlichungsdatum: Apr 2, 2026
Beschreibung
Innerhalb von Salesforce kann der Benutzerzugriff erweitert werden, indem Benutzern Berechtigungssätze zugewiesen werden, die zusätzliche Features oder Funktionen bieten.

Es gibt spezielle Arten von Berechtigungssätzen, die zu einem Profil gehören (IsOwnedByProfile). Diese Berechtigungssätze können nicht entfernt werden, ohne das Profil zu ändern.

In diesem Knowledge-Artikel führen wir Sie durch die Schritte zur Verwendung eines Flows zum Löschen von Berechtigungssatzzuweisungen, wobei sichergestellt wird, dass die Berechtigungssätze, die zu einem Profil gehören, intakt bleiben.

Dieses Beispiel verwendet den Flow-Operator Not In, der in der Version Winter '23 eingeführt wurde.
Lösung
Objektmodell 
Bevor wir uns mit dem Praxisteil dieses Artikels befassen, sollten wir uns das Objektmodell ansehen, um zu verstehen, wie Berechtigungssatzzuweisungen funktionieren.

Permission Set Diagram.png

Innerhalb von Salesforce stellt eine Berechtigungssatz-Lizenz eine Lizenz dar, die einem Benutzer ohne Änderung des Profils zugewiesen werden kann. Die Zuweisung einer Berechtigungssatz-Lizenz stellt die Beziehung zwischen einem Benutzer und einer Berechtigungssatz-Lizenz dar. Ein Berechtigungssatz stellt eine Gruppe von Berechtigungen dar, die einem Benutzer über eine Berechtigungssatzzuweisung zugewiesen werden.

Aufgrund des Beziehungsmodells zwischen diesen Objekten, insbesondere Berechtigungssätzen, Berechtigungssatzzuweisungen und Benutzern in unserem Flow, müssen wir Berechtigungssätze löschen, die nicht zu einem Profil mit einer Berechtigungssatzzuweisung für den aktuellen Benutzer gehören.

Der richtige Flow
 
In diesem Fall werden alle Berechtigungssatzzuweisungen gelöscht, wenn ein Benutzer inaktiv wird, mit Ausnahme der Berechtigungssätze, bei denen IsOwnedByProfile = TRUE ist.

Bei dieser Lösung werden die API-Namen, die Flow-Typen und andere Einstellungen vordefiniert. Sie können dies für Ihren Anwendungsfall anpassen und auf die Zuweisungen der Berechtigungssatz-Lizenzen ausweiten. Das Attribut "IsOwnedByProfile" existiert nicht in Zuweisungen von Berechtigungssatz-Lizenzen.
 
Schritt 1: Navigieren Sie zum Salesforce-Setup (über das Zahnradsymbol > Setup).
 
Setup.png
 
Schritt 2: Verwenden Sie die Schnellsuche, um Flows zu suchen.
 
Quick Find.png
Schritt 3: Wählen Sie Flows und anschließend Neuer Flow aus.
 
New Flow.png
 
Schritt 4: Legen Sie als Flow-Typ Durch Datensatz ausgelöst fest und wählen Sie Erstellen aus.
 
Record Trigger.png

Schritt 5: Wählen Sie Benutzer als Objekt und Ein Datensatz aktualisiert wird als Bedingung.
 
Select object.png
 
Schritt 6: Legen Sie fest, dass der Flow ausgeführt wird, wenn Alle Bedingungen erfüllt sind (AND) und wenn IsActive gleich {!$GlobalConstant.False} ist. 
           Set Entry.png
 
Schritt 7: Legen Sie fest, dass der Flow wie folgt ausgeführt wird: Nur wenn ein Datensatz aktualisiert wird, damit er die Bedingungsanforderungen erfüllt und setzen Sie "Flow optimieren für:" auf Aktionen und zugehörige Datensätze. Wählen Sie Fertig aus.
  
When to run the flow.png
Schritt 8: Wählen Sie das +-Symbol aus, um die Komponente Datensatz abrufen hinzuzufügen und Berechtigungssatzzuweisungen für den aktuellen Benutzer abzurufen: 
a. Bezeichnung: Berechtigungssatzzuweisungen abrufen
b. API-Name: Get_Permission_Set_Assignments
c. Beschreibung: Ruft Berechtigungssatzzuweisungen für den aktuellen Benutzer ab
d. Objektname: Berechtigungssatzzuweisung
e. Bedingungsanforderungen: Alle Bedingungen sind erfüllt (AND)
f. AssigneeId equals {!$Record.Id}
g. Sortierreihenfolge: Nicht sortiert
h. Wie viele Datensätze sollen gespeichert werden? Alle Datensätze
i. Speichern von Datensatzdaten: Alle Felder automatisch speichern
 
Edit Get record.png
 
Schritt 9: Verwenden Sie das +-Symbol, um ein Entscheidungselement hinzuzufügen, sodass der nächste Aktionssatz nur ausgeführt wird, wenn Berechtigungssatzzuweisungen gefunden werden: 
a. Bezeichnung: Hat der Benutzer Berechtigungssätze?
b. API-Name: Does_User_have_Permission_Sets
c. Beschreibung: Legt fest, ob Maßnahmen ergriffen werden sollen, je nachdem, ob dem Benutzer Berechtigungssätze zugewiesen sind
d. Ergebnisdetails
i. Bezeichnung: Wahr
ii. API-Name: Wahr
iii. Bedingungsanforderungen zum Ausführen des Ergebnisses: Alle Bedingungen sind erfüllt (AND)
iv. Ressource: {!Get_Permission_Set_Assignments} Is Null {!$GlobalConstant.False}
v. Ergebnis ausführen, wenn: Die Bedingungsanforderungen erfüllt sind
e. Ergebnisdetails
i. Bezeichnung: Falsch
 
Edit Decision.png
 
Edit Decision 2.png
 
Schritt 10: Fügen Sie unter dem TRUE-Pfad (Ergebnis) mit dem +-Symbol die Komponente "Datensätze abrufen" hinzu, damit die Berechtigungssätze abgerufen werden können. Dabei gilt IsOwnedByProfile = TRUE
a. Bezeichnung: Zu Profil gehörende Berechtigungssätze abrufen
b. API-Name: Get_Permission_Sets_Owned_by_Profile
c. Beschreibung: Ruft alle Berechtigungssätze ab, wobei IsOwnedByProfile = TRUE
d. Objektname: Berechtigungssatz
e. Bedingungsanforderungen: Alle Bedingungen sind erfüllt (AND)
f. IsOwnedByProfile Equals {!$GlobalConstant.True}
g. Sortierreihenfolge: Nicht sortiert
h. Wie viele Datensätze sollen gespeichert werden? Alle Datensätze
i. Speichern von Datensatzdaten: Alle Felder automatisch speichern
 
image.png
 
Schritt 11: Verwenden Sie jetzt das +-Symbol, um eine Schleife um die zum Profil gehörenden Berechtigungssätze zu erstellen.
a. Bezeichnung: Schleife um zu Profil gehörende Berechtigungssätze
b.  API-Name: Loop_around_Permission_Sets_Owned_by_Profile
c. Beschreibung: Schleifen um zu Profil gehörende Berechtigungssätze
d. Sammlungsvariable: {!Get_Permission_Sets_Owned_by_Profile}
e. Richtung: Erstes bis letztes Element
 
image.png
 
Schritt 12: Erstellen Sie eine Ressource zur Verwendung innerhalb der Schleife, um die Berechtigungssatz-IDs zu speichern, wobei Berechtigungssatz gehört zum Profil gilt. Wählen Sie das Toolbox-Symbol und anschließend Neue Ressource aus. 
 
 
Schritt 13: Konfigurieren Sie die Flow-Ressource wie folgt:
a. Ressourcentyp: Variable
b. API-Name: PermissionSetsToKeep
c. Beschreibung: Speichert die Berechtigungssatz-IDs von Berechtigungssätzen, die vom Löschvorgang ausgenommen werden sollen
d. Datentyp: Text
e.  Mehrere Werte (Sammlung) zulassen: Aktiviert
f. Zur Eingabe verfügbar: Deaktiviert
g. Zur Ausgabe verfügbar: Deaktiviert
 
Edit variable.png
 
Schritt 14: Verwenden Sie das +-Symbol innerhalb der Schleife, um ein Zuweisungselement hinzuzufügen:
a. Bezeichnung: Aktuelles Element zur Textsammlung hinzufügen
b. API-Name: Add_Current_Item_to_Text_Collection
c. Beschreibung: Fügt das aktuelle Element zu einer Textsammlungsvariablen hinzu
d. {!PermissionSetsToRemove} Add {!Loop_around_Permission_Sets_Owned_by_Profile.Id}
 
Edit Assignment.png
 
Schritt 15: Verwenden Sie das +-Symbol außerhalb der Schleife, um die Komponente Datensätze löschen hinzuzufügen:
a. Bezeichnung: Berechtigungssatzzuweisungen löschen
b. API-Name: Delete_Permission_Set_Assignments
c. Beschreibung: Berechtigungssatzzuweisungen löschen, die nicht zum Profil gehören
d. Wie sollen die zu löschenden Datensätze ermittelt werden? Bedingungen angeben
e. Objekt: Berechtigungssatzzuweisung
f. Bedingungsanforderungen für das Löschen von Datensätzen: Alle Bedingungen sind erfüllt (AND)
i. AssigneeId Equals {!$Record.Id}
ii. PermissionSetId Not In {!PermissionSetsToKeep}

image.png
 
Schritt 16: Wählen Sie Speichern aus.
a. Flow-Bezeichnung: Berechtigungssatzzuweisungen löschen
b. Flow-API-Name: Delete_Permission_Set_Assignments
c. Beschreibung: Berechtigungssatzzuweisungen löschen, wenn ein Benutzer inaktiv gemacht wird
 
Save the Flow.png
 
Schritt 17: Wählen Sie Aktivieren aus.
 
Activate Flow.png
 
 
Der endgültige Flow sollte am Ende wie folgt aussehen.




___________________________________


Verfasst von: Tom Bassett | Salesforce Answers Leader
Tom Bassett ist ein Solution Architect bei Trigg Digital und verfügt über mehr als fünf Jahre Erfahrung mit der Salesforce-Plattform. Er möchte, dass die Kunden das Beste aus dem CRM herausholen, und fördert die Ohana-Kultur, indem er die Trailblazer-Community mit Ideen für neue Funktionen unterstützt und Antworten auf gestellte Fragen liefert. Er ist Co-Leiter der London Architect Community-Gruppe und trägt auch als Experte zu Salesforce Ben bei.

Übermittlungen spiegeln nur die Meinung des Benutzers wider, der die Übermittlung zur Verfügung gestellt hat, und nicht die Meinung von Salesforce, unabhängig davon, ob der Benutzer mit Salesforce verbunden ist, und kann Produkte, Services, Informationen, Daten, Inhalte und andere Materialien enthalten, die von oder im Namen von Dritten zur Verfügung gestellt werden ("Materialien von Dritten"). Salesforce kontrolliert und befürwortet keine Materialien von Dritten und ist auch nicht für diese verantwortlich, einschließlich ihrer Genauigkeit, Gültigkeit, Aktualität, Vollständigkeit, Zuverlässigkeit, Integrität, Qualität, Rechtmäßigkeit, Nützlichkeit oder Sicherheit sowie der anwendbaren geistigen Eigentumsrechte. Jegliche Übermittlung, die über eine Nachrichtenseite oder ein Forum als Antwort auf gepostete Fragen zur Verfügung gestellt wird oder die anderweitig den Anschein erweckt, Fragen zu beantworten, einschließlich Fragen zu Salesforce oder Programmen, wird nur zu Ihrer allgemeinen Kenntnis zur Verfügung gestellt und sollte niemals als alleinige Antwort auf Ihre spezifischen Fragen verwendet werden (selbst wenn eine Antwort als "beste Antwort" oder Ähnliches gekennzeichnet ist). Sie sollten sich immer an den Salesforce-Support wenden, um Antworten auf Ihre spezifischen Fragen zu erhalten. Salesforce hat keine Kontrolle über Übermittlungen und ist nicht verantwortlich für die Nutzung oder den Missbrauch (einschließlich der Verbreitung) von Übermittlungen durch Dritte. 

Wenn Sie Fragen haben, können Sie hier auf das Wissen unserer gesamten Trailblazer-Community zurückgreifen: 
https://trailhead.salesforce.com/trailblazer-community/feed
Nummer des Knowledge-Artikels

000394118

 
Laden
Salesforce Help | Article