segunda-feira, 17 de agosto de 2009

Artigo sobre integração contínua

Ótimo artigo para começar a melhorar seu processo de desenvolvimento!

http://martinfowler.com/articles/continuousIntegration.html

quarta-feira, 12 de agosto de 2009

Drag a class, drop it into any menu item type and create a menu item!

Vivendo e aprendendo!

No Ax 2009, crie uma classe que implemente o método Main.

Arraste a essa classe para qualquer um dos 3 tipos de Menu Items e voilà, nada nesta manga, nada nesta manga: um novo menu item é criado com mesmo nome e configurado para executar sua nova classe!

Não sei quando foi implementado mas vou testar no mínimo na 4.0.

terça-feira, 28 de julho de 2009

Tech Ed Brasil - Sessões de Ax

Teremos um track somente sobre Dynamics no TechEd Brasil, maior evento técnico do Brasil. Informações sobre inscrição e agenda completa no site do TechEd

2 sessões de Ax:
25/08/2009 15:00 - 16:15 - Microsoft Dynamics AX 2009 – Arquitetura técnica, Cenários de instalação e Gerenciamento. Carlos Shimoda

27/08/2009 10:30 - 11:45 - Utilizando o Windows Workflow Foundation para automatizar processos de negócio no Microsoft Dynamics AX 2009. Rodrigo Matiazo.

Eu devo apresentar como desenvolver um template de workflow no Ax, assim como conceitos sobre a arquitetura e integração com o Windows Workflow Foundation.

2 sessões de CRM:
26/08/2009 08:45 - 10:00 - Turbinando o Microsoft Dynamics CRM 4.0 com soluções Open Source: Aceleradores, BI e Mobilidade. Fabio Fritoli

26/08/2009 13:15 - 14:30 - Microsoft Dynamics CRM 4.0 – Infra-Estrutura, Implantação e Funcionalidades. Rodrigo Lugarinho


Indico outras 3 sessões não relacionadas ao Ax mas apresentadas por meu amigos desenvolvedores do time de Ax da Microsoft:

27/08/2009 08:45 - 10:00 - Automatizando seu build com Team System. Eduardo Miranda e Fabio Vazquez

26/08/2009 13:15 - 14:30 - Unit Testing – boas práticas e patterns. Fábio Vazquez e Cezar Guimaraes

27/08/2009 13:15 - 14:30 - Contruindo uma aplicação com Silverlight 3. Cezar Guimarães e Eduardo Miranda

sexta-feira, 3 de julho de 2009

Novidades da localizaçao do Dynamics Ax2009 - Project Accounting

Localizamos o módulo de Project Accounting para o Brasil, agora é possivel registrar notas fiscais de projetos utilizando os impostos brasileiros!

O Project Accounting permite que o controle da contabilidade de projetos, registro de horas e materiais consumidos nos projetos além de acompanhar o desempenho financeiro financeiramente as receitas e custos de projetos de preço fixo, time and material, além do acompanhamento dos custos de projetos internos da empresa.

O módulo é extenso e tem funcionalidades complexas para o acompanhamento financeiro de diversos tipos de projeto, não pretendo aqui mostrar com é funcionamento dessas funcionalidades e sim comentar um pouco de algumas funcionalidades importantes que foram localizadas para permitir o faturamento de projetos no Brasil.

O cálculo de impostos é aplicado no momento do faturamento nas transações de projetos, como:

1. Horas postadas em diários de horas
2. Produtos consumidos em diários de estoque
3. Custos do projeto apontados em diários de custo da contabilidade
4. Transações 'On Account', que são faturamentos antecipados ou parcelas fixas

Ainda necessário para o faturamento foi inclúido o códigos de serviço na Categoria de Projeto, isso permite que o tipo de serviço prestado possa ser definido na estrutura que define extamente a natureza das receitas e despesas do projeto. O grupo de impostos de item também é definido na categoria de projeto.

Funcionalidade de quebra de nota fiscal por código de serviço foi adicionada quando se cria a proposta de faturamento, essa funcionalidade permite que a proposta seja quebrada por código de serviço, possibilitando que cada nota fiscal somente tenha um código de serviço. O CFOP também é utilizados nessa quebra, de forma que CFOPs de venda para o mesmo estado não sejam faturados juntamnete com CFOPs de venda para outro estado.

