Dynamics 365 – Entidades Virtuais – Power Platform by Tiago Michelini Cardoso
Tiago Michelini Cardoso	Dynamics 365 CE	 01/15/2018 3 minutos
Talvez uma das mais comentadas das novas funcionalidades da versão 9.0 do Dynamics 365 seja as Entidades Virtuais (virtual entities). Irei escrever sobre elas neste post!
As entidades virtuais foram um ótimo achado da Microsoft para lidar em cenários onde precisamos consultar informações de outras fontes de dados (externas ao Dynamics).
Na figura abaixo, embora o Dynamics não possua nenhum dado de fontes externas, ele armazena as fontes de dados e metadados dos serviços que queremos consumir. Com isso, a interface do Dynamics se encarrega de acessar o serviço externo e disponibiliza como algo nativo! E o melhor… Sem nenhuma linha de código!
É claro que ainda temos algumas limitações, mas é o tradicional jeito da Microsoft de fazer as coisas. Introduzem uma funcionalidade, verificam se ela está atendendo o propósito e depois investem pesado na versão 2.0. Mesmo assim, as entidades virtuais já podem nos ajudar bastante!
Não irei entrar no passo a passo de como criar um entidade virtual, pois a Microsoft já fez isso aqui. Porém, vale ressaltar que precisamos de três componentes para utilizar as entidades virtuais:
Provedor de dados (data provider) – é o conector (middleware) que possibilita a comunicação entre o Dynamics e a fonte externa. Para não complicar muito, a MS já disponibiliza um provedor para OData v4, com isso, não precisamos nos preocupar se nosso serviço externo já utiliza este protocolo. Caso este não seja o caso, desenvolvedores podem usar o SDK para criar novos provedores;
Registro da Fonte de Dados (data source record) – aqui é o onde informamos qual o provedor de dados estamos utilizando, depois dizemos onde estamos requisitando os dados externos, bem como a consulta (query) que queremos fazer;
Entidade Virtual (virtual entity) – com o conector e fonte de dados já informados, precisamos definir como visualmente os dados externos serão apresentados no Dynamics, assim, devemos criar um entidade do tipo "Virtual" para criar o modelo de dados da fonte externa (metadados);
Como eu disse anteriormente, ainda temos algumas limitações, aqui vão elas:
Os dados externos estão no Dynamics são apenas para consulta (read), assim não podemos criar, editar ou excluir (aqui, temos um grande potencial para a Microsoft investir, se as entidades virtuais já possuem suporte para o OData, não está tão difícil para viabilizar as operações de "push")
Apenas entidades com o perfil de segurança do tipo "Organização" podem ser entidades virtuais
O modelo de dados externo tem que ser compatível com o do Dynamics, assim:
Entidades externas precisam ter um atributo GUID como chave primária;
Atributos devem ter o tipo de dados que o Dynamics possui;
Nenhum atributos pode ser campos calculados ou acumulados (rollup);
Auditoria e controle de mudanças não são suportados
Entidades virtuais não podem ser utilizadas em filas, base de conhecimento, SLAs, detecção de duplicatas, segurança de campos, pequisa relevante (relevant search), portais do Dynamics e relacionamentos Muitos para Muitos (N:N)
Cache no modo offiline não é suportado
Uma entidade virtual não pode representar uma atividade e não suporta processos de negócio empresariais (business process flows)
Uma vez criada uma entidade virtual não podemos altera-la para uma entidade padrão, o mesmo se aplica para uma entidade padrão, uma vez criada, não pode ser alterada para uma virtual
Bom este post termina aqui, vejam que não me aprofundei muito, porém já estou escrevendo outro post para falar um pouco dos resultados de minhas experiências com as entidade virtuais, assim se gosta de conteúdo mais técnico ele será melhor para você! 😉