Logo

Dynamics AX Brasil

  • Arquivo
  • RSS
  • Contato

Virtualização das dimensões financeiras

Estou trabalhando em um projeto, onde surgiu a necessidade de virtualizarmos as dimensões financeiras. Depois de alguns problemas, chegamos ao conjunto de tabelas exatas para que seja realizada a virtualização desta funcionalidade no ax, veja abaixo:

Tabelas
  • Dimensions
  • DimensionActiveHierarchyBackup
  • DimensionHierarchyCombination
  • DimensionCollection
  • DimensionPriorityTable
  • DimensionSetCombination
  • DimensionSetCombinationDuplicate
  • DimensionSetCombinationTemp
  • DimensionSetCombinationValidated
  • DimensionSetHierarchyTable
  • DimensionSetRuleTable
  • DimensionSetRuleCollection
  • DimensionSetTable
  • LedgerRowDef
  • LedgerRowDefErrorLog
  • LedgerRowDefLine
  • LedgerRowDefLineCalc
  • LedgerTable
Importante

Criar uma “TableCollection” somente para esse conjunto de tabelas.

Espero ter ajudado.

Abraços.

    • #DAX 2009
    • #Dicas
  • 4 weeks ago
  • Comments
  • Permalink
  • Share
    Tweet

[NFe 2.0] Solucionando problemas SEFAZ-PR

Bom dia pessoal,

Recentemente entrei em um novo projeto onde foi necessário realizar a comunicação com o SEFAZ-PR (o mais chato diga-se de passagem) para emissão da NF-e. Onde encontramos algumas dificuldades e gostaría de compartilhar com a solução.

O Problema

Quando enviamos o xml para o SEFAZ-PR validar recebemos o código de rejeição 215(Erro de validação no schema), mesmo que ele tenha sido validado contra o schema oficial.

Causa e explicação

De acordo com os comunicados que podem ser lidos aqui e aqui. A SEFAZ-PR explica que o xml está sendo rejeitado devido a falta de declaração do atributo namespace na tag NFe. Por exemplo:

XML enviado ao SEFAZ-PR:

<NFe>
    <infNFe Id="NFe41110303126900000259550000000150531000244250" versao="2.00">
        <ide>
            ...
        </ide>
    </infNFe>
</NFe>

XML esperado pelo SEFAZ-PR:

<NFe xmlns="www.portalfiscal.inf.br/nfe">
    <infNFe Id="NFe41110303126900000259550000000150531000244250" versao="2.00">
        <ide>
            ...
        </ide>
    </infNFe>
</NFe>

O que ocorre é que o WCF com a intenção de melhorar a performance da comunicação, retira as duplicidades do arquivo XML, consequentemente reduzindo o tamanho do arquivo. Sendo assim a namespace da tag NFe é retirada, pois a mesma namespace é declarada na tag enviNFe.

O problema é que somente a SEFAZ-PR faz a validação da namespace na tag NFe, ou seja, não se trata de um bug do AX e sim uma validação extra exclusiva do SEFAZ-PR.

Solução

Para solucionar este problema foi disponibilizada uma DLL para que o AX realize a comunicação com o SEFAZ-PR sem a otimização do XML, disponível para download aqui. Feito o download siga os seguintes passos:

  • Copie a dll para pasta bin do client do AX, algo parecido com isso: C:\Program Files (x86)\Microsoft Dynamics AX\50\Client\Bin
  • Copie a dll para a pasta bin do server do AX, algo parecido com isso: C:\Program Files\Microsoft Dynamics AX\50\Server\\Bin
  • Abra o DAX, e adicione uma nova referência apontando para a dll do client. AOT > References > Botão direito > Add references > Browse.
  • Abra o método “createBinding” da classe EFDocMsgTransport_WebServiceV4_BR, classe responsável pela comunicação entre AX x SEFAZ-PR e cole o código abaixo.
  • Reinicie a AOS.
