sábado, 24 de maio de 2008

RTM do AX2009

Foi disponibilizado no PartnerSource o RTM (Release To Manufacturing) do AX 2009.

O link abaixo leva ao partnersource para download.

RTM do AX2009[requer autenticação]

mais infomrações em breve!

segunda-feira, 28 de abril de 2008

eBook Grátis Disponível para Download: Inside Microsoft Dynamics AX 4.0

Saudações caros,
A Microsoft disponibilizou para download gratuito o livro Inside Microsoft Dynamics AX 4.0
Este livro custa em média R$ 115,00 aqui no Brasil.

Vocês podem baixá-lo gratuitamente através do link oficial da Microsoft:
622579eBook.pdf

Link da Amazon.com para "Search Inside":
http://www.amazon.com/gp/reader/0735622574/ref=sib_dp_pt#reader-link

Grande abraço a todos,
Lana

quinta-feira, 24 de abril de 2008

Integração Dynamics AX x Source Safe

Durante minhas pesquisa no Google sobre Dynamics AX achei esse link interessante e muito útil para os desenvolvedores. Ele descreve a experiência dele em instalar e configurar o Source Safe para ser utilizado dentro do AX.

Segue o Link abaixo
http://axaptabuilder.blogspot.com/2006/06/notes-about-my-experience-in-setup-of.html

Outro link interessante é o vídeo de demonstração de como utilizar o Source Safe com o AX:
http://www.erpcoder.at/dynamics/vcs/SourceSafe%20in%20Dynamics%20AX.html

Mais pra frente conto a minha experiência na Integração dessas ferramentas bem como minhas impressões sobre sua utilização.

quarta-feira, 16 de abril de 2008

Upgrade de codigo

Tenho visto muitas duvidas em relação a upgrade de versão ou mesmo de service pack para o Ax no forum do Ax no MSDN Brasil. Provavelmente este ano clientes e parceiros terão mais um upgrade que será no lançamento da versão 2009, sem contar o service pack 3 para a versão 4.0.

Então, como se preparar para a atualização de código?

A primeira tarefa é entender como funciona a tecnologia de camadas do Ax.


{imagem 01}

As camadas são uma hierarquia de niveis no código fonte da aplicação para garantir que mudanças e adições possam ser feitas sem interfirir em elementos da aplicação em um nível abaixo da camada em que se esta fazendo a alteração.

Cada camada é gravada em um arquivo separado chamado Ax.aod, por exemplo Axgls.aod para a camada GLS, onde nossa localização foi desenvolvida.

Ainda exista as camadas de patch, elas são chamadas de SYP, GLP, DIP e assim por diante, elas são utilizadas por exemplo no release de service packs. A ideia basica é que quando uma pequena correção ou atualização é feita, ela deva ser distribuida em uma camada de patch, sem modificar a aplicação existente.

Conteúdo das camadas e overlaying

Os elementos da aplicação podem variar em tamanho, enquanto forms e relatórios contém grande quantidade de código, campos, grupo de campos, class methods, table methods contém menor quantidade de código.


Customizando esses elementos em uma camada limpa, por exemplo a VAR, o Ax copia o elemento da camada abaixo para camada que você esta customizando, sobrepondo seu conteúdo original, o compilador passa a executar o elemento modificado e não mas o elemento original. Na figura, os objetos modificados são representados por quadrados verde um pouco mais escuro.





{imagem 02}


Durante o upgrade de versão (ou service pack) conflitos podem occorer quando:
  • Você customizou um elemento E a Microsoft também alterou o elemento original.

{imagem 03}

Na figura acima, podemos ver que uma série de objetos foram modificados por uma nova versão (ou service pack), quadrados que eram verdes e passaram a laranja são aqueles que sofreram alterações. Aqueles em que a alteração da Microsoft tenha coincidido com a alteração feita para o cliente devem ser atualizados.

Não há uma ferramenta mágica para que o codigo seja atualizado, quanto mais automaticamente, para a nova versão. Porém o Ax compara individualmente os seguintes elementos:

  • EDTs
  • Base Enums
  • Table fields
  • Table field groups
  • Table methods
  • Class methods
  • Forms
  • Reports

Percebam que a granularidade aplicada a table fields, table methods e class methods (que são elementos menores de elementos principais como Table e Class) não se aplica a Forms e Reports, que tem uma granularidade é bem maior, isso significa que uma minima alteração em forms ou reports faz com que o elemento inteiro seja copiado da camada inferior para a sua camada, dificultando em muito a atualização do código.

