Sobre/About

(Please check the English version at the bottom):

Olá, obrigado por acessar este blog!

Um pouco sobre o autor…

Trabalho com TI desde 2006, boa parte deste período utilizando o Microsoft Dynamics CRM/365 como fonte de soluções. Concluí meu bacharelado em Sistemas de Informação na FIAP (Faculdade de Informática e Administração Paulista) em 2012.

Possuo uma grande paixão pelo que faço, tecnologia sempre foi meu maior interesse. Mesmo em um mundo bem diferente do atual, onde não a internet era pouco difundida, sem tablets e smartphones e  muito menos redes sociais! rs

Por mais que já tenha atuado em outras áreas de trabalho ainda não consegui abandonar a vida de desenvolvedor. Mesmo não sendo um dos melhores programadores, é a função que mais gosto de trabalhar.

Iniciei minha participação na comunidade de Dynamics em 2010, comecei nos fóruns MSDN e TechNet. Hoje em dia dedico todo o meu tempo neste blog!

Tenho a enorme honra de ter sido um Microsoft MVP (Most Valuable Professional) na categoria Business Applications para o produto Dynamics 365 Customer Engagement (CE), sendo premiado desde 2012 até 2022.

No meu tempo livre gosto muito de cozinhar, fazer trilhas, assistir séries e filmes e quando possível viajar!

[]’s,

Tiago Cardoso


Hello, thank you for accessing this blog!

A little about blog’s author…

I have been working with IT since 2006, almost of this time, I was working with Microsoft Dynamics CRM/365 as a source of solutions. I graduated in Bachelor of Information Systems at FIAP (Faculdade de Informatica e Administracao Paulista) in 2012.

I really love what I do! Technology has been my interest since always. Even in a world too different of the current one, when we haven’t had the internet, tablets, smartphones and social networks!

Although I have worked in some different roles, I can’t give up “the developer’s life”. Even knowing that I’m still so far of the greatest developers. Development is the thing that I love to do!

I started my contributions with the Microsoft Dynamics community in 2010. At the beginning, I used to help at MSDN and TechNet forums. But now, I’m fully dedicated to this blog!

During 10 years, I had the enormous honor of being a Microsoft MVP (Most Valuable Professional) for Microsoft Business Applications (Dynamics 365 CE).

In my free time. I like to cook, do some hiking, watch movies/series and when it’s possible, travel!

Cheers,

Tiago Cardoso

