Importação e Exportação para o Office no GP 2013 Eles estavam usando o Excel Based Budgeting no GP 2010 com sucesso 8211 principalmente para importar / atualizar orçamentos existentes com base em suas planilhas existentes. O que foi bem sucedido no GP 2010, não estava trabalhando na GP 2013 8211 especificamente as células que foram baseadas em fórmulas não estavam chegando corretamente como fizeram na GP 2010. Depois de um pouco de experimentação, descobrimos que uma fórmula como A razão é que o código interpretou a fórmula como o valor literal. O 822018221 vem do primeiro cálculo da célula no 8220D18221. Alterar a fórmula para D3D2D1 resultou em um valor de 3,00, de modo que parecesse 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 do Dynamics usando automação COM do Excel para usar o SDK do OpenXML para o Microsoft Office. Nas versões anteriores do Dynamics 8211 importação exportação de amp para aplicativos do Office (Excel neste exemplo) é realizada usando chamadas COM nativo para o Excel usando Destreza. Isso funcionou muito bem em várias versões do Dynamics e Excel, então por que a mudança no GP 2013 A maior razão 8211 provavelmente é a única razão pela qual o 8211 é para o Microsoft Dynamics GP Web Client. Do ponto de vista do Web client, COM isn8217t suportado (mas ainda pode funcionar) pela Microsoft como o web client é executado isn8217t compatível com uma interface do usuário e também afetaria objetos que são instanciados pelo runtime. Acontece que só tivemos um caso hoje em que um ISV estava automatizando o Microsoft Word. O objeto era abrir um Word existente e substituir 8220tags8221 no documento por valores substitutos. O ISV estava usando código semelhante a: que 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 da web, isso gera uma exceção. O documento abre bem e outras chamadas de método funcionaram, este método não funcionou. Então a questão é 8211 é o cliente preso Como se constata, parece que fomos capazes de encontrar uma solução para eles. Ao revisar o código, notei que havia uma verificação 8220if8221 que não chamava as rotinas OpenXML. Intrigado, pesquisei mais e descobri o que parece ser um switch Dex. ini não documentado que afeta esse comportamento. Aviso: Este é um switch ini não documentado. Seu uso não é testado ou suportado, use a seu próprio risco, sua milhagem pode variar. O uso dessa opção no cliente da Web também pode violar seu contrato de licença para o MS Word / Excel. Adicionamos a opção Dex. ini: Isso diz ao GP para usar as rotinas antigas do COM para importar Exportação do amplificador em vez de usar as rotinas do OpenXML SDK. Eu não pesquisei completamente o aplicativo inteiro, mas pelo que eu poderia dizer é que isso afetou as rotinas comuns de importação e exportação, o que significa que isso afetaria a exportação de SmartList, assim como o orçamento baseado em Excel. Depois que fizemos essa alteração (e reiniciamos o GP), a importação do orçamento do Excel funcionou conforme o esperado. Como teste, exportamos um SmartList de Transação GL. Ele exportou, mas percebemos que era mais lento que o normal e que as informações sobre a moeda estavam formatadas com símbolos. GP 2013 agora importa / exporta para o Excel usando o SDK do OpenXML O método OpenXML SDK é muito mais rápido do que usar COM Exportar usando o OpenXML SDK perde a formatação da moeda como o campo é exportado como um decimal e não moeda. Usar o SDK do OpenXML significa que o Excel (ou o Word) não precisa mais ser instalado na máquina para ler / gravar nos arquivos. Patrick Sênior Escalation Engineer, GP PS: I8217Eu mencionarei novamente: Aviso: Este é um switch ini não documentado. Seu uso não é testado ou suportado, use a seu próprio risco, sua milhagem pode variar. O uso dessa opção no cliente da Web também pode violar seu contrato de licenciamento do MS Word / Excel. Eles vinham usando o Excel Based Budgeting no GP 2010 com êxito - principalmente para importar / atualizar orçamentos existentes com base em suas planilhas existentes. O que foi bem sucedido no GP 2010, não estava funcionando no GP 2013 - especificamente as células que foram baseadas em fórmulas não estavam chegando corretamente como fizeram na GP 2010. Depois de um pouco de experimentação, descobrimos que uma fórmula como A razão é que o código interpretou a fórmula como o valor literal. O 1 vem do primeiro cálculo da célula em D1. Alterar a fórmula para D3D2D1 resultou em um valor de 3,00, de modo que parecesse 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 do Dynamics usando automação COM do Excel para usar o SDK do OpenXML para o Microsoft Office. Em versões anteriores do Dynamics - importação de exportação de amp para aplicativos do Office (Excel neste exemplo) é realizada usando chamadas COM nativas para o Excel usando Destreza. Isso funcionou muito bem em várias versões do Dynamics e do Excel, então por que a mudança no GP 2013 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, pois a forma como o Web client é executado não é compatível com uma UI e também afeta objetos que são instanciados pelo tempo de execução. Acontece que só tivemos um caso hoje em que um ISV estava automatizando o Microsoft Word. O objeto era abrir um Word existente e substituir marcas no documento por valores substitutos. O ISV estava usando código semelhante a: que 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 da web, isso gera uma exceção. O documento abre bem e outras chamadas de método funcionaram, este método não funcionou. Então a questão é: o cliente está preso? Parece que conseguimos encontrar uma solução para eles. Ao revisar o código, notei que havia uma verificação if que não chamava as rotinas OpenXML. Intrigado, pesquisei mais e descobri o que parece ser um switch Dex. ini não documentado que afeta esse comportamento. Aviso: Este é um switch ini não documentado. Seu uso não é testado ou suportado, use a seu próprio risco, sua milhagem pode variar. O uso dessa opção no cliente da Web também pode violar seu contrato de licença para o MS Word / Excel. Adicionamos a opção Dex. ini: Isso diz ao GP para usar as rotinas antigas do COM para importar Exportação do amplificador em vez de usar as rotinas do OpenXML SDK. Eu não pesquisei completamente o aplicativo inteiro, mas pelo que eu poderia dizer é que isso afetou as rotinas comuns de importação e exportação, o que significa que isso afetaria a exportação de SmartList, bem como o orçamento baseado em Excel. Depois que fizemos essa alteração (e reiniciamos o GP), a importação do orçamento do Excel funcionou conforme o esperado. Como teste, exportamos um SmartList de Transação GL. Ele exportou, mas percebemos que era mais lento que o normal e que as informações sobre a moeda estavam formatadas com símbolos. GP 2013 agora importa / exporta para o Excel usando o SDK do OpenXML O método OpenXML SDK é muito mais rápido do que usar COM Exportar usando o OpenXML SDK perde a formatação da moeda como o campo é exportado como um decimal e não moeda. Usar o SDK do OpenXML significa que o Excel (ou o Word) não precisa mais ser instalado na máquina para ler / gravar nos arquivos. Patrick Senior Escalation Engenheiro, GP PS: Mencionarei novamente: Aviso: Este é um switch ini não documentado. Seu uso não é testado ou suportado, use a seu próprio risco, sua milhagem pode variar. O uso desse botão no cliente da Web também pode violar seu contrato de licenciamento para o MS Word / Excel. Você viu anúncios para um ldquoOne Stop Shoprdquo oferecendo tudo o que você precisa para lsquordquo (você preenche o espaço em branco) O termo ldquoOne Stop Shoprdquo veio à mente como Eu estava pensando sobre o tópico para este post. Eu tinha notado alguém postar alguns pontos para lembrar ao resolver problemas enquanto usava o recurso Copiar e Colar do Excel para o GL, mas depois de um pouco mais de pesquisa me deparei com ainda mais sugestões que achei que deviam estar na lista. Então, decidi compilar os dados de várias fontes diferentes em um artigo para minha referência e para o seu. Eu não vou tão longe a ponto de dizer que este é o seu balcão único para solucionar problemas com o recurso Copiar e Colar do Excel para GL, mas confio que será um ponto de referência útil. Etapas a serem seguidas ao abordar o Dynamics GP Copiar Colar de Amparo de Problemas do Excel Sempre posicione o cursor no campo da conta antes de colar a partir do Excel. Depois de colar a partir do Excel, se o seu cursor acabar em qualquer lugar que não seja o campo da conta em branco após os dados colados, exclua a linha bottom quotblankquot, porque ela parece estar em branco. Se o Total de Débitos ou Total de Créditos estiver incorreto após a colagem, tente salvar o lançamento contábil manual em um lote e, em seguida, reabra-o. Se nada acontecer quando você clicar em Colar para obter dados do Excel copiados no Dynamics GP, verifique o arquivo Dex. ini para a seguinte linha: lsquoUseCOMForExcelExport TRUErsquo Essa configuração dex. ini impedirá que o recurso Copiar e Colar do Excel para GL funcione. Mais sobre essa configuração pode ser encontrada neste artigo de Blog de suporte e serviços do Dynamics e este artigo de desenvolvimento para Dynamics GP. Essa configuração também afeta o Orçamento Baseado no Excel e as exportações do SmartList para o Excel, portanto, teste a funcionalidade relacionada se fizer alterações nas configurações do dex. ini. Verifique se a multimoeda foi ativada. Post navigation Pesquisa Blog Blog Categorias ESI Job Openings
No comments:
Post a Comment