Blogs de Dynamics AX

Descobri mais um blog sobre Dynamics AX:

DaxMasters
http://www.daxmasters.com.br

Aliás, um dos idealizadores, o Gustavo Alves, está contribuindo bastante no fórum MSDN do Dynamics AX.

Resolvi criar uma página permanente aqui para listar os blogs que vou encontrando. Quem tiver sugestões, por favor envie-as!

Abraços.

 

Posted in Dynamics AX, Português | 1 Comment

Dynamics AX 2012 R2 Fiscal Books Beta 1

Uma das novidades da localização brasileira do AX 2012 é a solução de Livros Fiscais totalmente integrada ao nosso ambiente!

Com ela, a geração de arquivos como os do SPED Fiscal poderá ser feita diretamente do AX. Grande parte do nosso time está focada nessa tarefa e os primeiros resultados são muito bons.

A Microsoft está agendando dois encontros para mostrar aos parceiros(as) a primeira versão Beta dessa nova solução:

Sessão 1 – 19 de fevereiro de 2013

Sessão 2 – 20 de fevereiro de 2013

Update: Após serem realizadas, as sessões saem da página de eventos da Microsoft. Os links acima não são mais válidos.

Posted in AX 2012, Dynamics AX, Português | 4 Comments

Dynamics AX Technical Conference 2012

Boa ideia do Rodrigo Matiazo! Acompanhem a cobertura do Rodrigo Fraga do Dynamics AX Technical Conference 2012 em Seattle, diretamente no blog DaxDev:

Day 1: http://daxdev.com.br/blog/dynamics-ax-2012-technical-conference-day-1/

Day 2: http://daxdev.com.br/blog/dynamics-ax-2012-technical-conference-day-2/

 

Posted in AX 2012, Dynamics AX, Português | 1 Comment

Dynamics AX 2012 R2

Eu meço o tempo em que estamos trabalhando no AX 2012 pela idade da minha filha. Quando ela nasceu, eu já estava finalizando a funcionalidade de Legal Texts (Textos Legais), aka Fiscal Document Texts no AX 2012 (em breve coloco um post sobre isso). Hoje ela está com 1 ano e 9 meses e o AX 2012 R2 está finalmente para ser lançado. Foram mais de dois anos de dedicação da equipe de GFM LATAM e fico feliz por ter participado desse milestone do produto.

Os últimos meses foram bastante intensos, mas agora estou voltando gradualmente a postar no blog. Mesmo para quem já tem acompanhado o AX 2012 há um ano, são muitas novidades no AX 2012 R2, tanto em funcionalidades core como obviamente toda a localização do Brasil. Estou preparando alguns posts mais técnicos e pretendo lançá-los à medida que vamos atingindo o full-disclosure do produto.

Nesse período eu também tive a oportunidade de liderar o desenvolvimento do módulo de Retail no Brasil. Com base na primeira versão lançada no AX 2009 R2 Refresh em abril/2011, implementamos várias novas funcionalidades e todos os requisitos do PAF-ECF disponibilizados na RU8 de março/2012.

Também pretendo postar algumas dicas em como identificar problemas no Store Connect, adicionar registros no Seed Data Generator e informações gerais sobre a localização do Retail no AX 2009, complementando o trabalho feito pelo meu colega Mauro Silva.

Assim que tivermos um roadmap mais definido sobre a localização do Retail para o AX 2012, também pretendo divulgar todas as novas funcionalidades. Grandes oportunidades para os parceiros Microsoft. Até breve!

Posted in AX 2012, Dynamics AX, Português, Retail | 1 Comment

Erro na NfeCustServiceModel.dll após KB2653320

Para quem está seguindo as orientações de instalar o KB2653320 conforme o post abaixo:
http://daxdev.com.br/blog/microsoft-dynamics-ax-sp1-rollup-8

O KB2653320 é anterior a uma correção na nota fiscal eletrônica e a aplicação deste KB após RU8 está revertendo essa correção. O erro resultante é:

Assembly containing type Microsoft.Dynamics.NfeCustServiceModel.CustomTextMessageBindingElement is not referenced.
Object ‘CLRObject’ could not be created.

