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…

Deixe um comentário

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

Logo do WordPress.com

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

Foto do Facebook

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

Conectando a %s

Este site utiliza o Akismet para reduzir spam. Saiba como seus dados em comentários são processados.