Release Preview Guide CRM 2013

by Pedro Azevedo 24. September 2013 23:36

 Boas pessoal,

O CRM 2013 está quase quase a sair… entretanto saiu o Release Preview Guide do CRM 2013. Este guia resume as novidades que fui dando pelos vários posts que já escrevi em posts anteriores e tem algumas nuances novas.

Estes são os quatro principais princípios da Microsoft:

 

·         Pró-activo – um CRM deve ser capaz de prever tendências, facilitar e sugerir decisões num negócio. Resumidamente não deve ser um sistema passivo nem apenas um repositório de dados.

·         Produtivo – um CRM deve ter uma boa usabilidade para o utilizador final e ter integração completa com as tecnologias Microsoft.

·         Ubíquo – um CRM deve ser possível experienciar entre vendas, serviço e marketing independentemente do dispositivo, browser e localização.

·         Flexível – deve ser possível utilizar a Cloud ou uma instalação on-premise u ter uma instalação hibrida, dependendo das características do cliente.

 

As áreas que a Microsoft promete resolver com a vinda do CRM 2013:

Ao nível da experiência do utilizador e nos formulários o que temos de novo:

 

Rapidamente consegue-se saber o assunto de um registo, com o título em evidência, do lado direito caixas com as propriedades mais importantes (neste caso quando devemos responder, qual o valor estimado do negócio, estado). Com a barra de processos sabemos em que fase está o nosso registo. Depois temos o ecrã divido em três partes, onde do lado esquerdo temos informações do registo, no meio temos o que está acontecer e o que se passou neste registo e do lado direito informação secundária, por exemplo os registos associados. No fundo temos uma barra de estado onde temos o estado e se o registo está gravado ou não.

Com o novo modo de navegação, através da barra de navegação que foi também optimizada para o toque. Facilmente sabemos onde estamos e facilmente conseguimos navegar para outro registo.

Com formulários rápidos tanto para a criação (apenas preenchendo os dados mais importantes) com para leitura (pode visualizar dados relacionados rapidamente):

 

Criação e edição directa na grids:

Outro ponto de destaque e um dos mais importantes já introduzidos no Polaris é a possibilidade de termos uma barra de processos, agora para todas as entidades.

Esta barra para além de verificarmos onde esse registo se encontra permite vermos quais as acções que se já foram realizadas e as que falta verificar nessa etapa:

Podemos ter vários processos de negócio por entidade e ter processos de negócio que podem abranger mais que uma entidade, por exemplo da passagem de cliente potencial para oportunidade. Todos estes processos são configuráveis:

Como podem ver em cada etapa posso configurar quais os passos que posso dar e se esse passo é obrigatório ou não.

As aplicações mobile é outro forte onde temos uma aplicação com o mesmo aspecto para diferentes dispositivos:

Estas aplicações são configuráveis no cliente web do CRM e não é necessário um programador para aplicações móveis. As regras de negócio também são aplicadas incluindo o código Javascript.

Uma das grande apostas da Microsoft foi a compra da Yammer que permite podermos “conversar” à lá facebook num determinado registo:

Realmente uma grande ajuda para podermos discutir em equipa ficando registado no próprio registo.

Vamos ver outras melhorias:

·         Upgrade guiado – Antes de haver o upgrade para o CRM 2013 (online) os administradores podem escolher quando desejam receber o update e vão recebendo alertas 90, 30, 15 e 7 dias antes do upgrade. Isto para terem tempo de formarem os utilizadores.

·         Regras de negócio – Agora é possível afectar valores a campos, definir níveis de obrigatoriedade, mostrar e esconder campos, activar e desactivar campos, validar dados e mostrar mensagens de erro sem recorrer ao Javascript, tudo recorrendo apenas a interface gráfica.

·         Acesso de equipas – Até hoje quando queremos que uma equipa (que poderia ser multidisciplinar) criava uma equipa e esta ficava proprietária de registos. Com esta nova funcionalidade podemos criar equipas que têm acesso a registos.

·         Workflows real-time – Então e como são os workflows actuais? São assíncronos, estes são colocados uma fila para serem processados. Com esta feature os workflows são síncronos, comportamento semelhante com o que acontece com os plugins. Mas com a vantagem de não ser necessário nenhum programador.

·         Acções – Um novo tipo de processo que vai permitir expandir o CRM com novas mensagens para além das “normais” que são Create, Update, Delete, Retreive, Associate e Assign. As novas mensagens são criadas com base nas mencionadas e podemos ter novas mensagens como Escalate, Approve, Route e Schedule. Estas novas acções estão disponíveis através dos webservices.

