Merumuskan dan menguji kueri keanggotaan

Dokumen ini menjelaskan cara merumuskan dan menguji kueri keanggotaan untuk memastikan pengguna yang benar ditampilkan.

Sebelum memulai

Lakukan tugas berikut sebelum melanjutkan informasi di halaman ini:

Merumuskan dan menguji kueri

Kueri keanggotaan berbentuk target_field condition, dan diformat sebagai ekspresi Common Expression Language (CEL). Lihat Atribut pengguna yang valid untuk grup dinamis untuk mengetahui daftar kolom resource User yang dapat digunakan.

Sampel kueri

Contoh berikut menunjukkan cara memeriksa nilai tertentu di kolom user.addresses menggunakan fungsi CEL exists():

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

Makro exists() digunakan untuk membuat kueri keanggotaan untuk kolom jenis daftar.

Berikut adalah contoh pemeriksaan beberapa nilai, (building) area dan building_id, dalam satu entri daftar:

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

Contoh berikut menunjukkan cara menemukan pengguna yang merupakan bagian dari unit organisasi tertentu:

  • Semua pengguna langsung di unit organisasi tertentu: user.org_unit_id==orgUnitId('03ph8a2z1enx4lx')
  • Semua pengguna langsung dan tidak langsung dalam unit organisasi tertentu: user.org_units.exists(org_unit, org_unit.org_unit_id==orgUnitId('03ph8a2z1khexns'))
user.name.value.equalsIgnoreCase('jOhn DoE')`

Negasi dalam kueri

Anda dapat menggunakan operator NOT ! dalam kueri keanggotaan untuk mengecualikan pengguna dengan atribut tertentu. Berikut beberapa contohnya:

  • Semua pengguna yang tidak termasuk dalam unit organisasi tertentu:

    !(user.org_unit_id==orgUnitId('03ph8a2z1enx4lx'))
    
  • Semua pengguna yang bukan anggota organisasi Marketing:

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

Beberapa kombinasi operator NOT ! dan makro exists() tidak didukung:

  • Setiap kueri NOT ! yang menggunakan makro exists() dan menggunakan operator AND && di dalamnya:

    !user.organization.exists(org, (org.title == "Cloud" && org.department == "Sales"))
    
  • Setiap kueri yang menggunakan makro exists() dengan operator NOT ! di dalamnya:

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

Menguji kueri keanggotaan

Untuk menguji kueri keanggotaan, Anda dapat menggunakan builder kueri sederhana. Hal ini memungkinkan Anda menggunakan menu drop-down dan kolom teks untuk memasukkan dan menguji kueri. Setelah memastikan kueri keanggotaan menampilkan hasil yang benar, Anda dapat membuat kueri CEL yang sesuai dengan Groups API.

Atribut pengguna khusus

Atribut pengguna kustom dapat digunakan dalam kueri grup dinamis selama skema kustom sudah ada di user.custom_schemas, tetapi tidak didukung di drop-down pembuat kueri sederhana. Untuk menguji kueri atribut pengguna kustom, masukkan dalam format kueri CEL langsung ke kotak teks Enter cel query. Contoh skema kustom terlihat seperti ini:

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

Kolom bernilai tunggal

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

Kolom multinilai

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

Langkah selanjutnya

Setelah menguji kueri keanggotaan, Anda dapat menggunakannya saat membuat grup. Untuk mengetahui informasi selengkapnya, lihat Membuat grup dinamis.