Mitgliedschaftsabfrage formulieren und testen

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

Hinweise

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 User-Ressourcenfelder, die verwendet werden können, 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 einer bestimmten Organisationseinheit sind:

  • Alle direkten Nutzer in 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 Operator NOT ! in Mitgliedschaftsabfragen verwenden, um Nutzer mit bestimmten Attributen auszuschließen. Hier sind einige Beispiele:

  • Alle Nutzer, die nicht zu einer bestimmten Organisationseinheit gehö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 NICHT-Operators ! und des Makros exists() werden nicht unterstützt:

  • Jede NOT !-Abfrage, bei der das exists()-Makro und der Operator AND && darin verwendet wird:

    !user.organization.exists(org, (org.title == "Cloud" && org.department == "Sales"))
    
  • Jede Abfrage, die das exists()-Makro enthält, in dem der NOT-Operator ! enthalten ist:

    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 dynamischen Gruppenabfragen verwendet werden, solange das benutzerdefinierte Schema bereits in user.custom_schemas vorhanden ist. Sie werden jedoch in den Drop-down-Menüs des einfachen Query Builders nicht unterstützt. Wenn Sie eine Abfrage für ein benutzerdefiniertes Nutzerattribut testen möchten, geben Sie es im CEL-Abfrageformat direkt in das Textfeld Enter cel query (Cel-Abfrage eingeben) ein. Hier ein Beispiel für ein benutzerdefiniertes Schema:

{
  "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.