Olá a todos, No X++, a exemplo de outras linguagens, também utiliza blocos try e catch para tratar exceções, ou seja, para tratar uma situação que normalmente não ocorre e representa algo de estranho ou inesperado no sistema. Por isso observe o código abaixo e tente visualizar o que eh exibido no final de sua execução. No infolog aparece a mensagem Compra. Com isso em mente podemos expandir o exemplo para algo mais representativo, algo que atenda as necessidades de nossas customizações. Por exemplo: Onde IOException é um novo Enum Type e FileOpenException é um de seus Elements. Lembrando que o bloco catch poderia muito bem estar em um escopo superior. Para dar continuidade a este desenvolvimento de exceções, também se poderia criar classes especialistas para cuidar da exception, assim como a classe Error que está na AOT. Dessa forma teríamos uma classe IOException com um método FileOpenException que se responsabilizará por finalizar o processamento de forma segura para a aplicação.
Por default o Ax traz a enum Exception com os tipos fixos de exceção que poderiam ocorrer. Mas ela pode ser considerada insuficiente para determinados casos ou determinadas customizações.
public static void ErrorTest(Args _args)
{;
Try
{
throw SalesPurch_BR::Purch;
info("Sem exception");
}
catch(Salespurch_BR::Sales)
{
info(enum2value(SalesPurch_BR::Sales));
}
catch(Salespurch_BR::Purch)
{
info(enum2value(SalesPurch_BR::Purch));
}
}Public void open(FileName _fileName)
{
container openRecord;
;
Try{
file = CustVendOutPaym::newFile(_filename, 'w', 'CommaIO');
if (!file || file.status() != IO_Status::Ok)
{
throw IOException::FileOpenException;
}
openRecord = conins(openRecord,1,'Open Statement');
}
catch(IOException::FileOpenException)
{
error(strfmt("@SYS75767",_filename));
}
}
terça-feira, 1 de setembro de 2009
Tratamento de Exceção
Postado por
Anônimo
às
20:09
3
comentários
Marcadores: x++
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
Postado por
Matiazo
às
22:14
0
comentários
Marcadores: CI
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.
Postado por
Matiazo
às
22:39
4
comentários
Marcadores: Classes
terça-feira, 11 de agosto de 2009
Top 10 Tips Working Developers Should Know about Windows 7 from Scott Hanselman's Computer Zen
Vale a pena conferir:
http://www.hanselman.com/blog/Top10TipsWorkingDevelopersShouldKnowAboutWindows7.aspx
Postado por
Matiazo
às
11:46
0
comentários
Marcadores: Win7
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
Postado por
Matiazo
às
13:35
0
comentários
Marcadores: TechEd
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.
Postado por
Matiazo
às
08:38
1 comentários
Marcadores: Ax 2009, Localização
segunda-feira, 29 de junho de 2009
Oportunidades para trabalhar com Microsoft Dynamics AX no Brasil
Olá!
Postado por
André dos R. Santos
às
19:26
2
comentários
Marcadores: Carreira, Mercado, Oportunidade, Vaga Dynamics AX
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
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)
Postado por
Matiazo
às
19:45
1 comentários
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.
Postado por
Matiazo
às
10:06
0
comentários
Marcadores: Podcasts