Para resolver os conflitos de atualização de código, um projeto de atualização deve ser criado. Ele pode ser acessado a partir de: Ferramentas\Ferramentas de Desenvolvimento\Atualização de versão\Criar projeto de atualização

Abaixo a seguinte lógica é aplicada quando executamos o processo de criação do projeto de atualização (Upgrade Project).



Apenas elementos em que tenha havido conflito vão ser inseridos no projeto de atualização, o trabalho a ser feito agora é comparar elemento a elemento e trazer para sua camada a atualização feita tanto pelo service pack quanto pela nova versão.

Para isso o Ax tem a ferramenta de comparação, em que é possivel, em muitos casos trazer (ou remover) a modificação da camada inferior para a sua camada de trabalho apenas clicando em flechas que indicam que o codigo deva ser inserido, removido ou realojado dentro do método.

Nos proximos posts eu devo voltar a configuração e utilização dos impostos retidos e trazer algumas dicas na fase de programação da solução para o cliente para tentar minimizar o code upgrade em novas versões.

Links uteis:
Upgrade Methodology (em ingles) - não deixe de conferir e seguir TODO o processo de upgrade descrito Implementation Guide.

Forum do MSDN Brasil para o Dynamics AX

quarta-feira, 2 de abril de 2008

Dynamics AX 2009 - Primeiras impressões

Olá a todos,

Finalmente depois de alguns GB's de download e mais alguns para a descompactação dos arquivos, rodei a VPC de apresentação da futura versão 2009 do DAX e estou postando algumas comentários iniciais. Esse post é apenas um aperitivo do que vem por aí, e posso adiantar que com certeza, há muita coisa a ser analisada nessa nova versão que posteriormente será comentada nesse blog.
De cara o que dá pra notar é que houve uma significativa mudança (e para melhor) na navegação do sistema. Logo de cara, temos o impacto inicial ao visualizarmos a Breadcrumb(BCB) bar. Temos nela um visual muito similar ao adotado pelo Windows Vista onde temos:

  • Travel Buttons - Permitem ao usuário retornar à página anterior ou avançar.

  • Address Bar - Utilizada da mesma forma que no Windows Vista onde pode-se até mesmo digitar um endereço. Ex: CEU/Administration

Para não dizer que tudo é novidade, temos também o nosso velho conhecido Navigation Pane, mas que também sofreu modificações e agora passa a atuar diretamente com a Area Page que concentra todo o conteúdo do módulo selecionado de maneira agrupada por seções.

Acima uma imagem da do módulo de contabilidade em sua tela inicial. Ficam para os próximos post's um detalhamento maior das novas funções desta versão, mas de antemão posso dizer que os proximos post's terão assuntos como:

  • Requisições de compra
  • Workflow
  • Gestão da qualidade,
  • Melhorias no X++

Abraço!

sexta-feira, 28 de março de 2008

Pre-release Dynamics Ax 2009

A Microsoft disponibilizou no partner source (site para parceiros) um pre-release do dynamics Ax 2009, nova versão do Dynamics Ax.

Fiquem atentos pois essa nova versão tem muitas novidades!

Microsoft Dynamics AX 2009 Pre-Release (CTP3) Demonstration Toolkit (necessita acesso e autenticação)

quinta-feira, 27 de março de 2008

Impostos no AX - Impostos retidos nos pagamento

No meu ultimo post, explorei um pouco os impostos sobre o faturamento, que faz parte do Ax original e foi modificado para que funcionasse no Brasil.



Vou explorar agora os impostos retidos no pagamento, que no Ax original, em inglês, é chamado de withholding tax.



Vale a pena comentar que a tradução ficou diferente, "Retenção de impostos", quando a denominaçaõ deveria ser algo como "Impostos retidos", termo que estamos mais acostumados no dia a dia.



Esses impostos são calculados quando um titulo é marcado para liquidação. Contudo, as seguintes condições devem ser verdadeiras para que o sistema calcule os impostos:



1. O campo "Grupo de retenção de impostos" na linha do diário (ledgerJournalTrans) estar preenchido.

2. Ser um pagamento de uma transação criada junto com a nota fiscal (registro de pedido de compra e pedido de venda).

