Mitgliedschaftsabfrage formulieren und testen

In diesem Dokument wird erläutert, wie Sie Mitgliedschaftsabfragen formulieren und testen, damit die gewünschten Nutzer zurückgegeben werden.

Hinweis

Führen Sie folgende Aufgaben aus, bevor Sie die Informationen auf dieser Seite umsetzen:

Abfragen formulieren und testen

Mitgliedschaftsabfragen haben die Form target_field condition und sind als CEL (Common Expression Language)-Ausdrücke formatiert. Eine Liste der verwendbaren User-Ressourcenfelder finden Sie unter Gültige Nutzerattribute für dynamische Gruppen.

Beispielabfragen

Das folgende Beispiel zeigt, wie mit der CEL-Funktion exists() ein bestimmter Wert in einem user.addresses-Feld geprüft wird:

user.addresses.exists(ad, ad.locality=='Sunnyvale')

Das Makro exists() wird verwendet, um Mitgliedschaftsabfragen für Felder einer Typliste zu erstellen.

Im Folgenden sehen Sie ein Beispiel für die Prüfung mehrerer Werte, (Gebäude) area und building_id, in einem einzelnen Listeneintrag:

user.locations.exists(loc, loc.area=='Sunnyvale' && loc.building_id=='Building 1')

Das folgende Beispiel zeigt, wie Sie Nutzer finden, die Teil eines bestimmten Organisationseinheit:

  • Alle direkten Nutzer einer bestimmten Organisationseinheit: user.org_unit_id==orgUnitId('03ph8a2z1enx4lx')
  • Alle direkten und indirekten Nutzer in einer bestimmten Organisationseinheit: user.org_units.exists(org_unit, org_unit.org_unit_id==orgUnitId('03ph8a2z1khexns'))
user.name.value.equalsIgnoreCase('jOhn DoE')`

Negation in Abfragen

Sie können den NOT-Operator ! in Mitgliedschaftsabfragen verwenden, um Nutzer auszuschließen mit bestimmte Attribute. Hier sind einige Beispiele:

  • Für alle Nutzer, die nicht einer bestimmten Organisationseinheit angehören:

    !(user.org_unit_id==orgUnitId('03ph8a2z1enx4lx'))
    
  • Alle Nutzer, die nicht zur Organisation Marketing gehören:

    !user.organization.exists(org, org.title = "Marketing")
    

Einige Kombinationen des NOT-!-Operators und des exists()-Makros werden nicht unterstützt:

  • Jede NOT !-Abfrage mit dem exists()-Makro und mit dem AND &&-Operator darin:

    !user.organization.exists(org, (org.title == "Cloud" && org.department == "Sales"))
    
  • Alle Abfragen, die das Makro exists() mit dem Operator „NICHT !“ enthalten:

    user.organization.exists(org, (org.title == "Cloud" || !(org.department == "Sales")))
    

Mitgliedschaftsabfragen testen

Sie können Mitgliedschaftsabfragen mit dem einfachen Abfrage-Builder testen. Damit können Sie Drop-down-Menüs und Textfelder verwenden, um eine Abfrage einzugeben und zu testen. Sobald Sie sicher sind, dass die Mitgliedschaftsabfrage die gewünschten Ergebnisse zurückgibt, können Sie die entsprechenden CEL-Abfragen mit der Groups API erstellen.

Benutzerdefinierte Nutzerattribute

Benutzerdefinierte Nutzerattribute können in Abfragen für dynamische Gruppen verwendet werden, sofern das benutzerdefinierte Schema bereits in user.custom_schemas vorhanden ist. Sie werden jedoch nicht in den Drop-down-Menüs des einfachen Abfragebuilders unterstützt. Wenn Sie eine Abfrage für ein benutzerdefiniertes Nutzerattribut testen möchten, geben Sie sie im CEL-Abfrageformat direkt in das Textfeld CEL-Abfrage eingeben ein. Ein Beispiel für ein benutzerdefiniertes Schema sieht so aus:

{
  "schemaName": "employmentData",
  "fields": [
    {
      "fieldName": "EmployeeNumber",
      "fieldType": "STRING",
      "multiValued": "false"
    },
    {
      "fieldName": "JobFamily",
      "fieldType": "STRING",
      "multiValued": "true"
    }
  ]
}

Einzelwertiges Wert

user.custom_schemas.employmentData.EmployeeNumber == 'value'

Mehrwertiges Feld

user.custom_schemas.employmentData.JobFamily.exists(fld, fld == 'value')

Nächste Schritte

Nachdem Sie Ihre Mitgliedschaftsanfrage getestet haben, können Sie sie verwenden, wenn Sie eine Gruppe erstellen. Weitere Informationen finden Sie unter Dynamische Gruppe erstellen.