·         Autosave – A funcionalidade do Autosave está activa por defeito e deixa de haver o botão de save, pois o formulário é gravado de 30 em 30 segundos ou quando navegamos para outro registo. Esta funcionalidade pode ser desactivada ao nível da organização ou em cada formulário através de código.

·         Aplicações móveis customizadas – Com suporte ao protocolo OAuth vem trazer mais flexibilidade, pois ao sermos autenticados através do OAuth poderemos usar os endpoints REST e SOAP, com esta melhoria principalmente ao protocolo REST ODATA vem facilitar o suporte aplicações mobile e a clientes ricos externos.

·         Medidas de Confiança – Existe um grande esforço por parte da Microsoft para garantir a segurança de informação nos seus datacenters e poder-se diferenciar também neste campo da concorrência. Desta vez está de acordo com o FIPS 140-2 (Federal Information Processing Standard) que garante a encriptação das credenciais guardadas por exemplo para o Yammer ou outros fornecedoresde email.

·         Compatibilidade Office 2013 – Uma das grandes vantagens do Dynamics CRM é a sua integração com as ferramentas do Office e agora a compatibilidade total com o Microsoft Office 2013.

 

Até a próxima.

Tags: , ,

Dicionário Microsoft Dynamics CRM

by Pedro Azevedo 15. September 2013 23:27

Boas pessoal,

Desta vez proponho o desafio de criar um dicionário com termos associados ao Dynamics CRM. Este post será sempre actualizado sempre que encontre necessidade e tempo:

·         CRM

Vamos começar pelo mais fácil, mas que para mim no início foi difícil de perceber. Quando dizemos a sigla em português dizemos Gestão Relacionamento com o Cliente. Mas em inglês posso dizer que no início me enganava muitas vezes, pois dizia Client Relationship Management, se calhar alguns de vocês está a pensar mas o que está errado. Simplesmente não se diz client mas sim customer. Pelo que percebi um client refere-se alguém que compra o serviço de um advogado, arquitecto, etc. e um customer é alguém que compra produtos.

·         Microsoft Dynamics

Esta é a primeira grande confusão, Microsoft Dynamics é um conjunto de soluções de negócio que vai que abrange o mercado de CRM (Customer Relationship Management) e ERP (Enterprise Resource Planning). Dentro do mercado CRM temos Microsoft Dynamics CRM, dentro do mercado ERP temos Microsoft Dynamics AX, Microsoft Dynamics NAV, Microsoft Dynamics SL e Microsoft Dynamics GP cada uma destas soluções especificas para cada negócio.

·         Update Rollup

Confesso que nunca tinha prestado grande atenção a este termo até confrontar-me com o Dynamics CRM. Basicamente é um conjunto cumulativo de correcções, actualizações de segurança, actualizações críticas e actualizações que são agrupadas para facilitar a implementação.

·         LCID

Estava eu a escrever o post sobre funções Javascript quando me deparo com esta sigla, seu que server para definir a língua mas o que significa? Bem é Locale ID que junta língua + país. Vejam aqui os LCIDs suportados pela Microsoft.

GUID

Identificador único global ou Global Unique IDentifier, usado como chave para todos os registos no CRM, também denominado muitas vezes como ID. O seu objetivo é gerar um identificador que seja único, não é garantido mas devido a sua forma a probabilidade de gerar o mesmo ID é quase diminuta. O valor do GUID segue o layout de grupos de 8, 4, 4, 4 e 12 dígitos hexadecimais e minúsculas, separados por hífens. Um exemplo de um valor válido para um GUID: 561d1cc4-c7b5-431e-94a7-e0c2ed9a8d2c.

Esperem brevemente por novas definições.

 

Até a próxima.

Tags: , , ,

Custom Workflow Activities - Resolução de incidentes

by Pedro Azevedo 9. September 2013 06:06

Boas pessoal,

EDIT: Eu já cá tinha um exemplo de uma criação de um Custom WorkFlow Activity, o post continua igual (alterei apenas o objectivo) mas mudei o exemplo, o exemplo que tinha era muito simples e estou a trocar por um exemplo que acontece-nos penso que a todos. O objectivo é extrair propriedades da Resolução de Incidente.

Hoje vou fazer um pouco de código C# Smile estava a ver que não… vamos falar em concreto sobre Custom Workflow Activities que permitem estender o comportamento por defeito dos Workflows.

O objectivo será que quando um incidente seja encerrado enviar em email com a descrição de resolução. A primeira opção que ocorria era criar um workflow, o problema é que dentro de um Workflow não conseguimos aceder a entidade Resolução de Incidente.

