quinta-feira, 10 de dezembro de 2009

Palestra AX 2009 – Nota Fiscal Eletrônica

Vamos realizar uma palestra para apresentar a Nota Fiscal Eletrônica para o AX 2009 –, será realizada no dia 21 de dezembro, das 14:00 às 18:00, na Microsoft São Paulo.

A palestra tem o intuito de demonstrar as funcionalidades adicionadas a localização brasileira para emissão da NF-e diretamente com o SEFAZ.  Serão apresentados os pré-requisitos, a configuração, as validações que são feitas para o envio, o cancelamento e inutilização da NF-e, a emissão da NF-e em modo de contigência e a impressão da DANFE.  Além disso, serão listadas as mudanças na integraçào com os Livros Fiscais

O conteúdo da palestra é técnico, portanto também serão apresentados os modelos relacional e objetos relacionados à funcionalidade.

Data: 21 de dezembro de 2009
Hora: das 14:00 às 18:00
Local: Microsoft São Paulo 31º andar – Av. Nações Unidas, 12901, Torre Norte – Brooklin – São Paulo/SP


Palestrantes:
Rodrigo Matiazo
Desenvolvedor de aplicações de negócios e ERPs desde 2001, trabalha com Dynamics AX desde 2003, participando do projeto de localização do sistema para o Brasil e também de várias implementações locais e internacionais. Ingressou na Microsoft em 2008, como System Development Engeneer do Global Financial Management Team, trabalhando no release do AX 2009 para o Brasil.


Fábio Vazquez
Trabalha com desenvolvimento, implantação e consultoria em aplicações empresariais desde 1995, especialmente com soluções de ERP, Orçamento Empresarial e BI. Autor de 2 livros e diversos artigos sobre desenvolvimento e engenharia de software em publicações nacionais e internacionais. Durante 5 anos consecutivos foi Microsoft MVP (Most Valuable Professional) em Visual FoxPro e C#. Atualmente, é Software Development Engineer no Dynamics AX Global Financial Team.


Inscrições: Para inscrições e maiores informações, envie um e-mail para mbs@microsoft.com.br


Powered by Qumana

quinta-feira, 26 de novembro de 2009

WCF Configuration Editor tool

Como comentei antes, a integração da NF-e do Ax com o SEFAZ usa o service reference do AIF que por sua um WFC client pra se conectar aos web services do SEFAZ.


Como os webservices usam https é necessario configurar o client para que utilize o certificado de segurança também na conexão (ele também é usado para assinar a nf-e).


Caso vocês não queiram editar XML na mão, é necessario instalar o SDK do .NET 3.5 para poder configurar os services references utilizando a ferramenta de configuração do client WCF.


Aqui vai o link do MSDN com a documentção do configuration editor tool.


Em breve volto com mais informações sobre a integração da NF-e do Ax diretamente com o SEFAZ.


[]s


Powered by Qumana

terça-feira, 17 de novembro de 2009

Dax DataModel

Modelo de dados bem detalhado do AX4.0.

Explica o que são os campos, relacionamentos e o mais legal, que ele faz isso por processo.

Referência obrigatória.

O post é bem velhinho, porém só vi agora e vivi até hoje sem esse documento...
Não sei como...

sábado, 24 de outubro de 2009

Treinamento para desenvolvedores.


Oi pessoal, tudo certo?

Hoje estive em mais uma reunião do grupo dotnetarchitects e dessa vez o assunto foi Coding dojo.
Sabemos que o treino leva a perfeição. Então aqui vai a pergunta.

Você treina suas habilidades como desenvolvedor?

Se a resposta é não então esta na hora de conhecer o Coding Dojo.

O que é? 
O Dojo é um espaço onde programadores se reúnem para treinar e aprender, com reuniões periódicas focadas em um desafio de programação.

Como funciona?
Durante a reunião todos podem colaborar para resolver o desafio proposto, mas a idéia é aprender com as experiências e não terminar o problema.

Como pode me ajudar?
Alem do treinamento o Conding Dojo usa uma abordagem com TDD e princípios de programação ágil como XP.Algumas empresas já utilizam o Coding Dojo para evoluir e entrosar seu time de desenvolvedores.

Meu objetivo não é dar uma visão completa sobre o assunto, para quem se interessou pelo assunto:
http://www.youtube.com/watch?v=E-jFKkaAc7k  (Palestra na Locaweb)
http://www.dtsato.com/blog/2007/08/27/dojo-treino-para-programadores/ (Programadores não treinam)
http://www.dtsato.com/blog/2007/10/21/dojosp-screencast-01/  (Screencast)
http://www.dojosp.org/ (Coding Dojo@SP)



Por enquanto é só! Até o próximo post!

terça-feira, 20 de outubro de 2009

WCF, Certificado Digital e Nf-e

Estou trabalhando na implementação da Nf-e para o Ax 2009 nos últimos tempos, por isso ando afastado do blog.

Gostaria de compartilhar algumas informações que serão necessárias para que a comunicação aconteça de forma correta entre o Ax e os web services do governo.

O Ax utiliza um WCF client para se conectar com os web services. Para configura-lo é necessário ter o .Net Framework 3.5 SDK instalado na máquina.

O WCF precisa ser configurado de maneira a utilizar o certificado digital instalado no momento que esta se conectando ao web service do SEFAZ através de https.

O Ax executa o batch que se comunica com o SEFAZ utilizando as credenciais do usuário do serviço que executa o AOS. Para que o Ax consiga acessar o certificado digital, ele deve ser instalado no repositório LocalMachine.

Para assinar o XML é necessario que o usuário que executa o serviço do Ax tenha acesso a chave privada do certificado.

Tanto a instalação como acesso a chave privada podem ser feitas através do console Certificates.

Mais informações em breve!

Este conteúdo foi publicado "as is", podendo o produto final ser modificado indefinidamente e sem aviso prévio, sem garantias ou direitos.

terça-feira, 8 de setembro de 2009

Ponteiros no Dynamics AX

Ola pessoal, Depois de apanhar um pouquinho para conseguir utilizar uma API para impressora fiscal BEMATECH, descobri pesquisando no próprio AX (Classe WinAPI) que é possível utilizar ponteiros para pegar o valor de uma variável passada por referencia. No Ax 2009 já existe o KeyWord byRef postado no Blog Dynamics AX

Segue o exemplo simplório a baixo:

static void Ponteiro_DynamicsAX(Args _args)
{
#define.TamanhoPonteiro(255)
str StringTeste;
binary Ponteiro = new Binary(#TamanhoPonteiro);
boolean funcPonteiro(Binary _ReturnPointer)
{
_ReturnPointer.string(0,'TESTE');
return true;
}
;
if (funcPonteiro(Ponteiro))
{
StringTeste = Ponteiro.string(0);
}
INFO(StringTeste);
}

terça-feira, 1 de setembro de 2009

Tratamento de Exceção

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 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.


Por isso observe o código abaixo e tente visualizar o que eh exibido no final de sua execução.


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));
}
}


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:

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));
}
}

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.


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.