CRM 4 – Consultas

Um ponto bem interessante para ser comentado seriam as formas de consultas e algumas recomendações para quando utilizar uma ou outra forma.

Existem três métodos suportados, cada um possui suas vantagens e desvantagens:

  • QueryExpression – É certamente o mais visto em materiais Microsoft, proporciona a utilização de objetos tipados. Basicamente escolhemos a entidade a ser consultada, solicitamos os atributos de retorno (QueryAttributes), informamos as condições/filtros (ConditionExpression e FilterExpression) e por fim percorremos uma lista de BusinessEntityCollection que obviamente permite um casting (todas entidades herdam de uma BusinessEntity) para uma entidade nativa ou customizada. Em 90% do casos tudo que foi dito é mais do que suficiente para o que precisamos, porém algumas limitações nos fazem pensar um pouco em usar QueryExpressions. Em determinados casos precisamos recuperar colunas de duas entidades distintas, e isso não será possível de ser feito com uma QueryExpression, uma alternativa seria fazer sub consultas e recuperar as informações uma a uma das entidades relacionadas. Outro ponto seria a familiaridade de programação, poucos desenvolvedores conhecem sua sintaxe plenamente, isso pode prejudicar o desempenho de construção do projeto;
  • Filtered Views – Como devem saber a única interação com o banco de dados do CRM suportada é através de suas views. Com elas um desenvolvedor com conhecimentos básicos em .net e t-sql conseguirá criar suas consultas sem problemas, pois nada fungirá do habitual, no final teremos nosso DataTable de sempre. Como ponto negativo seria a falta de tipagem dos objetos, todo o resultado deve ser convertido para as entidades apropriadas ou dynamics entities;
  • FetchXML – Uma forma pouco explorada pelos desenvolvedores, traduz toda sua funcionalidade em tags XML, um padrão mais moderno de trabalho e limpo. Uma curiosidade importante, seria que toda QueryExpression acaba sendo transformada em fetchXML. Apenas duas informações são necessárias para obter um resultado da consulta: uma string com o fetchXML propriamente dito e uma chamada ao método “Fetch” do Web Service (CrmService.Fetch). Igualmente as Filtereds Views, permitem o retorno de colunas de várias entidades na mesma consulta. Novamente o “problema” conhecimento da sintaxe pode ser determinando para o seu uso, aliado ainda a realização de testes e depuração de erros;
Existe um software free no mercado que nos auxilia na criação de consultas, ele nos abstrai o conhecimento de QueryExpressions e fetchXML, possibilitando uma IDE visual que vamos inserindo as configurações necessárias. Chama-se Stunnware Tools for Microsoft Dynamics CRM 4.0, uma ferramente que ajudará em muito o nosso trabalho.
Mais uma vez é apenas minha visão sobre determinado assunto, e espero que contribua para o conhecimento da comunidade.
Fico por aqui, até mais…
Anúncios

Sobre Tiago Michelini Cardoso

I have been working with IT since 2006, almost of this time using Microsoft Dynamics CRM/365 as a source of solutions. I graduated in Bachelor of Information Systems at FIAP (Brazil) in 2012. I really love what I do! Technology has been my interest since always. Even in a tool different world of the current. When we didn't have internet, tablets, smartphones e social networks! Although I have worked in some roles, I can't give up "the developer life". Even so far of the greatest developers. Development in general is the thing that I love to work! I started my contributions about Dynamics in 2010. At the beginning, I used to help at MSDN and TechNet forums. But now, I'm dedicating all my time in my personal blog! Currently, I have the enormous honour of being the only Brazilian who got the award for Microsoft MVP (Most Valuable Professional) for Microsoft Dynamics CRM/365 product. I have been receiving the award since 2012.
Esse post foi publicado em Dynamics CRM e marcado , , , , . Guardar link permanente.

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s