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. Weitere Informationen finden Sie unter Gültige Nutzerattribute für dynamische Gruppen finden Sie die Liste der User-Ressourcenfelder, die verwendet werden können.

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 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

Mit dem Operator „NICHT !“ in Mitgliedschaftsanfragen können Sie Nutzer mit bestimmten Attributen ausschließen. Hier sind einige Beispiele:

  • Alle Nutzer, die keiner bestimmten Organisationseinheit angehören:

    !(user.org_unit_id==orgUnitId('03ph8a2z1enx4lx'))
    
  • Für alle Nutzer, die nicht zur Organisation Marketing gehören, gilt Folgendes:

    !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"))
    
  • Bei jeder Abfrage, in der das exists()-Makro mit dem NOT-!-Operator verwendet wird:

    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 es in die CEL-Abfrage ein Format direkt in das Textfeld Cel-Abfrage eingeben eingeben. 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.