none
CRM 2011 - Campo money formatação errada RRS feed

  • Pergunta

  • Pessoal,

    tenho um serviço windows q fica de tempo em tempo lendo um diretório para integrar dados ao crm 2011 que contém arquivos testes onde um dos valores está assim:

    3650,10

    quando realizo a integração ou seja, rodo o código q este windows services roda, chamando por um console application local fica certinho o valor, porém lá no servidor fica com formato errado.

    O que eu ja fiz:

    mexi nas configurações regionais da maquina colocando para portugues brasil pois o windows é em inglês, ajustei o formato do money e também no crm 2011 na opção q trata isto.

    também já coloquei no codigo valor.replace(".",",");

    o que mais deve ser feito?

    veja imagem abaixo com o comparativo.

    quarta-feira, 8 de agosto de 2012 18:00

Respostas

  • Edilson,

    Ajuste as configurações regionais do seu server para serem iguais da sua máquina, ou para não ficar se preocupando com isso, ajuste o algoritmo para ler as informações regionais e se adaptar.

    Att,


    Tiago Michelini Cardoso MVP - MCC - MCTS
    https://tiagomcardoso.wordpress.com/

    quinta-feira, 9 de agosto de 2012 14:04
    Moderador
  • Edilson, como o Tiago falou depende da configuração do seu servidor.

    mas se quiser testar substitua o ponto por nada e depois usa o valor resultante dividindo por 100.

    Exemplo:

    string teste  = "100.23";

    invoicedetail.Attributes["priceperunit"] = new Money(Decimal.Parse(teste.Replace(".", "")) / 100);

    ou voce pode usar as classes de localizacao e fazer da maneira que o Tiago comentou. pegar a localizacao do servidor crm e onverter o valor para a localizacao correta, veja estes exemplo http://msdn.microsoft.com/en-us/goglobal/bb688126.aspx 


    Atenciosamente,
    Rodrigo Hentz - MCP.MCPS.MCNPS.MCTS.MBSS.MBSP.MCITP
    Profile
    Blog


    terça-feira, 21 de agosto de 2012 16:34
    Moderador

Todas as Respostas

  • Edilson,

    Ajuste as configurações regionais do seu server para serem iguais da sua máquina, ou para não ficar se preocupando com isso, ajuste o algoritmo para ler as informações regionais e se adaptar.

    Att,


    Tiago Michelini Cardoso MVP - MCC - MCTS
    https://tiagomcardoso.wordpress.com/

    quinta-feira, 9 de agosto de 2012 14:04
    Moderador
  • Você está usando o mesmo usuário nas duas maquinas?  se sua resposta for não , verifique as configurações do usuário no crm. um pode estar com virgula para separador de milhar e o outro com ponto.

    Tiago Henrique Consultor de Implantação

    terça-feira, 21 de agosto de 2012 14:53
  • Edilson, como o Tiago falou depende da configuração do seu servidor.

    mas se quiser testar substitua o ponto por nada e depois usa o valor resultante dividindo por 100.

    Exemplo:

    string teste  = "100.23";

    invoicedetail.Attributes["priceperunit"] = new Money(Decimal.Parse(teste.Replace(".", "")) / 100);

    ou voce pode usar as classes de localizacao e fazer da maneira que o Tiago comentou. pegar a localizacao do servidor crm e onverter o valor para a localizacao correta, veja estes exemplo http://msdn.microsoft.com/en-us/goglobal/bb688126.aspx 


    Atenciosamente,
    Rodrigo Hentz - MCP.MCPS.MCNPS.MCTS.MBSS.MBSP.MCITP
    Profile
    Blog


    terça-feira, 21 de agosto de 2012 16:34
    Moderador