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
  • 2 days 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
  • 3 months ago
  • Comments
  • Permalink
  • Share
    Tweet

[DYNAMICS AX 2012] Boas Práticas para Testes

Está disponível o novo whitepaper falando sobre as boas práticas nos testes do DAX 2012! Segue alguns tópicos falados e o link:

  • Práticas de condução de qualidade no início do ciclo de desenvolvimento.
  • Recomendações para o teste e ferramentas de ALM.
  • Ajudar a decidir sobre automação de teste.
  • Exemplos de boas práticas que usamos no desenvolvimento Dynamics AX 2012.

Link para download.

Abraços,
Peterson Ferreira

    • #DAX 2012
    • #Boas Práticas
  • 3 months ago
  • Comments
  • Permalink
  • Share
    Tweet

Remover Tags HTML de uma String

Na semana passada um amigo me pediu ajuda em um problema pouco comum no DAX. Como remover tags HTML de uma String.

Como participei de um projeto em que o AX era o backoffice de um e-commerce, e precisávamos realizar toda a integração, eu já tinha a solução e resolvi compartilhar aqui no blog. Talvez você já tenha feito um método para resolver este problema, mas o AX já traz isso pronto pra você!

Solução

Dentro do AX temos um “Helper” para manipular elementos de uma página HTML, ou seja uma classe que possui uma série de métodos estáticos para ajudar a trabalhar com HTML. Vejamos como remover as tags html de uma string:

//Start
static void removeHtml(Args _args)
{
    str html = "<title>Dynamics AX Brasil</title>"
    ;

    html = Web::stripHTML(html);
    
    info(html);
    //=> Dynamics AX Brasil
}
//End

No exemplo acima o método stripHTML pode receber 3 parâmetros, são eles:

  1. String a ser retirada as tags HTML.
  2. Se deseja inserir quebra de linha após o elemento “p”.
  3. Se deseja inserir quebra de linha após o elemento “br”.

Conclusão

Além deste método a classe Web possui vários outros, que como já foi dito, pode lhe ajudar no trabalho com o HTML.

Abraços,
Peterson Ferreira

    • #Desenvolvimento
  • 3 months ago
  • Comments
  • Permalink
  • Share
    Tweet

[NEWS] Certificações: Dynamics AX 2012

Os novos exames de certificação do DAX 2012 estão disponíveis para os que quiserem se certificar, segue dos links e tópicos abordados nos exames:

MB6-869: Microsoft Dynamics AX 2012 Development Introduction

  • Understanding Dynamics AX 2012 Architecture
  • Managing the Data Dictionary
  • Managing the User Interface
  • Managing Security
  • Working with X++ Control Statements
  • Managing Objects and Classes
  • Accessing the Database
  • Managing Exception Handling

MB6-872: Microsoft Dynamics AX 2012 Installation and Configuration

  • Planning to Install Microsoft Dynamics AX 2012 and Understanding the Organizational Model
  • Installing Microsoft Dynamics AX 2012
  • Managing Users and Security
  • Managing Services and Workflow
  • Managing Analytics and Reporting
  • Managing Enterprise Portals
  • Managing Administration

MB6-871: Microsoft Dynamics AX 2012 Financials

  • Managing Financials I
  • Managing Financials II
  • Managing Fixed Assets

MB6-870: Microsoft Dynamics AX 2012 Trade and Logistics

  • Managing the Supply Chain Foundation
  • Managing Distribution and Trade
  • Managing Bills of Materials

A Microsoft também disponibiliza treinamentos on-line que podem ser encontrados aqui. E para quem tem acesso ao PartnerSource, pode baixar os novos manuais de estudo/preparação.

Abraços,
Peterson Ferreira

    • #DAX 2012
    • #Desenvolvimento
    • #Funcional
  • 4 months ago
  • 1
  • Comments
  • Permalink
  • Share
    Tweet
← Newer • Older →
Page 1 of 8

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