Formulazione e test di una query di appartenenza
Questo documento spiega come formulare e testare le query di appartenenza per assicurarti che vengano restituiti gli utenti corretti.
Prima di iniziare
Prima di procedere con le informazioni riportate in questa pagina, svolgi le seguenti attività:
Leggi la panoramica dell'API Groups.
Leggi la panoramica dei gruppi dinamici.
Formulazione e test della query
Le query di adesione hanno il formato target_field condition
e sono formattate come espressioni Common Expression Language (CEL). Consulta
Attributi utente validi per i gruppi dinamici
per l'elenco dei campi della risorsa User
che possono essere utilizzati.
Query di esempio
L'esempio seguente mostra come verificare la presenza di un valore specifico in un
user.addresses
campo utilizzando la funzione CEL exists()
:
user.addresses.exists(ad, ad.locality=='Sunnyvale')
La macro exists()
viene utilizzata per creare query di appartenenza per i campi di tipo
elenco.
Ecco un esempio di come controllare più valori, area
e
building_id
, in una singola voce di elenco:
user.locations.exists(loc, loc.area=='Sunnyvale' && loc.building_id=='Building 1')
L'esempio seguente mostra come trovare gli utenti che fanno parte di una determinata unità organizzativa:
- Tutti gli utenti diretti di una determinata unità organizzativa:
user.org_unit_id==orgUnitId('03ph8a2z1enx4lx')
- Tutti gli utenti diretti e indiretti di una determinata unità organizzativa:
user.org_units.exists(org_unit, org_unit.org_unit_id==orgUnitId('03ph8a2z1khexns'))
user.name.value.equalsIgnoreCase('jOhn DoE')`
Negazione nelle query
Puoi utilizzare un operatore NOT !
nelle query sull'appartenenza per escludere gli utenti con determinati attributi. Ecco alcuni esempi:
Tutti gli utenti che non appartengono a una determinata unità organizzativa:
!(user.org_unit_id==orgUnitId('03ph8a2z1enx4lx'))
Tutti gli utenti che non appartengono all'organizzazione
Marketing
:!user.organization.exists(org, org.title = "Marketing")
Alcune combinazioni dell'operatore NON !
e della macro exists()
non sono supportate:
Qualsiasi query NOT
!
che utilizza la macroexists()
e l'operatore AND&&
al suo interno:!user.organization.exists(org, (org.title == "Cloud" && org.department == "Sales"))
Qualsiasi query che utilizza la macro
exists()
con l'operatore NON!
al suo interno:user.organization.exists(org, (org.title == "Cloud" || !(org.department == "Sales")))
Testare le query di appartenenza
Per testare le query di appartenenza, puoi utilizzare il generatore di query semplici. Ti consente di utilizzare menu a discesa e campi di testo per inserire e testare una query. Dopo aver verificato che la query sull'appartenenza restituisce i risultati corretti, puoi creare le query CEL corrispondenti con l'API Groups.
Attributi utente personalizzati
Gli attributi utente personalizzati possono essere utilizzati nelle query sui gruppi dinamici a condizione che lo schema personalizzato esista già in user.custom_schemas
, ma non sono supportati nei menu a discesa del semplice generatore di query. Per testare una query per un attributo utente personalizzato, inseriscila nel formato della query CEL direttamente nella casella di testo Inserisci query CEL. Uno schema personalizzato di esempio
ha il seguente aspetto:
{
"schemaName": "employmentData",
"fields": [
{
"fieldName": "EmployeeNumber",
"fieldType": "STRING",
"multiValued": "false"
},
{
"fieldName": "JobFamily",
"fieldType": "STRING",
"multiValued": "true"
}
]
}
Campo a valore singolo
user.custom_schemas.employmentData.EmployeeNumber == 'value'
Campo con più valori
user.custom_schemas.employmentData.JobFamily.exists(fld, fld == 'value')
Passaggi successivi
Dopo aver testato la query di appartenenza, puoi utilizzarla per creare un gruppo. Per maggiori informazioni, consulta la sezione Creare un gruppo dinamico.