ago
10
2010
2

Microsoft Dynamics CRM Named a Leader by Two Independent Research Firms

Esta matéria foi enviada pelo meu amigo Lucas Santa Cruz. Mais duas pesquisas independentes posicionam o Dynamics CRM entre as aplicações líderes de mercado.

http://www.microsoft.com/Presspass/press/2010/aug10/08-04DynamicsCRMPR.mspx

jan
16
2010
4

Dynamics CRM 5.0: O que haverá de novo? (Parte 3)

Neste último artigo irei apresentar as melhorias e funcionalidades restantes, além de falar um pouco sobre o que gostaria de ver (e ainda não vi) no Dynamics CRM 5.0:

4-     Solutions

Todas as customizações são realizadas a partir de uma Solution. É possível customizar a solução padrão (CRM out of box) ou criar uma própria. Para fazê-lo  é preciso criar um publisher. O prefixo das customizações é agora relacionado ao publisher.

 

As soluções podem ser protegidas, o que significa que edições nas suas customizações não podem ser realizadas. Soluções podem ser construídas a partir de outras, o que cria uma dependência entre elas. O interessante é que o processo de exportação de uma solução extrai apenas o delta (diferença) das customizações. Exemplo: Ao  exportar uma solução criada a partir da padrão, você obtem apenas as suas alterações, o que reduz significativamente o tempo do processo.

 

O que fará parte de uma solução? Basicamente tudo que pode ser customizado no CRM, com exceção do que estiver na pasta ISV.Planeja-se também a construção de soluções prograticamente através do Visual Studio.

 

Alguns pontos importantes ainda não estão definidos, como por exemplo o nível de proteção no formulário(provavelmente será a nível de aba ou seção) , exibições e entidades, mas a adoção do conceito de soluções vai permitir maior flexibilidade e controle em cenários onde existem várias frentes de desenvolvimento atuando em paralelo.Também possibilitará a o deploy de customizações de maneira mais eficiente.

 

Existe um planejamento para disponibilizar um controle de versionamento e de atualizações para as soluções, além de mecanismos de propriedade intelectual. Uma possibilidade é permitir que parceiros publiquem suas soluções no Market Place / PinPoint para download e instalação automáticos pelo cliente.

 

 

O que ainda pode-se esperar do CRM 5?

 

A Microsoft trabalha para incluir as seguintes melhorias e/ou funcionalidades no produto até o seu lançamento:

 

- Múltiplos formulários por entidade, baseado em direito de acesso, status dos registros ou ambos;

- Segurança em nível de atributo;

- Pesquisa Global;

- Melhorias no Outlook Client;

- Melhorias no Modelo da Aplicação (Application Model);

- Suporte ao Windows Communication Foundation (WCF);

- Melhorias no gerenciamento de endereços/

- Maior extensibilidade utilizando client side code (ISV Control);

- Relationship Explorer / Organization Chart.

 

 

O que ainda não foi visto (e que gostaríamos de ver) no CRM 5?

- Gerenciamento de Configurações do Usuário: O usuário possuirá muito mais recursos para customizar a aplicação, mas não existe nenhuma ferramenta de gerenciamento centralizado dessas configurações, como por exemplo a criação, manutenção e deploy de um conjunto de preferências, exibições e dados locais que pudessem ser associados à um ou a um grupo de usuários. Em ambientes com muitos usuários, em especial aqueles com Outlook Client for Laptops, isto tem sido uma fonte enorme de problemas e custos tanto para os clientes quanto para os parceiros.

 

- Workflows: Nada foi falado sobre os workflows, e isto é de se estranhar. Ou a mudança será profunda e está sendo mantida em segredo ou não será mudado nada. Já é um consenso de que o Serviço Assíncrono ficou com atribuições demais na versão 4.0 e que isto atrapalha a escalabilidade da aplicação, já que não é possível por exemplo, alocar multiplas threads ou determinar prioridade para a execução dos serviços considerados assíncronos (workflows, detecção de duplicatas, importação, etc.).E agora com as atividades recorrentes e a integração com o Sharepoint sob a sua guarda, a pergunta é o que podemos esperar?  As melhorias disponibilizadas na versão 4.0 fizeram com que todos nós mergulhassemos de cabeça na construção de complexos workflows, e muitos pagaram um preço alto devido aos problemas de desempenho causados. É preciso garantia de escalabilidade e funcionalidade sob pena de o recurso passar a ser desprezado pelos usuários e parceiros, o que seria uma pena. 

 

