Formular y probar consultas de pertenencia a grupos
En este documento se explica cómo formular y probar consultas de pertenencia para que en los resultados aparezcan los usuarios correctos.
Antes de empezar
Realiza las siguientes tareas antes de continuar con la información de esta página:
Consulta la descripción general de la API Groups.
Consulta la información general sobre los grupos dinámicos.
Formular y probar una consulta
Las consultas de pertenencia a grupos tienen la forma target_field condition
y se
formatean como expresiones del lenguaje de expresión común (CEL). Consulta la lista de campos de recursos User
que se pueden usar en Atributos de usuario válidos para grupos dinámicos.
Consultas de ejemplo
En el siguiente ejemplo se muestra cómo comprobar si hay un valor específico en un campo user.addresses
mediante la función exists()
de CEL:
user.addresses.exists(ad, ad.locality=='Sunnyvale')
La macro exists()
se usa para crear consultas de pertenencia para campos de tipo lista.
A continuación se muestra un ejemplo en el que se comprueban varios valores, area
y building_id
, en una única entrada de la 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 directos e indirectos 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
Puede usar el operador NOT !
en las consultas de pertenencia para excluir a los usuarios con determinados atributos. A continuación, se incluyen algunos ejemplos:
Todos los usuarios que no pertenezcan a una unidad organizativa determinada:
!(user.org_unit_id==orgUnitId('03ph8a2z1enx4lx'))
Todos los usuarios que no pertenezcan a la organización de
Marketing
:!user.organization.exists(org, org.title = "Marketing")
No se admiten algunas combinaciones del operador NOT !
y la macro exists()
:
Cualquier consulta NOT
!
que utilice la macroexists()
y el operador AND&&
en ella:!user.organization.exists(org, (org.title == "Cloud" && org.department == "Sales"))
Cualquier consulta que use la macro
exists()
con el operador NOT!
en su interior:user.organization.exists(org, (org.title == "Cloud" || !(org.department == "Sales")))
Probar consultas de pertenencia
Para probar tus consultas de pertenencia, puedes usar el creador de consultas sencillo. Te permite usar menús desplegables y campos de texto para introducir y probar una consulta. Una vez que te hayas asegurado de que la consulta de pertenencia devuelve los resultados correctos, puedes crear las consultas de CEL correspondientes con la API Groups.
Atributos de usuario personalizados
Los atributos de usuario personalizados se pueden usar en consultas de grupos dinámicos siempre que el esquema personalizado ya exista en user.custom_schemas
, pero no se admiten en los menús desplegables del creador de consultas simples. Para probar una consulta de un atributo de usuario personalizado, introdúcela en formato de consulta de CEL directamente en el cuadro de texto Introduce consulta de CEL. Un ejemplo de esquema personalizado
sería el siguiente:
{
"schemaName": "employmentData",
"fields": [
{
"fieldName": "EmployeeNumber",
"fieldType": "STRING",
"multiValued": "false"
},
{
"fieldName": "JobFamily",
"fieldType": "STRING",
"multiValued": "true"
}
]
}
Campo de un solo valor
user.custom_schemas.employmentData.EmployeeNumber == 'value'
Campo con varios valores
user.custom_schemas.employmentData.JobFamily.exists(fld, fld == 'value')
Siguientes pasos
Después de probar la consulta de pertenencia, puedes usarla al crear un grupo. Para obtener más información, consulta el artículo Crear un grupo dinámico.