50 comentários em “Sobre/About

  1. Olá Tiago, tudo jóia? Encontrei seu blog através do MSDN. Estou iniciando com o CRM Dynamics e tenho um probleminha para resolver, veja só, ao desbloquear o Fluxo de Emails de entrada e saída no configurador o usuário recebe todo histórico de mensagens que foram disparadas enquanto a sua conta estava configurada para não receber emails. Como faço para que isso o usuário não receba todos esses emails??? A versão que utilizamos aqui na empresa é a 4. Abraço e desde já muito obrigado!

    Curtir

    1. João,

      Obrigado pela visita.

      Terá que excluir todos os e-mails do usuário que estão com a razão do status igual à “Envio Pendente”, assim quando ativar os e-mail não terá nada parado. Por padrão o CRM mantém os e-mails para que futuramente sejam enviados.

      Recomendo que quando tiver dúvidas continue utilizando o MSDN, pois lá o seu tempo de resposta seria mais rápido, além de que outras pessoas podem lhe ajudar.

      Att,
      Tiago Cardoso

      Curtir

  2. Tiago boa tarde. Parabéns pelo blog, esse sem dúvida é o melhor canal pra MS CRM. Bom, estou iniciando a utilizar o MS CRM e surgiram muitas dúvidas BÁSICAS, que nem vou relacioná-las aqui. Queria saber se vc conhece um bom treinamento para esse fim ou se vc mesmo faria esse trabalho. Abs Mauro.

    Curtir

  3. Tiago Cardoso, sou totalmente novato na área. Quais seriam os passos ideiais para saber programar no Dynamics?
    Estou com seguinte problema na plataforma ao criar um novo contato.

    phone_call_created_update_contactplugin error? CreateDYnamicEntity: Server was unable to process request. The date-time format is invalid or value is outside the supported range.

    Curtir

    1. Luiz,

      O SDK do Dynamics é realmente o começo, precisamos é claro saber um pouco de C# e JScript, mas o SDK possui os modelos de como devemos desenvolver. Este seu erro está relacionado ao tipo de dado que está inserindo em um campo date, verifique os valores que está setando.

      []’s,
      Tiago Cardoso

      Curtir

  4. Tiago! Boa tarde.
    Estou necessitando contratar um profissional de pleno para sênior em CRM. A oportunidade é boa com um futuro promissor.
    Desculpe colocar essa informação aqui, mas achei que seria a melhor forma de achar alguém falando com quem esta no meio, o famoso “QI”.
    Se souber de alguém ou se interessar a empresa fica em São Paulo no CENESP.
    Grato,

    Curtir

  5. Olá Tiago, parabéns pelo Blog. Ficaram muito bons os posts sobre processos. Estava procurando informação sobre como criar um workflow que possa criar uma fatura a partir de um contrato, inclusive gerando as linhas da fatura de acordo com as linhas do contrato. Vi uma resposta sua no Technet informando que na versão 2011 isso não era possível e queria saber se agora na versão 2013 (uso online) há esse recurso. Obrigada!

    Curtir

  6. Tiago boa tarde,

    Gostaria de te fazer uma pergunta a qual não encontrei resposta em minhas pesquisas no google, você sabe me informar se o CRM Online tem algum limite de processamento para workflows em execução ou algo do genero ? Minhas pergunta se da devido ao seguinte cenário:

    Tenho um fluxo de trabalho customizado que é invocado para N (no meu teste rodei para 5000) registros (via ExecuteMultipleRequest), ocorre que para a maioria dos registros o fluxo termina com sucesso, porém para alguns outros o fluxo fica com status “waiting” e com uma exception (generica) quando detalho a execução do fluxo, e quando eu mando os fluxos continuarem eles rodam normalmente,

    resumindo, coloco 5 mil fluxos para rodar, 4849 por exemplo, rodam com sucesso. Os outros 151 permanecem aguardando até que eu mande eles continuarem.

    Sabe me ajudar? procurei material especifico de limitações de crm online devido ao sandbox mas não encontrei. Obrigado

    Curtir

      1. Tiago,

        Preciso criar registros em determinada entidade no CRM para um lead e para a criação desses registros busco informações no CRM de outras entidades relacionadas. Preciso realizar esse processo para varios leads, dessa forma quando eu executava o fluxo acontecia um timeout, pois eu fazia um foreach nos leads e atualizava cada lead dessa forma service.update(lead), pesquisei e vi que cada fluxo customizado pode gastar no máximo 2 minutos, dessa forma procurei outras soluções para criar registros em uma entidade de forma mais performatica, ai encontrei essa classe ExecuteMultipleRequest que resolveu meu problema. O meu problema agora é que um dos meus fluxos faz uma requisição através do ExecuteMultipleRequest para acionar workflows do CRM, e esse workflow acionado é outro fluxo customizado que uma das coisas que faz é um bulk utilizando ExecuteMultipleRequest, de acordo com esse link que vc me mandou só podem ter 2 bulks rodando ao mesmo tempo, talvez pelo fato dos fluxos serem executados via bulk, e todos rodarem de uma vez, pode acontecer de todos acionarem seus respectivos bulks e ultrapassar o limite que o CRM aguenta, porém ainda não sei como resolver esse problema, o ideal para mim acredito que seria alterar as configurações da minha organização para aumentar o limite de bulks paralelos ou aumentar a quantidade de registros que posso atualizar/criar via bulk(ExecuteMultipleRequest). Deu pra entender mais ou menos? Obrigado

        Curtir

      2. Henrique,

        Entendi seu problema, por que não separa esta atividade em um processo de ETL? O volume é grande e não terá performance, além dos limites do CRM Online, eu pensaria em ter um serviço (ex: Integration Services) para fazer as consultas X vezes ao dia e criar os registros. Tire de seu front esta lógica, coloque em algo apartado. Você chegou neste ponto provavelmente devido a um problema de arquitetura, pois se precisa consolidar tanta informação, significa que esta está mal distribuída, cabe pensar em ajustar sua estrutura para agrupar as informações desde sua origem.

        []’s,
        Tiago Cardoso

        Curtir

  7. Tiago,

    Acredito que você esteja certo, provavelmente a arquitetura da solução não foi muito bem pensada no momento da criação, no entanto, agora é inviavel alterar ela. Então, eu pensei em fazer isso mesmo, criar um serviço que seria responsável por realizar as regras dos fluxos customizados, eu pensei em fazer um serviço de filas, que ficaria em um servidor da empresa, e que essa aplicação gerenciaria as requisições feitas a ele da mesma forma que os trabalhos do sistema fazem, só que sem as limitações do CRM, no entanto para fazer isso, eu abro mão de alguns detalhes por exemplo, todos os fluxos customizados que enviassem uma requisição para essa aplicação terminariam com exito, sendo que a regra pode ainda nem ter sido executada, pois a mesma é gerenciada pela aplicação externa, a além disso, precisaria entrar em sprint como uma nova historia a ser desenvolvida e acabaria gastando mais tempo do que deveria, por razões processuais. Infelizmente acho que vou acabar tendo que ir para essa solução mesmo. Obrigado pelas respostas, a propósito, vc me recomendaria algum livro ou estudo mais aprofundado sobre crm online? tenho o Microsoft Dynamics CRM 2011 Unleashed mas ele é muito focado no on premise.

    Curtir

    1. Henrique,

      Eu não utilizaria os workflows para fazer o que precisa, use um serviço (ETL/Windows Service) que é “schedulado” para executar sua lógica de agrupamento, no final do processo você pode chamar um workflow ou ter uma entidade para logar que a lógica foi concluída.

      Realmente não tenho nenhum livro dedicado a CRM Online, embora existam algumas diferenças são muito poucas, poderia usar o The CRM Field Guide é excelente! Lembre-se esta sua situação é enterprise precisa de uma solução “parruda” não daria para fazer algo simples para resolver algo massivo.

      []’s,
      Tiago Cardoso

      Curtir

  8. Olá Tiago!
    Também sou nova no desenvolvimento para o Dynamics,
    estou pesquisando muitos sobre como começar e encontrei seu site e suas contribuições no MSDN.
    Tenho conhecimento em C# e já instalei a SDK do Dynamics, mas ainda estou um pouco perdida, preciso customizar todo o CRM: cores, fontes, navegação…
    Você sabe se isso tudo é possível?
    Você teria alguma dica, algum link que possa ajudar?

    Obrigada!

    Curtir

    1. Boa tarde Alessandra,

      O Dynamics CRM como sabe é um produto assim não poderá realizar alguns coisas que pode fazer com o C#, exemplo disso seria Cores e Fontes, a plataforma possui o seu padrão e temos que usá-lo. Porém, caso precise estender funcionalidades poderá ter uma maior autonomia, pode criar páginas em HTML + JS que são armazenadas dentro do CRM, construir um portal web que faz uso do SDK do CRM para armazenar/consultar informações, integrar com outras aplicações ou serviços e por ai vai…

      Já a navegação, você poderia utilizar a funcionalidade de Fluxos de Trabalho, eles orientam a navegação em tela, já escrevi um pouco sobre:

      https://tiagomcardoso.wordpress.com/2013/12/12/crm-2013-processos-fluxo-de-trabalho/

      Mas o SDK ainda é a melhor maneira de aprender…

      []’s,
      Tiago Cardoso

      Curtir

  9. Oi Tiago tudo joia!?

    Realmente seu blog é sensacional e nos orienta bastante ….

    Preciso de uma ajuda….. estou trabalhando com o Dynamics CRM Online e curiosamente em uma atividade (de qualquer tipo) não é possivel converte-la em oportunidade ou ocorrencia….na versão On Premises esta funcionalidade gera/converte normalmente um registro de Oportunidade/Ocorrencia a partir de uma atividade, mas estranhamente na versão Online nada acontece, clico no botão “Converter em” seleciono “Oportunidade” ou “Ocorrencia” e nada acontece…. Testei em outro ambiente Online e tbm não converteu…. Existe alguma parametrização? Verifiquei em Configurações do Sistema e não tem nenhum parametro para esta funcionalidade….

    Obrigado, abs!!!

    Curtir

    1. Olá Evandro,

      Muito obrigado pelas palavras! Espero sempre ajudar!

      Eu acabei de criar um CRM Online para fazer o mesmo teste que você fez, e sim, tive o mesmo problema. Estou tentando localizar mis informações para ter certeza que é um bug. Te aviso sobre qualquer novidade.

      Percebi que funciona quando damos um F5 ou reabrimos o registro, pode ser um contorno para vc, por enquanto.

      []’s,
      Tiago Cardoso

      Curtir

  10. Olá Tiago, cara….

    CRM On-Line

    Em “Proposta” é possível gerar um modelo de word e exporta-lo com os dados que você mapear.

    Tendo isso como base, o processo de exportação é possível, ver algum código fonte de como esse processo rola? Como ele gera esse Word no final.

    Eu gostaria de customizar esse processo para gerar um pdf.

    Pode me ajudar?

    Curtir

  11. Olá Tiago,

    Gostaria de saber se você já conseguiu debuggar plugins no crm 2016, estou tentando mas na hora de fazer o attach do “Profile” (que é o erro em .txt) já da erro.

    Curtir

  12. Bom dia Tiago,
    Sou nova nesta area.
    Na verdade estou estudando em casa e farei a proxima academia que houver de crm 2016.

    Queria te perguntar se existe algum documento que diga o passo a passo de configuração num projeto simples de vendas por exemplo.

    Algo que diga ao menos que opçoes de menu deveriam no minimo ser configuradas.

    caminhos de menu + explicacao

    Obrigada

    Rafaela

    Curtir

  13. Jogo rápido. É possível criar um registro com um status específico, ou só possível definir um status após a criação, utilizando o SetState?

    Curtir

  14. HI,

    I found your comment on an article about creating a new phone call with USD and i would like to get your exemple of the RunXrmCommand that you used to work with the “to” field!!

    Thanks in advance.

    Curtir

  15. Olá Thiago,

    Tenho uma dúvida. Eu consigo desabilitar a localização avançada por direitos de acesso? Caso não seja possível, eu consigo desativar o botão “Resultados”? Gostaria de realizar esta solução para o cliente de form nativa, pois não sou desenvolvedor e o ambiente do cliente é online.

    Agradeço desde já.

    Att.,

    Rodrigo

    Curtir

  16. Ola Thiago,

    estou iniciando com customizações para Dynamics CRM.
    Preciso criar um Plugin que acesse um API que me devolve o resultado em JSON e eu consiga realizar update na entidade de Incident. Infelizmente, não encontrei nada sobre isso.

    Teria algum material para me indicar?

    Obrigada!

    Curtir

    1. Ola Debora,

      Quando voce diz API, esta falando da API do proprio CRM? Se sim, voce nao precisa fazer todo o processo que descreveu. Dentro de um plugin do CRM, voce consegue acessar seu contexto (o que foi informado no formulario), bem como, acionar metodos do proprio CRM, como no seu caso um Update.

      Pense da seguinte maneira… O que deve acontecer para que o incidente seja alterado? Isso sera o gatilho da execucao de seu plugin, depois, dentro do plugin use o contexto ou consulte o incidente que deseja alterar e faca o update.

      Veja se era isso que precisava, qualquer coisa volte aqui 🙂

      []’s,
      Tiago

      Curtir

      1. Ola Tiago,

        desculpa, acha que não descrevi certo o que precisava. Preciso consumir uma api externa de um sistema terceiro, que utiliza autenticação com token e retorna um Json para assim realizar o update no Incident.

        Muito Obrigada pela atenção!

        Curtir

  17. Hi Tiago, do you use any library to do the mapping of the early bound entities to the POCOS entities? If yes, which library. If no, how do you handle this? Thank you
    Regards,
    Henrique

    Curtir

    1. Hi Henrique, so I have never used it. Even thought Early Bound generates an exact copy of CRM entities as a c# class. It used to be enough for any project/development. I’ve already created new classes to help me with some abstraction, but nothing too complex. I found this library: https://crmcodegenerator.codeplex.com/documentation. Maybe it can help you. I’m curious… Why do you need this level of abstraction?

      []’s,
      Tiago

      Curtir

      1. I have a WCF service that will serve as a hub that will allow multiple other projects to request and receive data from CRM. The WCF service is the only project that have references to the CRM sdk. Other projects are just clients of this one. With this in mind I figure that will not be a good idea to work directly with crm generated entities for serialization reasons, so I figure that I should use DTOs to transfer the data to the client projects, and then this doubt comes to me, what should I use to map crm entities to DTOs object? , or, should I create POCOS classes? If so, how I will map one to another. Make sense for you? Thanks

        Curtir

      2. Hi Henrique, I got your point… For me, your idea makes sense at all. I have done it before. However, as I said before. I haven’t used any library for it. I created some VO’s that I believe is the same idea of DTO’s, right? Basically, it creates another layer of abstraction between WCF and CRM. Thereby all consumer of WCF don’t need to care about CRM DLL’s…
        I think that I created 5 to 8 VO’s, each one with approximately 10 to 15 properties. You can see… Nothing too complicated. If you intend to extend the whole CRM or many entities/fields. You should use library to optimise your development.

        []’s,
        Tiago

        Curtir

  18. Olá Tiago, primeiramente parabéns pelo blog você é um dos pouco(que eu conheço atualmente o único) que escreve sobre dynamics por aqui. E tenho uma sugestão de assunto, que raramente é abordado, que é a migração, do on premise pro on line e vice e versa, eu tinha começado um projeto para tal, mas acabei parando, a ferramenta de migração da microsoft (O Data Migration) não foi feita para migração completa (foi isso que eu ouvi dos engenheiros no suporte) e quando ela é ruim, útil para poucos dados e que sejam simples (sem muitos relacionamentos), atualmente a microsoft dispoe de alguma ferramenta, ou a unica forma é na mão ?, se existem empresas que tem ferramentas para tal e etc

    Curtir

  19. Olá Tiago!

    Sou certificado em Dynamics CRM e estou estudando para tirar a certificação a certificação MB-220, Dynamics 365 for Marketing.
    Você sabe como está o mercado nacional para essa solução?
    Pelo que eu pesquisei, Salesforce Marketing Cloud domina o mercado?

    Desde já agradeço

    Marco

    Curtir

    1. Ola Marco,
      Eu nao sei dizer como esta a demanda de Microsoft Marketing no Brasil, eu nao moro ai quase 5 anos ja. O que posso dizer eh que ele eh mais voltado para medias e grande empresas, pois para empresas menores o custo beneficio nao costuma ser bom, para isso usamos muito aqui o ClickDimensions eh o lider em marketing para Dynamics.
      Provavelmente o que vc disse sobre a Salesforce deva ser correto, porem no mundo Dynamics estas sao as opcoes no momento.
      Atenciosamente,
      Tiago

      Curtido por 1 pessoa

Deixar mensagem para Tiago Michelini Cardoso Cancelar resposta

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