3. Campo "calcular retenção de imposto" estiver marcado no cadastro de fornecedor (para ctas a pagar) e nos parametros do contas a receber (para retenção a partir do ctas a receber).

4. Campo "calcular retenção de imposto" estiver marcado para o título (tanto ctas a receber quanto ctas a pagar).

5. Quando uma nota fiscal for registrada dos pedidos, um item tipo SERVIÇO seja utilizado OU quando uma nota fiscal for registrada dos Diários de Notas Fiscais de fornecedores, o campo "Nota fiscal de serviços" (aba Nota Fiscal) estiver marcado.



No proximo post comento sobre as configurações necessarias para o calculo do imposto.

quinta-feira, 20 de março de 2008

Contrapartida Padrão

Olá a todos!

Existe um recurso interessante do AX, que, eu e o César Palmieri, utilizamos ao parametrizar o módulo de projetos , para lançamento de diários de projeto.

Dependendo do funcionário selecionado, a contrapartida é automaticamente preenchida.

Configura-se pela seguinte opção do menu:




Em seguida, deve ser selecionado o Funcionário, o tipo e a conta de contrapartida padrão, que será inicializada nos diários de despesas.


A contrapartida pode ser dos tipos:

  • Cliente
  • Fornecedor
  • Banco
  • Razão

Sim. Uma funcionalidade padrão, mas o Post é justamente para apresentar uma pequena correção que deve ser feita no método Classes\LedgerJournalEngine\setProjDefaultOffsetAccount

após a inicialização do OffsetAccountType e do OffsetAccount, para o Brasil, é necessário inicializar alguns campos.

Como as tabelas já se encontram inicializadas nesse contexto, utilizei os métodos de inicialização de clientes e fornecedores:




   1:  (...)

   2:   

   3:      _ledgerJournalTrans.OffsetAccountType     = projDefaultOffsetSetup.getLedgerOffsetType();

   4:      _ledgerJournalTrans.OffsetAccount         = projDefaultOffsetSetup.AccountNum;

   5:   

   6:      switch (_ledgerJournalTrans.OffsetAccountType) 

   7:      {

   8:          case LedgerJournalACType::Vend:

   9:              this.initFromVendTable(_ledgerJournalTrans);

  10:              break;

  11:          case LedgerJournalACType::Cust:

  12:              this.initFromCustTable(_ledgerJournalTrans); 

  13:              break;

  14:      }



Isso evita que o sistema dispare um erro sobre seleção de tipo de documento fiscal e série.

Boa páscoa a todos!

terça-feira, 19 de fevereiro de 2008

Número por extenso

Para retornar um número escrito por extenso, como no preenchimento dos cheques, basta utilizar a função numeralsToTxt_BR.

Essa função esta escrita na classe Global e pode ser modificada caso necessário.

static void Job1(Args _args)
{
;
info(numeralsToTxt_BR(25.22));
}

Esse job simples mostra: Vinte e cinco Reais e vinte e dois centavos


Chegamos a 500 page views, que ja é alguma coisa para uma comunidade com tão poucos profissionais!

Abs

quinta-feira, 7 de fevereiro de 2008

Brasileiro assume gerencia de desenvolvimento de localização em todas as americas

a noticia é de 17 de janeiro mas antes tarde do que nunca:

A Microsoft Brasil anuncia a promoção do executivo Joel Pereira para a posição de gerente de desenvolvimento para as Américas da Microsoft. Pereira ficará baseado no Brasil e será responsável pelo gerenciamento dos times de localização do software de gestão, ou seja, no desenvolvimento de novas funcionalidades necessárias para a comercialização da solução de ERP para as Américas (América Latina, Estados Unidos e Canadá). Ao todo 50 profissionais fazem parte da equipe nos países.

O executivo trabalhou na Microsoft Corporation, nos Estados Unidos, por seis anos, e antes de assumir a atual posição foi gerente de desenvolvimento de software do produto Microsoft Dynamics AX para América Latina. Graduado em Engenharia Elétrica pela FEI e com mestrado em Engenharia da Computação pela Escola Politécnica participou do desenvolvimento dos produtos Application Center 2000, Microsoft Operations Manager, Microsoft SQL Server e Winfs. Por dois anos, se dedicou ao desenvolvimento da plataforma tecnológica para próxima geração dos produtos Microsoft Dynamics.

Parabéns ao Joel, isso mostra que o Brasil tem condições de aparecer no cenario internacional de desenvolvimento de software e sistemas de gestão.