Segue a minha wishlist para os workflows na versão 5.0:

1-     Melhor tratamento de erro: muitas das mensagens de erro não permitem que você descubra a causa do problema. Um log com a descrição do erro na plataforma não seria má idéia;

2-     Suporte a transações: o proprietário do workflow poderia informar se no caso de uma falha, ocorreria um rollback das ações;

3-     Maior opções de operações aritméticas e de data: cálculo em dias úteis e divisão, dentre outros;

4-     Melhorias na ferramenta de criação: possibilidade de mover branches ou de alterar o tipo de condicional (de wait para if, por exemplo)

5-     Maior escalabilidade para o Serviço Assíncrono: possibilidade de disponibilizar multiplas threads, definir priopridade de processamento, alocação de memória e de serviço assíncrono (workflows teriam prioridade sobre os outros serviços, por exemplo);

6-     Workflow Síncrono: parece bobagem mas pensem em um tipo de workflow que atualize um registro aberto sem ter que realizar reload ou que ainda disponibilizasse registros automaticamente para o usuário. Você também poderia chamá-lo de Script Flow, Script Tool ou qualquer nome legal que encontrasse.

 

 

Bom, isto é tudo (ufa!). Assim que novo material surgir ou que a versão CTP seja disponibilizada, irei atualizá-los com as novidades.

 

Abraços,

jan
16
2010
2

Dynamics CRM 5.0: O que haverá de novo? (Parte 2)

Continuando com a série de artigos sobre o Dynamics CRM 5.0, Irei apresentar os seguintes conjuntos de melhorias e funcionalidades construídos a partir dos pilares e princípios citados no post anterior:

 

1-     Formulário e Navegação

·         Navegação com ribbons (office 2007) com objetivo de ter menos poup ups. A navegação será in page, ou seja, sem poup ups;

·         Todo formulário terá um header e um footer que podem ser customizados com atributos da entidade;

·         As tabs (abas) foram movidas do formulário para o painel esquerdo (navigation panel);

·         As sessões do formulário podem ser colapsadas;

·         Main.aspx substitui loader.aspx e o edit.aspx, utilizando os seguintes parâmetros:

         pagetype – specifies form or grid

         id – specifies an entity id

         viewid – specifies a view

         viewtype – specifies type of view (system or user)

         etn – preferred method of specifying an entity

         extraqs – extra query string parameters (URL encoded)

 

Exemplos:

Criar um novo registro

http://<server name>/<org name>/main.aspx?etn=<entity name>&pagetype=entityrecord

 

Editar um registro existente

http://<server name>/<org name>/main.aspx? etn=<entity name>&pagetype=entityrecord&id=<object_id>

 

Acessar uma view de sistema

http://<server name>/<org name>/main.aspx?etn=<entity name>&pagetype=entitylist&viewid=<view_id>&
viewtype=1039

 

Acessar uma view de usuário

http://<server name>/<org name>/main.aspx?etn=<entity name>&pagetype=entitylist&viewid=<view_id>&
viewtype=4230

O impacto desta mudança é tremendo em cenários de upgrade, onde existem muitos jscripts ou pontos de integração ISV que utilizem as addressable views.

·         Será adicionada uma pesquisa global ao sistema;

·         Melhorias no formulário:

- Subgrid: escolhe-se a entidade baseada no relacionamento e a view (os quais views) que será utilizada;

- Será possível adicionar atributos a partir do próprio formulário, através de comandos no ribbon;

- Picklists Globais :Um set que pode ser utilizado em diversos picklists;

- Os picklists poderão armazenar múltiplos valores;

- Filtered Lookup: será possível escolher a view que será exibida e por qual atributo serão filtrados os registros, além de passar parâmetros fetchXML, XML e jscript para os lookups;

 

 

2-     Grids (Exibições)

Runtime Filters:  filtros para ordernar ou para pesquisar por algum valor de alguma coluna da view , será um botão no  ribbon e alterará em tempo real a exibição. Similar ao auto-filtro do excel

User Select Default View: o usuário pode selecionar uma view padrão para cada entidade

 

Gráficos dos Dados do Grid