Outra funcionalidade bem interessante é a que agrupa todas as transações faturadas por categoria de projeto, por empregado ou sem agrupamento, além do código de serviço quando a opção de quebra por código de serviço for utilizada.
Essa funcionalidade permite uma adminsitração da granularidade maior ou menor das linhas da nota fiscal.

THIS POST IS PROVIDED AS-IS; AND CONFERS NO RIGHTS.

segunda-feira, 29 de junho de 2009

Oportunidades para trabalhar com Microsoft Dynamics AX no Brasil

Olá!


Existem algumas oportunidades de carreira para desenvolvimento com Microsoft Dynamics AX em consultoria na grande São Paulo.

Um resumo dos pré-requisitos são:
Conhecimentos em plataforma .Net/C#, programação orientada a objetos, raciocínio lógico.
Diferenciais técnicos: SQL, X++, MorphX/Intellimorph.
Caso haja interesse em participar do processo de seleção, entre em contato.

Vencido pelo twitter

http://twitter.com/rmatiazo

domingo, 28 de junho de 2009

Dúvidas de como configurar workflow no Ax 2009?

Me valendo do ditado de que a sua dúvida pode ser a dúvida de muitos ai vai:

Como eu configuro?
Setting up and maintaining Workflow

Quais Workflows o Ax ja tem pré definidos?
Workflow templates

Pensando em colocar workflow em novos desenvolvimentos?
Implementing Workflow for Microsoft Dynamics AX


Erro: Stopped (error): Calendar token must be set?
Antes de criar qualquer Workflow configuration tenha CERTEZA que pelo menos um calendário esta corretamente configurado em Basic>Calendar, verifique que se os calendários tem Working Times corretamente configurados.

