none
Time Zone no CRM 2011 Online RRS feed

  • Pergunta

  • Pessoal,

    Estou fazendo uma importação de dados para o CRM Online e estou tendo problemas com Time Zone. Tenho um assembly aqui que recebe alguns timestamps como parâmetro no formato string (dd/mm/yyyy hh:mm:ss), após receber estas informações, dentro do assembly faço a conversão para DateTime usando DateTime.Parse() e atribuo estes valores aos meus campos personalizados no CRM.

    Após a gravação, notei que o CRM está somando mais 4 horas (exatas) em cada campo. Já verifiquei as configurações de fuso horário, está utilizando (GMT-03:00) Brasilia, Idioma Português Brasil.

    A impressão que estou tendo é de que o CRM está utilizando um time zone do local onde está rodando.

    No caso da importação, existe como forçar um Time Zone via código (C#) ou alguma outra coisa a fazer para resolver este problema? 

    Obrigado

    Marcos

    quinta-feira, 21 de julho de 2011 19:21

Respostas

  • Thiago,

    Encontrei uma solução para o problema. Não sei se é a mais correta mas está funcionando neste momento.

    Utilizei a classe TimeZoneInfo com o método ConvertTimeToUtc() informando a data/hora e também o Time Zone local, desta forma o CRM aceitou todas as datas sem problema.

    TimeZoneInfo.ConvertTimeToUtc(DataHora, timeZone);
    

    Marcos

    segunda-feira, 25 de julho de 2011 20:26

Todas as Respostas

  • Vendo este link:

    http://blogs.msdn.com/b/emeadcrmsupport/archive/2011/05/04/crm-2011-online-the-date-and-or-time-is-incorrect-on-newly-created-or-imported-records.aspx

    Creio que seja um problema mesmo, poderá resolvê-lo através de plugin ou workflow, sendo o workflow o mais simples porém pode "destroir" a performance de seu servidor caso sejam milhares de registros. Você pegaria todas as datas e diminuiria a quantidade de horas.

     

    Att,


    Tiago Michelini Cardoso MCTS - MCC
    sexta-feira, 22 de julho de 2011 17:39
    Moderador
  • Thiago,

    Eu também pensei em fazer isso inicialmente, mas acho que isso não é uma boa coisa a se fazer, tem um "cheiro" de gambiarra :( . O ideal seria uma forma de alterar o Time Zone programaticamente deixando o restante com o CRM Online.

    Sei que é possível recuperar todos os Time Zone existentes no CRM pois fiz isso em um teste aqui, o problema é alterar este bendito Time Zone.

    Algo que esqueci de mencionar é que este problema só está acontecendo na importação de informações, quando os usuários estão trabalhando no CRM, tudo está correto.

    Marcos

    sexta-feira, 22 de julho de 2011 18:23
  • Entendo sua preocupação Marcos, porém o próprio autor do link diz que é um problema.

    Realizei uma pesquisa e não encontrei nada em relação a alterar o time zone via programação, o time zone na verdade é só configurado usuário por usuário no CRM.

    Baixe o último rollup, quem sabe o problema foi sanado!

    Caso não dê certo... Para ficar um coisa mais profissional faça um plugin que toda vez que for inserido um registro ele altere as datas.

     

    Att,


    Tiago Michelini Cardoso MCTS - MCC
    sexta-feira, 22 de julho de 2011 18:48
    Moderador
  • Estou utilizando o CRM em servidores da Microsoft (Cloud), não tenho como fazer atualizações.

    Quanto a fazer esta alteração dos time stamps posso fazer nas rotinas de importação mesmo, sem a necessidade de criar um Plugin ou um Workflow, já que não existe outra alternativa.

     

    Por acaso você sabe se existe um canal de suporte para desenvolvedores CRM ?

    Marcos

     

    sexta-feira, 22 de julho de 2011 19:03
  • Desculpe, eu me esqueço do CRM Online... Então certamente já está com a última versão...

    Existe um canal sim, veja:

    http://support.microsoft.com/?ln=pt-br

     

    Att,


    Tiago Michelini Cardoso MCTS - MCC
    sexta-feira, 22 de julho de 2011 19:10
    Moderador
  • Thiago,

    Encontrei uma solução para o problema. Não sei se é a mais correta mas está funcionando neste momento.

    Utilizei a classe TimeZoneInfo com o método ConvertTimeToUtc() informando a data/hora e também o Time Zone local, desta forma o CRM aceitou todas as datas sem problema.

    TimeZoneInfo.ConvertTimeToUtc(DataHora, timeZone);
    

    Marcos

    segunda-feira, 25 de julho de 2011 20:26