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.
[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
Vídeos Dynamics AX (Vimeo)
Fala pessoal beleza?
Segue alguns vídeos que encontrei bem interessantes:
Abraços,
Peterson Ferreira
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
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