Gráficos Asp.Net for .Net Framework 3.5 que são exibidos para os dados que foram renderizados na última atualização do grid. Ainda é possível realizar drill down dos dados (um novo gráfico é criado).Os gráficos estão relacionados a cada exibição, e novos gráficos podem ser criados/importados através de um wizard. Uma possibilidade que está sendo estudada é habilitar os gráficos como visualização padrão dos dados ao invés da exibição, como dashboards.

 

 

3-     Integração com Sharepoint

Também chamada de Sharepoint Provisioning. No momento da instalação do CRM será possível definir se haverá um site do Sharepoint para o armazenamento dos documentos, que então serão armazenados no mesmo e disponibilizados no CRM através de Iframes que exibem a páginas do site.

 

O foco atual é apenas o uso das document libraries do Sharepoint e a navegação foi concebida para ocorrer a partir do CRM e não ao contrário (apesar de ser possível). A estrutura padrão do site criado é por unidades e negócios e times (sim, os documentos por padrão são de propriedade dos times e não de usuários).

 

Importante ressaltar que a atualização entre as aplicações não é automática: existe um mecanismo de sincronização controlado pelo serviço assíncrono. Se um novo time é criado no CRM, a estrutura para armazenar seus documentos é criada no Sharepoint. Outro ponto importante é que documentos armazenados no Sharepoint não estarão disponíveis offline (e é claro, não teria nenhum sentido). Talvez por isto é que a Microsoft está migrando o Groove Server/Cliente para a plataformar MOSS (ele passará a chamar Sharepoint Workspace): um Sharepoint Workplace Client poderá trabalhar offline com espaços de trabalho do Groove e sites do Sharepoint.

 

Apesar de ser um recurso muito promissor (e desejado), existem alguns pontos importantes não definidos, como por exemplo qual o tratamento a ser adotado para anotações e mail merge. Existem também alguns limitantes, que irão requerer uma mudança no skill dos desenvolvedores: ações de manipulações dos documentos deverão ser realizadas utilizando o sdk do Sharepoint. Haverá suporte para workflows, mas apenas para ações que não manipularem propriedades dos documentos. Caso contrário deverão ser utilizados workflows do Sharepoint. Mas talvez a maior limitação seja o fato de  que o Sharepoint Provisioning só estára disponível para soluções 100% on premise ou partner hosted.

 

Na 3a e última parte desta série de artigos, continuarei expondo as novas funcionalidades do CRM 5.0

jan
16
2010
2

Dynamics CRM 5.0: O que haverá de novo?

A versão 5.0 do Dynamics CRM já está chegando, e cheia de novidades. O objetivo da Microsoft é continuar com o movimento iniciado com a versão 4.0 de fazer com que a aplicação seja entendida como plataforma. Então uma pergunta vem à mente: podemos continuar chamando-a de CRM?
A resposta: em principio sim. O core da aplicação, presente desde a versão 3.0 ainda é focado em conceitos muito sólidos de CRM (e ele é muito bom, este é um dos motivos do sucesso da aplicação), mas a Microsoft tem acenado ao mercado que gradualmente inserirá conceitos de XRM e outros com objetivo de  fornecer aos parceiros uma plataforma para criar soluções que podem facilmente interagir com outras aplicações, estando elas em qualquer lugar conectado à internet.
A Microsoft prestou muita atenção ao feedback dos clientes e parceiros, e muito do que todos da área desejaríamos ver na aplicação está lá (ou pelo menos planejado para estar). É importante ressaltar essa postura positiva e o fato de que de uma maneira ou outra a comunidade Dynamics CRM e não apenas a Microsoft participaram da construção da aplicação.
Começemos então a conhecer quais são as novidades do Dynamics CRM 5.0. O material foi coletado de diversos sites na internet e é claro, que apesar de as fontes serem bem confiáveis, não é possível afirmar que tudo o que está sendo dito realmente estará disponível na aplicação.
 

Princípios
O desenvolvimento da versão 5 do Dynamics CRM foi baseado nos seguintes princípios:

Improve 'time to value': que pode ser traduzido como  "otimizar o uso". A aplicação será mais fácil de utilizar e de customizar, além de uma melhoria no que pode ser chamado de "fundação"(CRM basics) do CRM: funcionalidades de segurança e colaboração ,vendas, marketing e serviços.

