Pessoal,
Acredito que tenha sido após o release Polaris no CRM 2011 tenhamos “ganho” uma forma bem simplificada de conexão ao CRM quando estamos acessando “fora de seus domínios”, ou seja, através de uma aplicação custom. Quando estamos acessando através de um plugin ou custom workflow teríamos o contexto e não precisamos nos “re-conectar”.
Uma Conexão Simplificada (Simplified Connection) nos remete de volta as Connections Strings do .NET! Sim, agora podemos utilizar uma simples connection string e apenas DUAS LINHAS no C# para termos acesso ao WCF do Dynamics CRM!
Microsoft.Xrm.Client.CrmConnection connection = Microsoft.Xrm.Client.CrmConnection.Parse( System.Configuration.ConfigurationManager.ConnectionStrings["NOME DE SUA CHAVE"].ToString()); OrganizationService _orgService = new OrganizationService(connection);
Assim, resolvi criar este post para ajudar a disseminar esta boa dica! Incrementei um pouco ao original (Sample: Simplified connection quick start using Microsoft Dynamics CRM), inseri uma criptografia (fonte: MSDN) para melhorar um pouco mais a segurança do conteúdo do web.config.
Basicamente, existem 5 pontos para serem observados:
1 – Criptografia (classe Cripto) – Devemos criar “nossas sementes” de criptografia, respeitando a quantidade de caracteres obrigatórios. (Fique tranquilo quanto ao conteúdo dos métodos, vou disponibilizar o source!):
2 – Conexão com o CRM (classe Connection) – Criei uma classe de conexão implementando o Pattern Singleton, para não ficarmos a todo momento criando novas conexões:
3 – Gerar Criptografia (“Crypto.exe”) – Na imagem 1, notem que temos dois projetos nesta solução, para gerarmos nossa criptografia, precisamos executar primeiro o arquivo “Crypto.exe” que é gerado ao compilarmos o projeto “Crypto”
Informe, os dados de conexão com o Dynamics CRM que deseja conectar-se (para maiores detalhes da formatação, não deixe de ler o artigo do SDK), exemplo:
4 – Connection String (app ou web.config) – Adicionar a chave que foi gerada pelo “Crypto.exe”:
5 – Para testarmos a conexão, criei para fins de teste uma chamada da clase “WhoAmIResponse”:
O resultado será a apresentação do GUID do usuário que foi utilizado na conexão com o CRM:
Pronto! Nada além do SDK e muito útil para o desenvolvimento, ganhamos um bom tempo de trabalho!
Para ter acesso a solução baixe o arquivo ConnectionInCRM2013 (está em formato .doc, substitua para .zip e descompacte).
É isso pessoal, espero que ajude!
Consigo utilizar o Crypto.exe para criptografar strings de conexão em arquivos WebConfigs da versão 2011 do Dynamics CRM?
CurtirCurtir
Olá Adriano,
Sim você consegui criptografar qualquer string que desejar!
Só não se esqueça que a autenticação para CRM 2011 é diferente desta utilizada neste post 😉
[]’s,
Tiago
CurtirCurtir
Tiago boa tarde,
Estou começando a desenvolver para o MSCRM porém não consigo achar nenhum material para criar conexão com o banco de dados do MSCRM e como e o codebehind para criar por exemplo um novo Contato no MSCRM 2015, pagina web, você tem algum link ou material que possa me ajudar?
CurtirCurtir
Olá Ricardo,
Para o CRM não fazemos acesso ao banco de dados, usamos seus serviços (Web Services), o principal é o Organization Services. Inclusive este post que você postou seu comentário, possui como realizar a conexão com o CRM.
Outro ponto importante é que quando necessitamos criar novas funcionalidades dentro do CRM, não é preciso fazer uma conexão, pois herdamos do contexto.
O CRM possui um guia para desenvolvimento que é o seu SDK, procure post “Dynamics CRM SDK”, lembre-se de pegar a versão referente ao CRM que está utilizando.
Acredito que no meu blog você possa encontrar alguns exemplos de como desenvolver para o CRM, você primeiro precisa entender onde vai customizar e qual tecnologia será desenvolvida.
Para por exemplo trabalhar com contato, faríamos algo assim:
Entity contact = new Entity(“contact”);
contact[“firstname”] = “Tiago”;
contact[“lastname”] = “Cardoso”;
service.Create(contact); // onde service é o objeto que representa o Web Services
[]’s,
Tiago Cardoso
CurtirCurtir
Tiago, blz ?
cara o link ja era. =\
CurtirCurtir
Ola Getulio, voce diz o link da solucao, nao eh? O arquivo continua na nuvem do wordpress, mas algo deve ter corrompido. Fiz este artigo ha 6 anos atras, infelizmente nao tenho mais este codigo. Mas voce pode usar este link aqui, que possui algo bem similar:
https://tiagomcardoso.com/2018/02/12/dynamics-365-erros-ocultos-crmserviceclient/
Att,
Tiago
CurtirCurtir
Opa, Tiago então eu fiz, na verdade é bem fácil. Valeu.
CurtirCurtir