Usecomforexcelexport




UsecomforexcelexportImportacao e exportacao para o Office no GP 2013 Eles usaram o Orcamento baseado em Excel no GP 2010 com exito 8211 principalmente para importar os orcamentos existentes com base em suas planilhas existentes. O que foi bem sucedido no GP 2010, wasn8217t trabalhando no GP 2013 8211 especificamente celulas que foram baseadas em formulas nao estavam entrando corretamente como fizeram no GP 2010. Apos um pouco de experimentacao, descobrimos que uma formula como The reason is that the O codigo interpretou a formula como a quantidade literal. O 822018221 vem do calculo da primeira celula em 8220D18221. Alterar a formula para D3D2D1 resultou em um valor de 3.00, de modo que parecia ser o padrao. Entao, o que mudou entre as versoes para fazer isso falhar dessa maneira, o que mudou e porque foi a mudanca da Dynamics usando a automacao COM do Excel para usar o SDK OpenXML para o Microsoft Office. Nas versoes anteriores do exportador de importacao de Dynamics 8211 para aplicativos do Office (Excel neste exemplo) e realizado usando chamadas COM originais para o Excel usando Dexterity. Isso funcionou muito bem em varias versoes do Dynamics e Excel, entao por que a mudanca no GP 2013. O maior motivo 8211 e provavelmente o unico motivo 8211 para o Microsoft Dynamics GP Web Client. Do ponto de vista do Cliente Web, o COM isn8217t suportou (mas pode ainda funcionar) pela Microsoft como o funcionamento do cliente da Web isn8217t compativel com uma UI e tambem afetara objetos que sao instanciados pelo tempo de execucao. Como acontece, acabamos de ter um caso hoje onde um ISV ??estava automatizando o Microsoft Word. O objeto era abrir um Word existente e, em seguida, substituir 8220tags8221 no documento com valores substituidos. O ISV estava usando codigo semelhante a: o qual selecionara o conteudo do documento do Word. Sob o cliente de desktop, isso funcionou bem (como nas versoes anteriores do Dynamics GP). Mas sob o cliente web, isso lanca uma excecao. O documento abre bem e outras chamadas de metodo funcionaram, este metodo nao. Entao, a questao e 8211 e o cliente preso. Como se mostra, parece que conseguimos encontrar uma solucao para eles. Ao revisar o codigo, percebi que havia uma verificacao 8220if8221 que didn8217t chamava as rotinas OpenXML. Intrigado, pesquisei mais e encontrei o que parece ser um interruptor Dex. ini indocumentado que afeta esse comportamento. Aviso: trata-se de um interruptor Ini indocumentado. Seu uso nao e testado ou suportado, use por sua conta e risco, sua milhagem pode variar. Usar esta opcao no cliente da Web tambem pode violar seu contrato de licenciamento para o MS WordExcel. Nos adicionamos a opcao Dex. ini: Isso indica ao GP para usar as rotinas COM antigas para o Import Export Export ao inves de usar as rotinas do OpenKML SDK. Nao investigue totalmente o aplicativo inteiro, mas do que eu poderia dizer e que isso afetou as rotinas de exportacao de amplificacao de importacao comuns, o que significa que afetaria a exportacao do SmartList, bem como o Orcamento baseado em Excel. Depois de fazer essa alteracao (e reiniciar o GP), a importacao do orcamento do Excel funcionou como esperado. Como teste, exportamos uma GL Transaction SmartList. Existiu, mas percebemos que era mais lento do que o normal e a informacao da moeda estava agora formatada com simbolos. GP 2013 agora importa exportacoes para o Excel usando o SDK OpenXML O metodo OpenXML SDK e muito mais rapido do que usar a exportacao COM usando o OpenKML SDK perde a formatacao de moeda, pois o campo e exportado como uma casa decimal e nao em moeda. Usar o SDK OpenXML significa que o Excel (ou o Word) nao precisa mais ser instalado na maquina para reescrever os arquivos. Patrick Senior Escalation Engineer, GP PS: I8217ll menciona-lo novamente: Aviso: Este e um interruptor Ini indocumentado. Seu uso nao e testado ou suportado, use por sua conta e risco, sua milhagem pode variar. Usar esta opcao no cliente da Web tambem pode violar seu contrato de licenciamento para o MS WordExcel. Eles usaram o Orcamento baseado em Excel no GP 2010 com sucesso - principalmente para importar os orcamentos existentes com base em suas planilhas existentes. O que foi bem sucedido no GP 2010, nao estava funcionando no GP 2013 - especificamente as celulas baseadas em formulas nao estavam entrando corretamente como fizeram no GP 2010. Apos um pouco de experimentacao, descobrimos que uma formula como o motivo e que a O codigo interpretou a formula como a quantidade literal. O 1 vem do primeiro calculo de celula em D1. Alterar a formula para D3D2D1 resultou em um valor de 3.00, de modo que parecia ser o padrao. Entao, o que mudou entre as versoes para fazer isso falhar dessa maneira, o que mudou e porque foi a mudanca da Dynamics usando a automacao COM do Excel para usar o SDK OpenXML para o Microsoft Office. Em versoes anteriores do Dynamics - exportar importacao de importacao para aplicativos do Office (Excel neste exemplo) e realizado usando chamadas COM nativas para o Excel usando Dexterity. Isso funcionou muito bem em varias versoes do Dynamics e Excel, entao por que a mudanca no GP 2013. O maior motivo - provavelmente o unico motivo - e para o Microsoft Dynamics GP Web Client. Do ponto de vista do Cliente Web, o COM nao e suportado (mas ainda pode funcionar) pela Microsoft como o funcionamento do cliente na Web nao e compativel com uma IU e tambem afetara objetos que sao instanciados pelo tempo de execucao. Como acontece, acabamos de ter um caso hoje onde um ISV ??estava automatizando o Microsoft Word. O objeto era abrir um Word existente e, em seguida, substituir tags no documento com valores substituidos. O ISV estava usando codigo semelhante a: o qual selecionara o conteudo do documento do Word. Sob o cliente de desktop, isso funcionou bem (como nas versoes anteriores do Dynamics GP). Mas sob o cliente web, isso lanca uma excecao. O documento abre bem e outras chamadas de metodo funcionaram, este metodo nao. Entao, a questao e: o cliente esta preso. Como se mostra, parece que conseguimos encontrar uma solucao para eles. Ao revisar o codigo, notei que havia um cheque que nao chamava as rotinas OpenXML. Intrigado, pesquisei mais e encontrei o que parece ser um interruptor Dex. ini indocumentado que afeta esse comportamento. Aviso: trata-se de um interruptor Ini indocumentado. Seu uso nao e testado ou suportado, use por sua conta e risco, sua milhagem pode variar. Usar esta opcao no cliente da Web tambem pode violar seu contrato de licenciamento para o MS WordExcel. Nos adicionamos a opcao Dex. ini: Isso indica ao GP para usar as rotinas COM antigas para o Import Export Export ao inves de usar as rotinas do OpenKML SDK. Eu nao investigue totalmente o aplicativo inteiro, mas do que eu poderia dizer e que isso afetou as rotinas de exportacao de amplificacao de importacao comuns, o que significa que afetaria a exportacao do SmartList, bem como o Orcamento baseado em Excel. Depois de fazer essa alteracao (e reiniciar o GP), a importacao do orcamento do Excel funcionou como esperado. Como teste, exportamos uma GL Transaction SmartList. Existiu, mas percebemos que era mais lento do que o normal e a informacao da moeda estava agora formatada com simbolos. GP 2013 agora importa exportacoes para o Excel usando o SDK OpenXML O metodo OpenXML SDK e muito mais rapido do que usar a exportacao COM usando o OpenKML SDK perde a formatacao de moeda, pois o campo e exportado como uma casa decimal e nao em moeda. Usar o SDK OpenXML significa que o Excel (ou o Word) nao precisa mais ser instalado na maquina para reescrever os arquivos. Patrick Senior Escalation Engineer, GP PS: Vou mencionar novamente: Aviso: trata-se de um interruptor Ini indocumentado. Seu uso nao e testado ou suportado, use por sua conta e risco, sua milhagem pode variar. Usar esta opcao no cliente da Web tambem pode violar seu contrato de licenciamento para o MS WordExcel.