Bussiness Aplication Plataform: desde a versão 4.0 a Microsoft incita os parceiros a considerar o CRM como plataforma, mas isto só será totalmente verdade com a versão 5.0, que contará com recursos que facilitarão a convivência de diversas soluções em um mesmo ambiente, ou ainda a integração das mesmas com outras aplicações (conceito de solution ecosystem). Essa integração poderá ocorrem em aplicações na intranet ou na internet (cloud services). Uma experiência de desenvolvimento mais rica também será proporcionada.

 

Pilares
Baseado nos principios acima, a aplicação foi construída a partir dos seguintes pilares, sempre com o foco no aumento da produtividade, tanto do usuário quanto do desenvolvedor:

1-     Interface Office (Office Class UX)

O toolbar do CRM irá desaparecer e uma interface no formato ribbon do Office 2007 tomará o lugar. O objetivo é aumentar a produtividade do usuário por que é uma interface familiar e baseada em cliques (não em janelas). Os ribbons podem ser customizados em nível de aplicação, formulários, grids e entidades, através de um arquivo de personalização XML próprio. No caso de uma migração, todas as customizações que estiverem no ISV.Config serão transferidas automaticamente para os ribbons. Isto traz uma outra boa notícia: adeus ISV.config!

 

2-     CRM Basics

·         Colaboração: é possível criar bibliotecas de documentos por entidades e armazená-las em um site do Sharepoint (Sharepoint Provisioning);

Mais detalhes a seguir

 

·         Relacionamentos: Connections, que são relacionamento ad hoc do tipo tagging que não alteram o esquema do banco de dados (não criam atributos de relacionamento e não possuem cascading). Uma boa comparação é a melhoria e disponibilidade para todas as entidades do recurso Relacionamento, atualmente disponível apenas para Contas, Contatos e Oportunidades. Uma conexão pode ser aplicada a um ou aos dois registros relacionados.

Uma conexão poderá disparar um plugin e possivelmente um workflow.

 

·         Times: os times passam a ser a principal componente na estrutura de segurança da aplicação: eles podem possuir e compartilhar registros. Podem ser atribuídos security roles aos times.

 

·         Atividades Recorrentes: Uma grande limitação que agora foi resolvida, apesar da imensa complexidade. Isto por que Outlook utiliza um modelo de recorrência chamado Virtual Expansion, em que apenas as configurações são armazenadas (e não os registros em si). Esse modelo não poderia ser utilizado no CRM por que as atividades podem, por exemplo, fazer parte de workfkows e portanto devem existir no banco. Agora imaginem uma recorrência infinita. Deu para entender o tamanho do problema?

 

Foi então concebido um modelo chamado Partial Expansion, onde o número de instâncias passadas e futuras que serão armazenadas no banco são configuráveis pelo administrador. O Expansion Service será controlado pelo Serviço Assíncrono.

  

·         Filas: as filas passam a ser do tipo User/Team Owned e, portanto sujeitas a estrutura de segurança determinada pelas bussiness units. Segue  lista de outras melhorias bem vindas:

- As views podem ser customizadas;

- Os itens das filas podem disparar workflows;

- Foi adicionada uma pesquisa;

- Entidades personalizadas podem ser enviadas para filas;

- Um usuário pode rotear um item diretamente para outra fila;

- Consistência no delete: agora é possível deletar o item da fila e do sistema, além de só removê-lo da fila;

- Como times podem possuir registros, foi adicionado um outro status na fila chamado Working On, para indicar qual membro assumiu a responsabilidade pelo registro.

 

3-     S + S (Software + Service)

·         A Microsoft pretende disponibilizar espaço no Solution Finder e PinPoint para que os parceiros possam vender suas soluções online;

 

·         Sandbox: modo isolado e seguro de acesso à plataforma para a execução de código customizado. É um modo opcional de execução dos plugins. Cada organização possuirá um sandbox próprio e um servidor pode ter um papel (role) para atuar dedicado apenas para esta função. As principais vantagens do uso deste recurso são:

o    Os plugins poderão ser construídos e implementados em várias instalações sem necessitar de alteração de código, em um modelo de service provider;

o    Os plugins são associados a um profile, e assim torna-se possível monitorar violações de restrições de segurança, exceções e consumo de recursos. Os plugins são desabilitados automaticamente pela plataforma quando apresentam erro consistentemente