Para corrigir isso, siga os seguintes passos:

  1. Edite a classe EFDocMsgTransport_WebServiceV4_BR, método createBinding.
  2. Corrija “appliaction/soap+xml” para “application/soap+xml”.
  3. Vá em AOT > References.
  4. Clique com o botão direito do mouse e selecione Add Reference.
  5. No diálogo mostrado, clique em Browse e navegue até o diretório do AOS.
    Por exemplo:
    C:\Program Files\Microsoft Dynamics AX\50\Server\DynamicsAx1\Bin
  6. Selecione o seguinte arquivo:
    Microsoft.Dynamics.NfeCustServiceModel.dll
  7. Clique OK.

Recomendo fortemente testarem esses passos em um ambiente de testes antes de colocá-lo em produção.

Lembrando que o KB2653320 resolve o problema apontado aqui:
http://blogs.technet.com/b/dynamicsaxse/archive/2011/07/08/nf-e-process-fails-with-xml-schema-error-215-due-to-missing-namespace.aspx

Qualquer resolução oficial da Microsoft suplantará esse post. Veja o disclaimer do blog para mais informações.

Posted in Dynamics AX, Português | 3 Comments

Dynamics AX 2012

Peço desculpas se estive ausente do blog nos últimos meses, mas estivemos mergulhados no desenvolvimento do Dynamics AX 2012. Não podemos publicar detalhes antes do evento Convergente North America em abril/2011, mas todo o time está bastante empolgado com as novidades que estão vindo.

Algumas informações que já estão disponíveis hoje:

Microsoft Previews Next-Generation ERP
http://www.microsoft.com/Presspass/press/2011/jan11/1-10MSFTDynamicsAX6PR.mspx?rss_fdn=Press%20Releases

Inside Microsoft Dynamics AX – Engineering the future, our next milestone…
http://blogs.msdn.com/b/dax/archive/2011/02/02/the-next-milestone.aspx

Para quem tem acesso ao PartnerSource:

Statement of Direction
http://blogs.msdn.com/b/dax/archive/2011/02/02/the-next-milestone.aspx

Essas informações são pre-release e todas melhorias e funcionalidades estão sujeitas a mudanças sem aviso prévio.

Posted in Uncategorized | 1 Comment

Bad UI Design

We all know examples of bad design in software user-interfaces. Today I just remembered some non-IT cases that always amuse me. Mainly because I’m talking about hardware UI design (which is costly to change, so some extra care should be taken) and, even worse, related to car safety.

Continue reading

Posted in English | 33 Comments

My first code contest

Programming challenges are fun! It’s one of those things that you get better with practice and suddenly you are addicted to it. That mental click that make twenty lines of codes shrink to four, finally seeing a O(log(n)) solution in a O(n2) approach, watching your friends struggle to solve that same problem…

My first fair set of exercises was during Data Structures for Engineering class by professor Imre Simon. Several years later, another list that gave a hard time was Joel’s proposed exercises for the Microsoft interview loop. After this list I realized that I was only at the tip of the iceberg.

So I decided to give it a try. You can easily find dozens of programming contest websites by searching “programming contest” and you can join a local Coding DOJO sessions for a fast ramp-up.

My first one was the Polish SPOJ website. I found it from one of RicBit’s tweets about the Traversing Grid shorten challenge. The goal here is to write the smallest source code. That’s right, it’s ranked by the number of characters at the submitted code. The time to run and memory usage are also considered, but being concise is what they want. The nice thing about SPOJs is that they compile your code online. Nice training sessions.

Give a look at https://www.spoj.pl/SHORTEN/problems/TR_GRID/.

My entry in C has 105 chars, but there is a contestant that reached 78 chars! Note that I’m comparing C language solutions… The PERL winner has only 41 bytes. See results here. I will describe the steps that I went through, but bear in mind that I’m a novice here and there are many tricks that are still to be discovered.

You may want to try at home first before continuing…

Continue reading

Posted in C++, English | 7 Comments

Chained FINDSTRs

Now that I learnt that FINDSTR is more flexible than I thought, a quick post on how to apply chained FINDSTR calls.

