Formulazione e test di una query di appartenenza

Questo documento spiega come formulare e testare le tue query di appartenenza a assicura che vengano restituiti gli utenti corretti.

Prima di iniziare

Prima di continuare con le informazioni in questa pagina, esegui le operazioni seguenti:

Formulazione e test della query

Le query di appartenenza assumono la forma di target_field condition e sono formattato come Common Expression Language (CEL) le espressioni regolari. 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 cercare più valori, (edificio) area e building_id, in un'unica 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 un determinato 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 di 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 macro exists() 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 semplice Query Builder. Ti consente di utilizzare menu a discesa e campi di testo per inserire e testare una query. Dopo assicurati che la query di appartenenza restituisca i risultati corretti, puoi creare per 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 con valore singolo

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

Campo a più valori

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

Passaggi successivi

Dopo aver testato la query di appartenenza, puoi utilizzarla durante la creazione di un gruppo. Per maggiori informazioni, consulta la sezione Creare un gruppo dinamico.