O uso do sandbox permitirá agrupar os plugins por desenvolvedor ou por solução, e desta forma isolar problemas de desempenho e a ocorrência de falhas.

 

·         Transações em Plugins: Opcionalmente, será possível registrar o plugin para atuar antes e depois da transação, mas haverá commit e rollback apenas de dados que estiverem no CRM. Transações distribuídas não serão permitidas;

                                      

·         Tracing em Plugins: é possível realizar um rastreamento das ações do plugin, via WebService

 

·         Auditing: é possível habilitar um audit trail por entidade. Provavelmente será obrigatório o uso do SQL 2008, já que este é um recurso nativo do mesmo.

 

·         Outlook Client V4/V5: A Microsoft garantirá que os Outlook Clients versão 4.0 funcionarão mesmo após o upgrade do servidor para a versão 5.0. Não está descartada a construção de uma versão intermediária;

 

·         Melhorias no Desempenho: remoção do deletion state code, otimizações em querys e em workfows;

 

·         Novos recursos de desenvolvimento: bibliotecas de jscript (armazenamento centralizado), uso de código Silverlight, Child Pipeline CreateCrmService, Nested Pipelines e Custom Web Service Proxies;

 

·         Endpoint Consolitation: CrmService e MetadataService serão consolidados em um único WebService;

 

·         Solution Management: Solution é um conjunto de componentes que são criados, empacotados e gerenciados como um único software. Customizações de entidades, workflows, relatórios e plugins podem fazer parte de uma solution.

 

Vantagens

o    Proteger propriedade intelectual no desenvolvimento;

o    Agilizar o desenvolvimento e entrega;

o    Facilitar o gerenciamento;

o    Permitir a coexistência entre diversas fases de projeto ou entre projetos diferentes.

 

No próximo artigo desta série, irei apresentar as principais novas funcionalidades do CRM 5.0

jan
01
2010
0

Novos Posts em Breve e Feliz 2010 para Todos!

Novos posts em breve…. prometo! Tenho gasto muito tempo elaborando treinamentos e estudando o material disponível da versão 5.0 do CRM.

Enquanto os novos posts não chegam, um bom 2010 para todos!

 

abcs,

 

 

Written by Ricardo de Souza in: Geral | Tags:
dez
02
2009
0

Academia Dynamics CRM: Oportunidade para conhecer melhor a aplicação

A academia de Dynamics CRM que a Tridea está oferecendo é uma ótima oportunidade tanto para aqueles que desejam aprofundar os conhecimentos quanto para aqueles que pretendem trabalhar com a aplicação.

Os treinamentos começam semana que vem e eu ministrarei os cursos Customization, Applications e Workflows.

 

set
22
2009
0

Leitura Obrigatória: Versão 2.0 do Optimizing and Maintaining Microsoft Dynamics CRM 4.0

A versão 2.0 do documento que saiu em 30/06 contém um maior detalhamento sobre as ações que podem ser tomadas para melhorar o desempenho do Dynamics CRM 4.0. Em resumo as alterações foram a alteração dos requisitos de hardware e software, atualização para links de novas versões de produtos como SQL e Windows Server, além de uma lista (bem vinda) de contadores de desempenho.

abaixo segue o link:
http://www.microsoft.com/downloads/details.aspx?FamilyID=ba826cee-eddf-4d6e-842d-27fd654ed893&displaylang=en

 

 

 

set
19
2009
0

Melhorando o Desempenho do Dynamics CRM – Parte 2

 O que o Rollup não faz por você

Eu havia prometido que o próximo artigo da série "Melhorando o Desempenho do Dynamics CRM" seria sobre o componente banco de dados, mas resolvi mudar a ordem e inserir um alerta sobre algo que considero causar mais impacto: As atualizações que devem ser aplicadas manualmente após a instalação de cada Rollup disponibilizado pela Microsoft. Lendo mais atentamente os KBs, notei o seguinte:

  1. Cada Rollup habilita a possibilidade de alterar o comportamento da aplicação através de alteração / criação de chaves no registro tanto no servidor quanto nas estações de trabalho;

  2. A instalação do Rollup 4, por exemplo, não significa que você não precise aplicar as atualizações manuais dos Rollups anteriores; 

  3. Pelo menos no MSDN, a Microsoft não atualizou a compilação do pacote, o que significa que se chegarmos no Rollup 10 (o que é muito provável, já que estamos no 6), existirá uma lista enorme de correções a serem aplicadas.