Uma solução seria criar um campo no incidente com esta informação. Mas existe uma solução mais eficaz que é recorrer a actividades customizadas de Workflow. Dentro desta actividade vamos pesquisar por esta entidade e retornar a descrição.

A primeira coisa a fazer é criar um projecto do template Workflow, do tipo Activity Designer Library:

 

Depois do projecto criado podem apagar o ficheiro que é criado por defeito:

 

E adicionem uma classe normal:

 

Antes de começarmos a colocar código vamos referenciar três DLLs fundamentais para programarmos para o CRM:

 

Estas DLLs estão na pasta onde vocês instalaram o SDK (se não tiverem podem sacar aqui). A seguir podemos colocar o seguinte código:

public class GetIncidentRes : CodeActivity
{
    protected override void Execute(CodeActivityContext activityContext)
    {
        IWorkflowContext contexto = activityContext.GetExtension<IWorkflowContext>();
        IOrganizationServiceFactory serviceFact = activityContext.GetExtension<IOrganizationServiceFactory>();
        IOrganizationService service = serviceFact.CreateOrganizationService(contexto.UserId);

        QueryByAttribute queryIncRes = new QueryByAttribute();
        queryIncRes.Attributes.AddRange(new string[] { "incidentid" });
        queryIncRes.ColumnSet = new ColumnSet(new string[] { "description" });
        queryIncRes.EntityName = IncidentResolution.EntityLogicalName;
        queryIncRes.Values.AddRange(new object[] { contexto.PrimaryEntityId });

        EntityCollection incidentResEntity = service.RetrieveMultiple(queryIncRes);
        IncidentResolution incidentResolution = (IncidentResolution)incidentResEntity.Entities.FirstOrDefault();
        DescrResol.Set(activityContext, incidentResolution.Description);
    }


    [OutputAttribute("DescrResol")]
    public OutArgument<string> DescrResol { get; set; }
}

Temos que referenciar três namespaces:

using System.Activities;
using Microsoft.Xrm.Sdk;
using Microsoft.Xrm.Sdk.Query;
using Microsoft.Xrm.Sdk.Workflow;

Em relação ao código é bastante simples, temos que derivar de CodeActivity, declarar o nosso output através do atributo OutputAttribute o texto que colocamos é o nome que vai aparecer depois no editor do Workflow. Mais de resto é o que fazemos habitualmente no CRM.

O Visual Studio vai-se queixar que não conhece a class IncidentResolution, isto porque ele não conhece as entidades que temos no CRM. Como estamos a trabalhar apenas com as entidades standard temos um ficheiro com todas as entidades standard na pasta do SDK (\samplecode\cs\helpercode). Poderíamos ter optado por usar o método late bound, mas neste caso quero trabalhar com early bound para isso teremos que gerar as classes das entidades e assim receber as entidades customizadas. Teremos que utilizar a ferramenta crmsvcutil.exe (\bin), a sua definição é a seguinte:

CrmSvcUtil.exe /url:http://<serverName>/<organizationName>/XRMServices/2011/Organization.svc /out:<outputFilename>.cs 
/username:<username> /password:<password> /domain:<domainName>

Podemos adicionar o ficheiro resultante ao nosso projecto:

 

Ao tentarmos compilar vai aparecer mais alguns erros um deles relacionado com a versão do .Net que ele coloca por defeito “.NET Framework 4 Client Profile”, mudamos para a “normal”:

Adicionamos ainda outra referência – System.Runtime.Serialization. Uma última coisa que é adicionar um strong name a nossa DLL:

Depois disto tudo vamos registar a nossa DLL, através da ferramenta: Plugin Registration Tool:

 

 

Depois de escolhermos a nossa DLL, basta dizer qual o workflow que queremos registar e temos o nosso workflow registrado.

Agora já podemos ir ao CRM e fazer o nosso Workflow que quando um incidente for finalizado envie um email com os detalhes da resolução, portanto criamos um novo processo do tipo Fluxo de Trabalho:

Depois de dizermos que o workflow só vai correr aquando da mudança de estado e depois de adicionarmos a condição que é apenas no estado Resolvido, podemos executar a nossa actividade customizada:

Depois deste passo podemos criar o email com base na informação retornada do nossa actividade customizada:

 

E temos a nossa actividade customizada, podem ver a sua funcionalidade e utilidade deste mecanismo.

 

Até a próxima.

Tags: , , , ,

About

Muito bem casado, Pai babado e um gosto muito grande pela tecnologia.

Tenho um lema "Sharing is Learning"

Mais aqui -> http://www.psazevedo.com

Month List