Olá querido leitores!

Hoje vou apresentar para vocês uma dica bem bacana que eu acho que será bem útil para quem tem alguma implementação do Dataverse/Dynamics 365 onde tem vários Model-Driven Apps e precisa que algumas regras sejam somente aplicadas especificamente no aplicativo.

Em um projeto em que estou atuando, surgiu a necessidade de regras de negócio serem realizadas especificamente para um Model-Driven App e também que alguns dados não poderiam ser visíveis para quem estivesse acessando o APP, mesmo o usuário tendo acesso de leitura na tabela.

E ai veio desafio! Como identificar que um Retrieve,RetrieveMultiple,Create ou até mesmo outra mensagem foi disparada quando estivesse com o Model-Driven App aberto?

Após algumas pesquisas e debugs, consegui achar aonde a informação é disponibilizada para ser validada e utilizada no Plugin. No pipeline de execução do plugin no evento de Pre-Validate, dentro do “InputParameters” temos um parâmetro chamado “x-ms-app-name” nele vem o nome lógico da aplicação em que o plugin esta sendo executado.

A informação somente vem nesse momento, se você validar em um Pre-Operation ou Post-Operation essa informação não fica disponível. Para enviar essa informação para o outros plugins realizei o uso do shared variables compartilhando então este valor, e dessa forma eu consigo aplicar as regras para o app especifico.

Espero que essa dica possa ser útil em seus projetos! Forte Abraço!

Leave a Reply

Your email address will not be published. Required fields are marked *

Protected by WP Anti Spam