O que me preocupa é a aplicação dessas numerosas correções em ambientes com diversos servidores e um número elevado de estações de trabalho. Tenho uma opinião radical em relação a questão: se é para melhorar o desempenho, que seja aplicado automaticamente ou que pelo menos exista uma opção na interface da aplicação para executá-la! Do jeito que está os parceiros que customizam o CRM são obrigados a assumir o tunning, para evitar que a culpa recaia sobre os seus próprios desenvolvimentos.

Abaixo uma lista com os KBs relacionados a desempenho e que precisam ser aplicados manualmente.

Rollup

KB

Onde deve ser executado

Rollup 1

950175  You cannot use Outlook as expected until all Microsoft Dynamics CRM 4.0 add-ins are loaded

Estação de Trabalho

 

954811  Microsoft Dynamics CRM 4.0 Deployment Manager takes a long time to open on a Microsoft Dynamics CRM 4.0 server

Servidor

 

 

Rollup 2

956527  The Microsoft Dynamics CRM client for Outlook consumes three times as much memory in version 4.0 as in version 3.0

Estação de Trabalho

 

959248  Microsoft Dynamics CRM 4.0 slows to unacceptable levels when you process e-mail messages by using the Microsoft Dynamics CRM E-mail Router

Servidor

 

957871  The Workflow Expansion Task records cause the AsyncOperationBase table in the MSCRM database to grow too large in Microsoft Dynamics CRM 4.0

Servidor

 

 

Rollup 3

956330  Slow performance and high CPU utilization occur when you import customizations in Microsoft Dynamics CRM 4.0

Servidor

 

968755  The AsyncOperationBase and WorkflowLogBase tables grow very large and performance issues occur when you use many workflows in Microsoft Dynamics CRM 4.0

Servidor

 

 

Rollup 4

955138  You experience slow performance or timeouts when you try to access some views in Microsoft Dynamics CRM 4.0

Servidor

 

 

Rollup 6

974896  The Asyncoperation tables grow very large in Microsoft Dynamics CRM 4.0.

Servidor

 Quem quiser a lista completa de atualizações manuais dos rollups basta baixar este arquivo.

set
07
2009
0

Melhorando o Desempenho do Dynamics CRM – Parte 1

Dynamics CRM 4.0: Foco na escalabilidade e produtividade
Com os recursos disponíveis na versão 4.0 do Dynamics CRM tornou-se possível a criação de soluções mais sofisticadas com menos esforço ou complexidade. Cito abaixo diversos exemplos :

-A possibilidade de disparar workflows para diversos eventos e a adoção do WWF (Windows Workflow Fundation) permitiram inserir na aplicação processos de negócio mais complexos;

-A sofisticação da estrutura de relacionamento e a possibilidade de criar relatórios via wizard permitiram o desing e criação de entidades que correspondessem as necessidades de armazenamento dos dados e de extração de dados para análise;

Fora outras melhorias que dependendo do projeto, significam ou um diferencial entre os produtos concorrentes ou servem como apoio na customização da aplicação para o cliente, como multi currency, multi language, exportação de configurações, importação de dados para qualquer entidade, etc. É claro que existem muitas coisas no produto que poderiam ser melhores (e a lista não é pequena) mas a evolução comparada a versão 3.0 é expressiva e tiveram foco na escalabilidade e estabilidade quando em operação, além na produtividade durante o desenho e desenvolvimento. Mas o que poderia ser melhor no Dynamics CRM fica para outro tópico.

Projetos de Implementação de CRM: Sinônimo de expectativa
Em geral os projetos de implementação de uma estratégia de CRM são acompanhados por muita expectativa por parte do cliente, pois significa uma mudança no paradigma de como se relacionar com o publico alvo.Lidar com esse cenário é um desafio enorme para qualquer gerente de projeto ou arquiteto de software. E não existe nada mais frustrante do que a aplicação não responder de forma adequada.

O problema é depois de tudo pronto descobrir aonde mexer. Muitos esquecem de que por der uma aplicação web, o Dynamics CRM possui diversos componentes que são impactados de forma distinta por uma customização ou desenvolvimento mal planejado. Na maioria dos casos a customização não está tecnicamente mal construída, mas na sua idealização não foram levados em consideração fatores como perfil de utilização (o que primariamente os usuários realizarão no CRM e como o farão?), restrições tecnológicas ou de segurança no ambiente do cliente e integrações entre outros sistemas .

