Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Aplica-se a: Aplicativos de tela
Solicita o valor desmascarado de uma coluna segura para um único registo do Microsoft Dataverse.
Description
A Dataverse.Unmask função lê uma coluna de forma assíncrona e devolve um único valor com o tipo Power Fx da coluna. Não devolve um registo ou tabela, não atualiza o registo de origem, não altera a regra de mascaramento nem substitui valores mascarados noutra parte da sua aplicação.
O Dataverse faz cumprir as permissões do utilizador. A função não concede acesso nem contorna a segurança ao nível das colunas. Para ler um valor desmascarado, o utilizador precisa de acesso à tabela e ao registo, permissão de leitura na coluna e permissão de Leitura desmascarada apropriada num perfil de segurança de coluna.
Adicione a tabela Dataverse como fonte de dados na sua aplicação canvas e ative a segurança ao nível da coluna nessa coluna. Para configurar o mascaramento, aplique uma regra de mascaramento suportada num ambiente gerido. Uma coluna segura não tem necessariamente uma regra de mascaramento. Consulte Segurança ao nível das colunas e Criar e gerir regras de mascaramento para configuração, opções de permissões e tipos de regras de mascaramento suportadas.
Importante
Peça ao seu administrador para escolher a permissão Read unmasked apropriada para o cenário. Não conceda todos os registos apenas para permitir um exemplo de registo único. Restrições de acesso ao teste com uma conta não administradora porque a segurança ao nível das colunas não esconde dados dos administradores do sistema.
Syntax
Dataverse.Unmask( Record, Column )
- Registo - Obrigatório. Um registo que mantém a sua identidade de registo Dataverse e está associado a exatamente uma fonte de dados Dataverse.
- Coluna - Obrigatória. O identificador de uma coluna escalar segura e suportada nesse registo. Forneça um identificador de coluna, não uma expressão de texto contendo o nome da coluna.
Pode usar um nome de apresentação válido ou um nome lógico para a Coluna. Use aspas simples em torno de um nome de exibição que contenha espaços, como 'Sensitive reference'. Aspas duplas criam um texto literal e não são equivalentes. O Power Apps resolve o identificador para o nome lógico da coluna.
Requisitos de registo e colunas
Um registo de galeria selecionado, um registo devolvido por LookUp, ou um registo armazenado numa variável ou coleção pode ser usado se mantiver a sua identidade Dataverse e associação com exatamente uma fonte Dataverse. Construir um registo anónimo com os mesmos valores de campo não estabelece essa identidade.
Não atribua registos de diferentes tabelas Dataverse à mesma variável de registo usada por Dataverse.Unmask. Tal variável está associada a múltiplas fontes e é rejeitada, mesmo que as tabelas tenham colunas seguras com nomes correspondentes. Use variáveis ou chamadas de fonte única separadas.
A coluna alvo deve estar fixa e ter um tipo escalar suportado. Colunas com valor de pesquisa, registo, tabela, ficheiro, imagem e colunas não tipadas não são suportados. Ler um registo através de uma consulta é diferente de desmascarar uma coluna com valor de consulta. Consulte a documentação da regra de mascaramento para cenários de mascaramento suportados; a aceitação de tipos de fórmula não estabelece que uma regra de mascaramento possa ser configurada para uma coluna.
Valor de retorno e erros
O resultado tem o mesmo tipo de Power Fx que a coluna alvo. Por exemplo, uma coluna de texto devolve texto, não um registo que contém texto.
Use o IfError para tratar de leituras falhadas. O Dataverse determina a resposta quando o acesso é restringido; não assuma que cada negação de permissão produz um erro HTTP.
| Situation | Behavior |
|---|---|
| O registo não tem fonte Dataverse associada nem possui múltiplas fontes Dataverse. | O Power Apps Studio rejeita o argumento do registo. |
| A coluna é desconhecida, não protegida ou tem um tipo não suportado. | O Power Apps Studio rejeita o argumento da coluna. |
| Um registo não em branco não tem identidade válida em tempo de execução, ou a sua fonte Dataverse não pode ser resolvida. | A função devolve um erro de registo inválido. |
| O pedido do Dataverse falha. | A função devolve um erro de Power Fx que podes tratar com o IfError. |
| Um pedido bem-sucedido não devolve linha, omite a coluna solicitada ou devolve um valor nulo. | O resultado é vazio. |
Um resultado em branco por si só não identifica um problema de permissões. Verifique o registo selecionado, o seu valor e o acesso do utilizador antes de tratar um resultado em branco como uma falha.
Examples
Estes exemplos utilizam uma tabela ilustrativa Customers do Dataverse com uma coluna de texto segura chamada 'Sensitive reference'. Adicione a tabela como fonte de dados, configure uma regra de mascaramento e use registos sintéticos com um utilizador de teste que tenha as permissões adequadas. Substitua os nomes da tabela e das colunas pelos seus.
Leia um registo selecionado
Defina a propriedade Itens de uma galeria para Customers. Com um registo guardado selecionado, esta fórmula pede a sua referência desmascarada:
Dataverse.Unmask( Gallery1.Selected, 'Sensitive reference' )
Se o valor armazenado for "REF-12345" e o utilizador tiver permissão para o ler sem máscara, o resultado esperado é o texto "REF-12345". A fórmula não altera o valor mascarado lido ao Gallery1.Selected.'Sensitive reference'longo de .
Tratar de um erro para um resultado de texto
Use a seguinte fórmula na propriedade Text de uma etiqueta de texto onde pretende mostrar o valor desmascarado:
IfError(
Dataverse.Unmask( Gallery1.Selected, 'Sensitive reference' ),
"Unable to show this value."
)
O valor de substituição é texto porque 'Sensitive reference' é uma coluna de texto. Para um tipo de coluna suportado diferente, use um valor de substituição compatível ou converta o resultado antes de devolver uma mensagem de texto.
O IfError trata de erros, não de resultados em branco bem-sucedidos.
Para uma interação completa de revelar e esconder, veja Revelar um valor de coluna do Dataverse mascarado.
Processamento de dados
Avaliações repetidas podem reutilizar resultados em cache em vez de fazer novos pedidos de rede. Não dependa de outra avaliação para verificar permissões recentemente alteradas. Esconder um controlo não é um limite de autorização e não elimina valores em cache.
Não persista valores não mascarados com o SaveData, escreva-os em logs ou copie-os para uma fonte de dados menos protegida. Evite expor dados não mascarados em capturas de ecrã ou anexos de diagnóstico.