Como formular e testar uma consulta de assinatura
Este documento explica como formular e testar as suas consultas de associação para garantir que os usuários corretos sejam retornados.
Antes de começar
Execute as seguintes tarefas antes de continuar com as informações desta página:
Como formular e testar sua consulta
As consultas de assinatura têm o formato target_field condition
e são
formatadas como
expressões de Common Expression Language (CEL,
na sigla em inglês). Veja
a lista de campos do recurso User
que podem ser usados em
Atributos de usuário válidos para grupos dinâmicos.
Amostras de consultas
O exemplo a seguir mostra como verificar um valor específico em um
campo user.addresses
usando a função CEL exists()
:
user.addresses.exists(ad, ad.locality=='Sunnyvale')
A macro exists()
é usada para criar consultas de assinatura para campos do tipo
de lista.
Veja um exemplo de verificação de vários valores, (criação) de area
e
building_id
, em uma única entrada de lista:
user.locations.exists(loc, loc.area=='Sunnyvale' && loc.building_id=='Building 1')
O exemplo a seguir mostra como encontrar usuários que fazem parte de uma determinada unidade organizacional:
- Todos os usuários diretos em uma determinada unidade organizacional:
user.org_unit_id==orgUnitId('03ph8a2z1enx4lx')
- Todos os usuários diretos e indiretos em uma 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
É possível usar um operador NOT !
em consultas de associação para excluir usuários com determinados atributos. Veja alguns exemplos:
Todos os usuários que não pertencem a uma determinada unidade organizacional:
!(user.org_unit_id==orgUnitId('03ph8a2z1enx4lx'))
Todos os usuários 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 compatíveis:
Qualquer consulta
!
NOT que use a macroexists()
e o operador AND&&
:!user.organization.exists(org, (org.title == "Cloud" && org.department == "Sales"))
Qualquer consulta que use a macro
exists()
com o operador NOT!
dentro dela:user.organization.exists(org, (org.title == "Cloud" || !(org.department == "Sales")))
Como testar consultas de assinatura
Para testar suas consultas de assinatura, use o criador de consultas simples. Ele permite usar menus suspensos e campos de texto para inserir e testar uma consulta. Depois de confirmar que a consulta de associação está retornando os resultados corretos, crie as consultas CEL correspondentes com a API Groups.
Atributos personalizados do usuário
Os atributos de usuário personalizados
podem ser usados em consultas de grupos dinâmicos, desde que o esquema personalizado já exista em
user.custom_schemas
, mas não são aceitos nos menus suspensos do criador de consultas
simples. Para testar uma consulta de um atributo de usuário personalizado, insira-a no formato de consulta
CEL diretamente na caixa de texto Inserir consulta CEL. Veja um exemplo de esquema
personalizado:
{
"schemaName": "employmentData",
"fields": [
{
"fieldName": "EmployeeNumber",
"fieldType": "STRING",
"multiValued": "false"
},
{
"fieldName": "JobFamily",
"fieldType": "STRING",
"multiValued": "true"
}
]
}
Campo de valor único
user.custom_schemas.employmentData.EmployeeNumber == 'value'
Campo de vários valores
user.custom_schemas.employmentData.JobFamily.exists(fld, fld == 'value')
A seguir
Depois de testar sua consulta de assinatura, será possível usá-la ao criar um grupo. Para mais informações, consulte Como criar um grupo dinâmico.