Por isso é importante tomar alguns cuidados no momento de desenhar a solução para o cliente. E quando eu falo desenhar a solução, quero dizer desde decidir se um processo de negócio será implementado via workflow ou plugin desde prever o impacto de processos de migração de dados em massa ou de uma lógica extremamente complexa aplicada via jscript no onload de um formulário que será utilizado simultaneamente por 200 usuários.

Nesta série de posts, irei descrever uma série de recomendações, que vão desde o desenho da solução até ajustes em componentes como o SQL Server e .NET Framework. O objetivo é diminuir o risco de um grave problema de desempenho no Dynamics CRM. É claro que cada projeto tem suas características e sempre haverá algum cenário em que não será possível observar alguns dos itens que apresento, mas é importante conhecê-los e se antecipar comunicando os riscos ao cliente, que deve decidir se o desempenho é o preço a se pagar pela informatização de um processo de negócio. A decisão é sempre dele, nunca do responsável pelo projeto.
 

Cuidados no Desenho da Solução

1-Não esqueça de que por ser uma aplicação web, o Dynamics CRM possui diversos componentes (Sql Server, Web Server, Web Services, Estações de Trabalho e Customizações). Cada um dele deve ser dimensionado de acordo com as especificações de hardware software recomendadas na documentação do produto. Recomendada não é a configuração mínima. Ela não garante desempenho.

2-Ainda sobre hardware e software, se o seu projeto prevê o uso extenso de workflows, talvez seja melhor prever a versão Enterprise e deixar uma máquina específica para o Serviço Assíncrono (que é responsável pelos workflows, serviço de importação e de detecção de duplicatas). Se houver um grande número de usuários, talvez seja necessário deixar um ou mais servidores específicos para a apresentação da interface. Ou ainda, se está planejada a adoção em massa do Outlook Client para Laptops, é bom prever o impacto na intranet. E assim sucessivamente. A Microsoft possui uma documentação detalhada a respeito do que você pode fazer para melhorar o tempo de resposta da aplicação.

3-Se no seu projeto existir o cenário de migrações em massa, procure evitar a adoção de workflows que disparam automaticamente nas entidades que estão sendo migradas.O desempenho da aplicação é degradado de maneira intensa, e pode ser que os worflows fiquem travados, o que obrigará que você tenha que deletá-los (o que é extremamente trabalhoso).
Uma alternativa seria criar um serviço que fosse executado em um horário diferente da migração para realizar a atividade dos workflows (ou até mesmo executá-los).

4-Jscripts devem ser utilizados com cuidado por 03 questões: eles são de difícil manutenção, é muito fácil de um código ser alterado inadvertidamente e deixar de funcionar e por último, eles são descarregados localmente na estação de trabalho para execução. Java Scripts extensos e complexos juntamente com estações de trabalho antigas são sinônimos de problemas de desempenho.

5-Se uma lógica de negócio for extremamente complexa de ser aplicada via workflow ou Java script, talvez seja melhor criar um plugin .NET para executá-la. O desempenho e confiabilidade são superiores.

6-Muitos clientes possuem áreas de TI que não estão acostumadas a suportar aplicações web. É importante alertá-los desde cedo que a execução de atividades de manutenção de acordo com a documentação do produto(como backup do banco de dados, atualizações, etc.) garantem o desempenho do mesmo.

7-Muitos clientes possuem usuários que não estão acostumados com a navegabilidade e funcionalidade de aplicações web. É bom alertá-los desde cedo de que adicionar recursos ou interferir no funcionamento da aplicação tem um custo de desempenho.

8-Caso a utilização do Outlook Client para Laptops seja predominante, o cuidado deve ser redobrado. O funcionamento de customizações pode ser totalmente diferente ,o que requer que o código seja reescrito, causando problemas de desempenho. É preciso lembrar que a estação de trabalho é o servidor!