private System.ServiceModel.Channels.Binding createBinding()
{
    System.ServiceModel.Channels.Binding                        binding;
    System.ServiceModel.Channels.BindingElement[]               bindingElementArray;
    NFe.CustomTextMessageBindingElement                                                customTextMessageBindingElement;
    System.ServiceModel.Channels.HttpsTransportBindingElement   transportBinding;
    ;
 
    if (this.isHttps())
    {
                // BP Deviation Documented
        customTextMessageBindingElement = new NFe.CustomTextMessageBindingElement('utf-8', "application/soap+xml", System.ServiceModel.Channels.MessageVersion::get_Soap12());
 
        // BP Deviation Documented
        transportBinding = new System.ServiceModel.Channels.HttpsTransportBindingElement();
        transportBinding.set_RequireClientCertificate(true);
 
        // BP Deviation Documented
        bindingElementArray = new System.ServiceModel.Channels.BindingElement[2]();
        bindingElementArray.SetValue(customTextMessageBindingElement, 0);
        bindingElementArray.SetValue(transportBinding, 1);
 
        // BP Deviation Documented
        binding = new System.ServiceModel.Channels.CustomBinding(bindingElementArray);
    }
    else
    {
        // BP Deviation Documented
        binding = new System.ServiceModel.BasicHttpBinding();
    }
 
    return binding;
}

Feito isso o AX não irá mais retirar o namespace e o código de rejeição 215 desaparece :D.

Outro erro encontrado, mas já explorado pelo Matiazzo em seu weblog, veja.

Abraços,
Peterson Ferreira

    • #DAX 2009
    • #NFe
  • 4 months ago
  • Comments
  • Permalink
  • Share
    Tweet

Vídeos Dynamics AX (Vimeo)

Fala pessoal beleza?

Segue alguns vídeos que encontrei bem interessantes:

Abraços,

Peterson Ferreira

    • #DAX 2009
    • #DAX 2012
  • 1 year ago
  • Comments
  • Permalink
  • Share
    Tweet

Pacote de atualização com a NF-e e Integração Fiscal

Fala galera…

É com muita alegria que venho falar para vocês que a Microsoft disponibilizou hoje o pacote de atualização do Ax2009 contendo a integração do Ax diretamente com a SEFAZ para emissão da NF-e.

Mais informações www.daxdev.com.br

Fiquem ligados no blog que passei acima que em breve terão mais informações!!!

Abraços,

Peterson Ferreira

    • #DAX 2009
    • #Dicas
  • 1 year ago
  • Comments
  • Permalink
  • Share
    Tweet

LINQ para Dynamics AX

Fala galera… Essa noite eu estava fuçando a internet, em um dos blogs que falam sobre as novidades do Dynamics AX, e encontrei uma característica muito interessante e atraente principalmente para os desenvolvedores que estão vindo do .NET para o AX. É o famoso LINQ, que permite você busque dados de fontes diferentes como: DB, XML.

É possível pegar uma versão TRIAL no site da empresa que desenvolveu, LINK

Para utilizar o LINQ será necessário que o .NET Business Conector esteja configurado e no projeto, seja incluída a DLL no cabeçalho. Abaixo um exemplo da utilização do LINQ para Dynamics AX:

Tenho certeza que para os desenvolvedores .NET essa é uma ótima notícia, pois ja estão acostumados com a linguagem, ja para o nativos do X++ pode não ser tão atrativo mas aconselho darem a uma olhada.

Abraços,

Peterson Ferreira

    • #.NET
    • #DAX 2009
    • #X++
    • #Desenvolvimento
  • 2 years ago
  • Comments
  • Permalink
  • Share
    Tweet

Portrait/Logo

Sobre

Meu nome é Peterson Ferreira. Este blog contém novidades, dicas e informações para consultores, desenvolvedores e usuários do Microsoft Dynamics AX. Aproveitem!

Entre em contato

  • @petersonfs on Twitter
  • Facebook Profile
  • petersonferreiras on Youtube
  • petersonferreira on Flickr
  • Linkedin Profile
  • petersonferreira on github

Comunidade Dynamics

Comunidade Dynamics

Categorias

Links

  • Jobs | Dynamics AX Brasil
  • Partner Source
  • DAXBR por Pichler
  • Dynamics AX por Brandon

Anúncios Patrocinados

  • RSS
  • Random
  • Arquivo
  • Contato
  • Mobile
  • Licença Creative Commons

Powered by Tumblr