Formula y prueba una consulta de membresía
En este documento, se explica cómo formular y probar tus consultas de membresía para garantizar que se muestren los usuarios correctos.
Antes de comenzar
Realiza las siguientes tareas antes de continuar con la información de esta página:
Formula y prueba tu consulta
Las consultas de membresía toman la forma target_field condition
y se les da formato de expresiones de Common Expression Language (CEL). Consulta Atributos de usuario válidos para grupos dinámicos a fin de obtener la lista de campos de recursos User
que se pueden usar.
Consultas de muestra
En el siguiente ejemplo, se muestra cómo buscar un valor específico en un campo user.addresses
mediante la función de CEL exists()
:
user.addresses.exists(ad, ad.locality=='Sunnyvale')
La macro exists()
se usa con el fin de crear consultas de membresía para los campos de la lista de tipos.
A continuación, se muestra un ejemplo de una verificación de varios valores, area
(de compilación) y building_id
, en una sola entrada de lista:
user.locations.exists(loc, loc.area=='Sunnyvale' && loc.building_id=='Building 1')
En el siguiente ejemplo, se muestra cómo encontrar usuarios que forman parte de una unidad organizativa determinada:
- Todos los usuarios directos de una unidad organizativa determinada:
user.org_unit_id==orgUnitId('03ph8a2z1enx4lx')
- Todos los usuarios indirectos y directos de una unidad organizativa determinada:
user.org_units.exists(org_unit, org_unit.org_unit_id==orgUnitId('03ph8a2z1khexns'))
user.name.value.equalsIgnoreCase('jOhn DoE')`
Negación en consultas
Puedes usar un operador NOT !
en las búsquedas de membresías para excluir a los usuarios con
determinados atributos. Estos son algunos ejemplos:
Todos los usuarios que no pertenecen a una unidad organizativa determinada:
!(user.org_unit_id==orgUnitId('03ph8a2z1enx4lx'))
Todos los usuarios que no pertenecen a la organización
Marketing
:!user.organization.exists(org, org.title = "Marketing")
No se admiten algunas combinaciones del operador NOT !
y la macro exists()
:
Cualquier consulta NOT
!
que use la macroexists()
y que use el operador&&
AND dentro de ella:!user.organization.exists(org, (org.title == "Cloud" && org.department == "Sales"))
Cualquier consulta que use la macro
exists()
con el operador NOT!
dentro:user.organization.exists(org, (org.title == "Cloud" || !(org.department == "Sales")))
Prueba las consultas de membresía
Para probar tus consultas de membresía, puedes usar el compilador de consultas simple. Te permite usar menús desplegables y campos de texto para ingresar y probar una consulta. Después de asegurarte de que la búsqueda de membresías muestre los resultados correctos, puedes crear las consultas de CEL correspondientes con la API de grupos.
Atributos de usuario personalizados
Los atributos de usuario personalizados se pueden usar en consultas dinámicas de grupo, siempre y cuando el esquema personalizado ya exista en user.custom_schemas
, pero no son compatibles con el descarte simple del compilador de consultas. Si quieres probar una consulta para un atributo de usuario personalizado, ingrésala en formato de consulta CEL en el cuadro de texto Ingresar consulta de cel. Un esquema personalizado de muestra se ve así:
{
"schemaName": "employmentData",
"fields": [
{
"fieldName": "EmployeeNumber",
"fieldType": "STRING",
"multiValued": "false"
},
{
"fieldName": "JobFamily",
"fieldType": "STRING",
"multiValued": "true"
}
]
}
Campo con un solo valor
user.custom_schemas.employmentData.EmployeeNumber == 'value'
Campo con valores múltiples
user.custom_schemas.employmentData.JobFamily.exists(fld, fld == 'value')
¿Qué sigue?
Después de probar tu consulta de membresía, podrás usarla cuando crees un grupo. Para obtener más información, consulta Crea un grupo dinámico.