9-Se os relatórios exigem agregação, sumarização e outras operações matemáticas com quantidade de registros na ordem de milhões, é recomendado replicar os dados para um repositório a parte (datawarehouse) e manipular os dados no próprio SQL criando views e store procedures que serão consumidas pelos relatórios, caso contrário o Report Server consumirá todos os recursos disponíveis do servidor onde estiver instalado. Ele não foi concebido para fazer operações aritiméticas em grande escala , mas sim para exibir relatórios.

10-Nunca deixe que um desenvolvedor escreva sozinho a query no banco de dados para o funcionamento dos desenvolvimentos. Ela deverá ser otimizada por um DBA e deverá sempre obedecer ao que consta na documentação do produto

11-Sempre desenvolva tudo em conformidade com o SDK (Software Development KIT) do Dynamics CRM. Isto por que se você ainda tiver um grave problema de desempenho após ter observado tudo o que foi disposto acima, ainda poderá contar com o suporte da Microsoft para resolvê-lo.

Essas são as recomendações quanto ao desenho da solução que deverá ser apresentada ao cliente. Na próxima semana escreverei sobre algumas dicas na manutenção e otimização do componente banco de dados do Dynamics CRM.

Abraços!

set
05
2009
0

Dynamics CRM 4.0: Workflow que nunca executam!

Esta semana me deparei com o seguinte problema: em um ambiente CRM 4.0 com servidores bem dimensionados, os workflows não estavam sendo disparados. A maioria deles estava em estado de espera e com data de execução para 31/12/2999 (!!!!)

Pesquisando na internet, encontrei a causa: quando você atualiza ou instala o CRM 4.0 com um custom header, ou ainda, quando você muda o host header do site, pode ser que nenhum valor (ou o valor errado) seja gravado na tabela deploymentproperties do banco MSCRM_CONFIG. O Serviço Assíncrono, o Email Router e o Outlook Client utilizam o Discovery Service para determinar qual a url correta do servidor, e se o valor na tabela citada não estiver correto, o serviço não é encontrado e nada funciona.

Para descobrir se a sua instalação está com problemas, acesse o banco MSCRM_CONFIG através do Sql Management Studio e execute as querys abaixo:
select Nvarcharcolumn from deploymentproperties where columnname = ‘asyncsdkrootdomain’
select Nvarcharcolumn from deploymentproperties where columnname = ‘adsdkrootdomain’
select Nvarcharcolumn from deploymentproperties where columnname = ‘adwebapplicationrootdomain’

 

Se qualquer um dos valores retornados for NULO ou um endereço diferente do host header atual do site do CRM, você deverá atualizá-lo com uma das querys abaixo:
update deploymentproperties set nvarcharcolumn = ‘NOME_DO_SERVIDOR’ where columnname = ‘asyncsdkrootdomain’
update deploymentproperties set nvarcharcolumn = ‘NOME_DO_SERVIDOR’ where columnname = ‘adsdkrootdomain’
update deploymentproperties set nvarcharcolumn = ‘NOME_DO_SERVIDOR’ where columnname = ‘adwebapplicationrootdomain’

Após o procedimento, basta reiniciar o ISS, email router e Serviço Assíncrono.

Para maiores detalhes, basta acessar os links abaixo:
http://crmhacks.blogspot.com/search/label/MSCRM4%20Workflow
http://www.sadev.co.za/content/workflow-doesnt-work-imports-never-happen-emails-dont-flow-and-outlook-clients-cannot-connec 

 

fev
23
2009
0

1o post, o mesmo de sempre…

No 1o post geralmente, depois de agonizantes horas gastas entre uploads eternos, layouts, definição de nomes e procedimentos de instalação, o coitado do pretenso blogueiro está cansado demais para retornar a aquela idéia genial que lhe motivou a montar o blog.

Bom, eu não serei a execeção a regra: depois de 1 dia tentando descobrir o por quê da Telefônica bloquear a navegação pelas portas FTP do meu link Speedy, eu não irei escrever nada! Mas as idéias não foram perdidas, em breve os posts surgirão. Espero ser disciplinado.

Para os mais apressados, os tópicos dos 1os posts serão: Utilizando Iframes para visualizar entidades relacionadas no formulário da entidade principal (Dynamics CRM), o que haverá de novo (até a Microsoft mudar de idéia) no Dynamics CRM 5.0 e SQL 2008: algumas primeiras impressões.

see you later !

 

 

Powered by WordPress. Theme: TheBuckmaker. P2P Kredit, Wasserbelebung