Requisição de compra?
- Accounts Payable>Setup>Workflow configurations
Crie uma nova configuração e utilize o template Purchase requisition approval
Não esqueçe de adicionar:

  • Submission instructions para o workflow (basta clicar em create instruction e utilizar alguma mensagem padrão
  • Work Item Subject e Instuctions devem ser preenchidos para cada elemento
Integração do RFQ (Request for Quote) com Requisição de compra?
Somente é possivel gerar um request for quote antes da requisição estiver aprovada e completa.

Debug? - Existem classes que eu não consigo debugar ainda, quando tiver uma resposta eu posto aqui.
- No AOT, abra a macro Workflow
- Procure pela macro WorkflowRunAsDebug e troque de false para true
- Procure a classe SysWorkflowHelper e recompile (necessário para atualizar o valor da macro)
- Vá em Basic>Inquire>Batch Job e apague as entradas para o workflow
- No AOT, abra o form Tutorial_WorkflowProcessor, esse form processa o workflow sem ser por batch
- Abra o debugger manualmente antes de processar (Tools > Development Tools > Debugger)

terça-feira, 23 de junho de 2009

Podcasts e Webcasts

Microsoft Dynamics AX 2009 AIF Web Services Screencast
Um webcast bem didadico sobre AIF e com passos basicos para criar e consumir um webservice usando o AIF, vale conferir.

Working Effectively with Legacy Code with Michael Feathers
Scott's in Norway this week and he sits down with Michael Feathers. Michael is the author of "Working Effectively with Legacy Code." What is legacy code? Are you writing legacy code right now?

Podcast do Scott Hanselman, program manager da divisão de desenvolvimento da Microsoft com o autor do livro "Working Effectively with Legacy Code", excelente livro que demontra técnicas muito práticas de como criar testes unitários para código não testado aplicando métodos que tem o objetivo de diminuir a dependencia do entre classes, melhorando a testabilidade e o design da solução. Tem sido meu livro de referência ultimamente.

segunda-feira, 22 de junho de 2009

Paralelo: Desenvolvimento ERP x SCRUM

Saudações!

Após muito tempo sem postar, resolvi retomar a participação colaborativa na crescente comunidade Dynamics Brasil.

Durante esse tempo, tive algumas experiências legais participando da gestão de projetos de desenvolvimento Dynamics AX.

Isso me levou a refletir sobre metodologias ágeis aplicadas ao cenário ERP, baseado em situações e problemas recorrentes encontrados nas maneiras tradicionais de desenvolvimento e entrega, tais como falhas de comunicação, divergências entre expectativa do cliente e produto final, etc.

As características do desenvolvimento ERP diferem um tanto com relação ao desenvolvimento “from scratch”, pois sua dinâmica consiste muito mais na modificação do produto existente, do que na concepção de algo totalmente novo.

Antes de entrar nas características do SCRUM, é importante citar algumas diferenças que existem entre o mundo ERP e o mundo do desenvolvimento de software tradicional.

Para desenvolvimento ERP, normalmente existe uma figura diferente das existentes no mundo de desenvolvimento tradicional, que é o Consultor Funcional, ou Analista de Negócio.

A figura do consultor funcional é muito importante para refinar o desenho da solução, pois ele age como a engrenagem entre o usuário final e o desenvolvedor, trabalhando as questões políticas e expectativas do cliente com relação ao produto, e deixando o desenvolvedor focado na qualidade da solução e a ser entregue. Assim, o desenvolvimento pode ser abordado com base nos processos de negócio e sua integração com as funcionalidades já existentes dentro do sistema.

Voltando ao tópico principal, sobre utilização da metodolgia scrum no cenário ERP, podemos fazer a aplicação com alguns diferenciais sutis, como descreverei abaixo.

Em tempo, é importante ressaltar que não irei descrever todos os elementos da metodologia nesse post, pois existem excelentes referências na internet com o conteúdo bem abrangente e detalhado sobre SCRUM, portanto, decidi me concentrar em alguns pontos-chave que teriam alguma peculiaridade entre o desenvolvimento tradicional e o aplicado às customizações/processos de negócio.

Ferramentas e elementos

Scrum Team
É composto pelos elementos abaixo, atribuindo-se aos seguintes papéis:

Scrum Master: Este papel pode ser atribuído ao gerente técnico, que é o responsável pela manutenção da metodologia dentro da equipe.

Product Owner: Normalmente, é o responsável pela manutenção do Product Backlog.
Para desenvolvimento de customizações de ERPs, esse papel pode ser atribuído ao gerente de desenvolvimento, em par com o gerente de projetos, para que o time concentre as respostas relativas às entregas em uma única pessoa, facilitando a gestão da comunicação entre as partes.

Team: São as pessoas responsaveis pela concepção e desenvolvimento da solução.
No mundo ERP: Consultores funcionais ou Analistas de Negócio, em conjunto com os consultores técnicos ou desenvolvedores.


Product Backlog
Em poucas palavras, o product backlog consiste em uma lista contendo todos os requisitos levantados, descritos e priorizados em nível um nível mais abrangente.
Quando falamos no desenvolvimento em sistemas ERP, pouca coisa é desenvolvida integralmente, sendo a maioria do trabalho baseado na customização das funcionalidades existentes.

Nesse caso, o Product Backlog pode ser uma lista de todos os processos não aderentes no core do ERP, previamente mapeados pela equipe funcional em campo, e, sempre que possível dividindo as atividades por processos de negócios, com controle de status de “atendidos” ou “não atendidos”.

Sprint backlog

A dinâmica do scrum é dividida em sprints periódicos (normalmente semanais), onde as entregas do período são extraídas do Product Backlog de acordo com sua prioridade.

Em resumo, é uma condensação dos objetivos estabelecidos no product backlog, para entrega definida em um espaço reduzido de tempo.
De maneira análoga ao conceito do Product Backlog, o sprint backlog eventualmente pode ser definido por processo de negócio.

Impediments
São fatores que impedem a equipe de continuar determinada tarefa como por falta de recursos técnicos, infra-estrutura, definições de regras de negócio etc.

É muito importante que o Scrum Master e o gerente do projeto se unam e sejam facilitadores ativos entre o Scrum Team e o cliente final na gestão dos impedimentos, e provisão das respectivas soluções.
O Consultor Funcional também exerce um papel importante ao atuar junto do usuário final com o objetivo de extrair as respostas rápidas às eventuais dúvidas que surgirão ao longo do processo de desenvolvimento da solução.

Os outros elementos podem ser aplicados tais como concebidos na definição geral de SCRUM, como as medidas através dos “Burn Down Charts”, bem como a dinâmica dos Meetings.

Por fim, os objetivos principais são os mesmos de todas as metodologias ágeis, ou seja, através da aplicação de uma metodologia menos burocrática, promover maior integração e transparência entre o time e o cliente-final, evitando retrabalho ocasionado por ruídos de comunicação, através das entregas segmentadas em menores espaços de tempo, e todos os elementos que facilitam de maneira ampla o trabalho da equipe, atendendo plenamente às expectativas do cliente final.