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 las consultas

Puedes usar un operador NOT ! en las búsquedas de membresías para excluir a los usuarios con ciertos 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 NO ! que use la macro exists() y 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 de ella:

    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.