Formular e testar uma consulta de membros

Este documento explica como formular e testar as suas consultas de membros para garantir que são devolvidos os utilizadores corretos.

Antes de começar

Realize as seguintes tarefas antes de continuar com as informações nesta página:

Formular e testar a consulta

As consultas de associação têm o formato target_field condition e são formatadas como expressões do Idioma de expressão comum (IEC). Consulte os atributos do utilizador válidos para grupos dinâmicos para ver a lista dos campos de recursos User que podem ser usados.

Consultas de exemplo

O exemplo seguinte mostra como verificar um valor específico num campo user.addresses usando a função CEL exists():

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

A macro exists() é usada para criar consultas de membros para campos do tipo lista.

Segue-se um exemplo de verificação de vários valores, como a área (building) area e building_id, numa única entrada de lista:

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

O exemplo seguinte mostra como encontrar utilizadores que fazem parte de uma determinada unidade organizacional:

  • Todos os utilizadores diretos numa determinada unidade organizacional: user.org_unit_id==orgUnitId('03ph8a2z1enx4lx')
  • Todos os utilizadores diretos e indiretos numa determinada unidade organizacional: user.org_units.exists(org_unit, org_unit.org_unit_id==orgUnitId('03ph8a2z1khexns'))
user.name.value.equalsIgnoreCase('jOhn DoE')`

Negação em consultas

Pode usar um operador NÃO ! em consultas de associação para excluir utilizadores com determinados atributos. Seguem-se alguns exemplos:

  • Todos os utilizadores que não pertencem a uma determinada unidade organizacional:

    !(user.org_unit_id==orgUnitId('03ph8a2z1enx4lx'))
    
  • Todos os utilizadores que não pertencem à organização Marketing:

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

Algumas combinações do operador NOT ! e da macro exists() não são suportadas:

  • Qualquer consulta NOT ! que use a macro exists() e o operador AND && na mesma:

    !user.organization.exists(org, (org.title == "Cloud" && org.department == "Sales"))
    
  • Qualquer consulta que use a macro exists() com o operador NOT ! no interior:

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

Testar consultas de membros

Para testar as suas consultas de associação, pode usar o criador de consultas simples. Permite-lhe usar menus pendentes e campos de texto para introduzir e testar uma consulta. Depois de se certificar de que a consulta de associação devolve os resultados corretos, pode criar as consultas CEL correspondentes com a API Groups.

Atributos de utilizador personalizados

Os atributos do utilizador personalizados podem ser usados em consultas de grupos dinâmicos, desde que o esquema personalizado já exista no user.custom_schemas, mas não são suportados nos menus pendentes do criador de consultas simples. Para testar uma consulta para um atributo de utilizador personalizado, introduza-o no formato de consulta IEC diretamente na caixa de texto Introduza a consulta IEC. Um esquema personalizado de amostra tem o seguinte aspeto:

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

Campo com um único valor

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

Campo com vários valores

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

O que se segue?

Depois de testar a consulta de associação, pode usá-la quando criar um grupo. Para mais informações, consulte o artigo Criar um grupo dinâmico.