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:

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 macro exists() 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.