Usecomforexcelexport


Importação e exportação para o Office no GP 2017 Eles usaram o Orçamento baseado em Excel no GP 2018 com êxito 8211 principalmente para importar os orçamentos existentes com base em suas planilhas existentes. O que foi bem sucedido no GP 2018, wasn8217t trabalhando no GP 2017 8211 especificamente células que foram baseadas em fórmulas não estavam entrando corretamente como fizeram no GP 2018. Após um pouco de experimentação, descobrimos que uma fórmula como The reason is that the O código interpretou a fórmula como a quantidade literal. O 822018221 vem do cálculo da primeira célula em 8220D18221. Alterar a fórmula para D3D2D1 resultou em um valor de 3.00, de modo que parecia ser o padrão. Então, o que mudou entre as versões para fazer isso falhar dessa maneira, o que mudou e porque foi a mudança da Dynamics usando a automação COM do Excel para usar o SDK OpenXML para o Microsoft Office. Nas versões anteriores do exportador de importação de Dynamics 8211 para aplicativos do Office (Excel neste exemplo) é realizado usando chamadas COM originais para o Excel usando Dexterity. Isso funcionou muito bem em várias versões do Dynamics e Excel, então por que a mudança no GP 2017. O maior motivo 8211 é provavelmente o único 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 compatível com uma UI e também afetará objetos que são instanciados pelo tempo de execução. 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 substituídos. O ISV estava usando código semelhante a: o qual selecionará o conteúdo do documento do Word. Sob o cliente de desktop, isso funcionou bem (como nas versões anteriores do Dynamics GP). Mas sob o cliente web, isso lança uma exceção. O documento abre bem e outras chamadas de método funcionaram, este método não. Então, a questão é 8211 é o cliente preso. Como se mostra, parece que conseguimos encontrar uma solução para eles. Ao revisar o código, percebi que havia uma verificação 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 não é testado ou suportado, use por sua conta e risco, sua milhagem pode variar. Usar esta opção no cliente da Web também pode violar seu contrato de licenciamento para o MS WordExcel. Nós adicionamos a opção Dex. ini: Isso indica ao GP para usar as rotinas COM antigas para o Import Export Export ao invés de usar as rotinas do OpenKML SDK. Não investigue totalmente o aplicativo inteiro, mas do que eu poderia dizer é que isso afetou as rotinas de exportação de amplificação de importação comuns, o que significa que afetaria a exportação do SmartList, bem como o Orçamento baseado em Excel. Depois de fazer essa alteração (e reiniciar o GP), a importação do orçamento 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 informação da moeda estava agora formatada com símbolos. GP 2017 agora importa exportações para o Excel usando o SDK OpenXML O método OpenXML SDK é muito mais rápido do que usar a exportação COM usando o OpenKML SDK perde a formatação de moeda, pois o campo é exportado como uma casa decimal e não em moeda. Usar o SDK OpenXML significa que o Excel (ou o Word) não precisa mais ser instalado na máquina para reescrever os arquivos. Patrick Senior Escalation Engineer, GP PS: I8217ll mencioná-lo novamente: Aviso: Este é um interruptor Ini indocumentado. Seu uso não é testado ou suportado, use por sua conta e risco, sua milhagem pode variar. Usar esta opção no cliente da Web também pode violar seu contrato de licenciamento para o MS WordExcel. Eles usaram o Orçamento baseado em Excel no GP 2018 com sucesso - principalmente para importar os orçamentos existentes com base em suas planilhas existentes. O que foi bem sucedido no GP 2018, não estava funcionando no GP 2017 - especificamente as células baseadas em fórmulas não estavam entrando corretamente como fizeram no GP 2018. Após um pouco de experimentação, descobrimos que uma fórmula como o motivo é que a O código interpretou a fórmula como a quantidade literal. O 1 vem do primeiro cálculo de célula em D1. Alterar a fórmula para D3D2D1 resultou em um valor de 3.00, de modo que parecia ser o padrão. Então, o que mudou entre as versões para fazer isso falhar dessa maneira, o que mudou e porque foi a mudança da Dynamics usando a automação COM do Excel para usar o SDK OpenXML para o Microsoft Office. Em versões anteriores do Dynamics - exportar importação de importação para aplicativos do Office (Excel neste exemplo) é realizado usando chamadas COM nativas para o Excel usando Dexterity. Isso funcionou muito bem em várias versões do Dynamics e Excel, então por que a mudança no GP 2017. O maior motivo - provavelmente o único motivo - é para o Microsoft Dynamics GP Web Client. Do ponto de vista do Cliente Web, o COM não é suportado (mas ainda pode funcionar) pela Microsoft como o funcionamento do cliente na Web não é compatível com uma IU e também afetará objetos que são instanciados pelo tempo de execução. 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 substituídos. O ISV estava usando código semelhante a: o qual selecionará o conteúdo do documento do Word. Sob o cliente de desktop, isso funcionou bem (como nas versões anteriores do Dynamics GP). Mas sob o cliente web, isso lança uma exceção. O documento abre bem e outras chamadas de método funcionaram, este método não. Então, a questão é: o cliente está preso. Como se mostra, parece que conseguimos encontrar uma solução para eles. Ao revisar o código, notei que havia um cheque que não 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 não é testado ou suportado, use por sua conta e risco, sua milhagem pode variar. Usar esta opção no cliente da Web também pode violar seu contrato de licenciamento para o MS WordExcel. Nós adicionamos a opção Dex. ini: Isso indica ao GP para usar as rotinas COM antigas para o Import Export Export ao invés de usar as rotinas do OpenKML SDK. Eu não investigue totalmente o aplicativo inteiro, mas do que eu poderia dizer é que isso afetou as rotinas de exportação de amplificação de importação comuns, o que significa que afetaria a exportação do SmartList, bem como o Orçamento baseado em Excel. Depois de fazer essa alteração (e reiniciar o GP), a importação do orçamento 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 informação da moeda estava agora formatada com símbolos. GP 2017 agora importa exportações para o Excel usando o SDK OpenXML O método OpenXML SDK é muito mais rápido do que usar a exportação COM usando o OpenKML SDK perde a formatação de moeda, pois o campo é exportado como uma casa decimal e não em moeda. Usar o SDK OpenXML significa que o Excel (ou o Word) não precisa mais ser instalado na máquina para reescrever os arquivos. Patrick Senior Escalation Engineer, GP PS: Vou mencionar novamente: Aviso: trata-se de um interruptor Ini indocumentado. Seu uso não é testado ou suportado, use por sua conta e risco, sua milhagem pode variar. Usar esta opção no cliente da Web também pode violar seu contrato de licenciamento para o MS WordExcel.

Comments

Popular Posts