For instance, if you need to search all XPOs that have the words “holiday” and “GBR” (Brazilian localization tag). You could use the “/f” switch which accepts a file containing the files to look into. First example to make it clearer:

findstr /i /m /s "holiday" *.xpo > holiday_files.txt
findstr /i /m /f:holiday_files.txt "gbr"

Which will first create a file with the list of files with “holiday” (“/m” switch) and then look in the files from this list (“/f:file”) for the “GBR” occurrence.

A special case would be using the “/f:/” switch which accepts the file list from the console (stdin). So a more direct call would be:

findstr /i /m /s "holiday" *.xpo | findstr /i /m /f:/ "gbr"

Finally, use UniqueOcc to make it beautiful!

findstr /i /m /s "holiday" *.xpo | findstr /i /f:/ "gbr" | UniqueOcc

Of course this will not search “holiday” inside GBR tags. This is another task for a future post.

Posted in Dynamics AX, English | Leave a comment

UniqueOcc: a FINDSTR formatter

The UniqueOcc (from unique occurrence) is a command-line tool that parses the output of the FINDSTR tool that we normally use to search XPO files contents (specially files in the Dynamics AX version control repositories, such as Source Depot).

The FINDSTR is really usefull for searching an entire directory and its subdirectories for XPO files containing specific words. For example, if you want to know which classes, forms, tables, etc. use the Legal Text feature, you would get a fair estimated by running:

C:\Depot\AX\Source\Application\GLS>findstr /i /s "legaltxt" *.xpo

This command will search all XPO files (*.xpo) for the “legaltxt” string, starting in the GLS directory, including all subdirectories (/s) and using an insensitive case (/i) comparison.

The classical FINDSTR output would be:

Classes\NFFiscalDoc_BR.xpo:        #    FiscalDocJourLegalTxt_BR          ...
Classes\NFFiscalDoc_BR.xpo:        #    FiscalDocTransLegalTxt_BR         ...
Classes\NFFiscalDoc_BR.xpo:      SOURCE #postLegalTxt
Classes\NFFiscalDoc_BR.xpo:        #protected void postLegalTxt()
Classes\NFFiscalDoc_BR.xpo:        #    this.postFiscalDocJourLegalTxt();
Classes\NFFiscalDoc_BR.xpo:        #            this.postFiscalDocTransLeg...
Classes\NFFiscalDoc_BR.xpo:        #        nfFiscalDoc.postLegalTxt();
Classes\NFFiscalDoc_DeliverySlip_BR.xpo:      SOURCE #getCFOPLegalTxt
Classes\NFFiscalDoc_DeliverySlip_BR.xpo:        #protected LegalTxt_BR ins...
Classes\NFFiscalDoc_DeliverySlip_BR.xpo:        #    LegalTxt_BR     local...
Classes\NFFiscalDoc_DeliverySlip_BR.xpo:        #        localLegalTxts = ...
Classes\NFFiscalDoc_DeliverySlip_BR.xpo:        #        localLegalTxts = ...
Classes\NFFiscalDoc_DeliverySlip_BR.xpo:        #        localLegalTxts = ...
Classes\NFFiscalDoc_DeliverySlip_BR.xpo:        #    return localLegalTxts
(...many, many, many more lines...)

To avoid scrolling and filter it a lot to find which artefacts do have the string you are looking for, you can use the ‘/m’ switch, which will output:

Classes\NFFiscalDoc_BR.xpo
Classes\NFFiscalDoc_DeliverySlip_BR.xpo
Classes\PurchCopying.xpo
Classes\PurchFormLetter.xpo
Classes\PurchFormLetter_Invoice.xpo
Classes\SalesCopying.xpo
Classes\SalesFormLetter.xpo
Classes\SalesFormLetter_Invoice.xpo
Data Dictionary\Base Enums\LegalTxtSection_BR.xpo
Data Dictionary\Extended Data Types\LegalTxtDescription_BR.xpo
Data Dictionary\Extended Data Types\LegalTxtId_BR.xpo
(...)

For those curious C++ programmers, the ‘/m’  switch is equivalent to:

Continue reading

Posted in C++, Dynamics AX, English | Leave a comment