sexta-feira, 11 de outubro de 2013

Trabalhos como FreeLancer

Pessoal,

Agora também pela minha empresa, posso prestar serviços no Dynamics AX 2009/2012 como FreeLancer, em desenvolvimentos ou implantações no ERP.

Caso precisem de meus serviços, favor me contatar.


terça-feira, 13 de setembro de 2011

Comand Like no X++

Olá pessoal,

Depois de um bom tempo sem colocar novos posts, prometo que agora vou voltar com novos posts de dicas sobre desenvolvimento no AX como também novidades.

Uma coisa básica mas que um dia tive que procurar pra saber qual era exatamente a sintaxe correta. Como usar o comando like identico da linguagem SQL no X++ ?

Pois é, se no SQL usamos na condição Like o % no X++ acreditem, não é a mesma sintaxe, veja:


Select FirstOnly Customer Where Name Like 'andre*'


Use o (*) para indicar.


[],Abs...

segunda-feira, 13 de dezembro de 2010

Gerando um relatório através de um registro

Olá Pessoal,


Segue mais uma dica para fazer gerar um relatório apartir de um registro selecionado. No meu caso precisei na fazer na tela de Ordem de Compra. Criei um botão para imprimir algumas informações referente ao a Ordem selecionada, ressaltando que usei duas tabelas, a Purchtable e a VendInvoiceJour.

Segue um exemplo básico.


1º Passo

  • Criei o report PM_ComprasTeste, usando as tabelas Purchtable e a tabela VendInvoiceJour que irei usar para pegar algumas informações para impressão. Veja abaixo que coloquei no segundo DataSource a tabela VendInvoiceJour e faço o relation com a PurchTable pelo PurchID.


2º Passo

  • No método ClassDeclaration do Report, declarei da seguinte forma as variaveis global:


3 º Passo

  • Depois é preciso sobrescrever o método init, para que no momento em que iniciar o relatório, ele pegue o parametro do registro selecionado:

4 º passo


  • Sobrescrever o método fetch() para que no momento para executar a query adicionado o Range atua ao datasource e preenchendo o Datasource com apenas o registro selecionado;

  • Fiz um Select na VendInvoiceJour, passando como parametro o atual registro selecionado da PurchTable;

  • Atribuo na variavel DocumentDate (já declarada na figura 1), a data do documento que preciso;

  • Crie um método do tipo Display, para retornar o valor da variavel e associar depois a um campo do tipo Date, que será colocado no Design do Report;



5º Passo

Na propriedade do Report e Query, setar = NO a propriedade Interactive


6º Passo

  • Crie um MenuItem do tipo OutPut chamando o report;
  • Na propriedade do botão que foi criado na tela de Ordem de Compra, associe o MenuItem e o DataSource principal da tela, no meu caso, Purchtable.

Ao entrar na tela de ordem de compra, apertando o botão o relatório é apresentado conforme o registro selecionado.

[]s

André Silva










quinta-feira, 6 de maio de 2010

Parametrizando Textos de Transação via X++

Pessoal,

Resolvi postar algo sobre como parametrizar via X++ os famosos Textos de Transação.

Os Textos de Transação se encontram no módulo Básico. Ali você define pelos %1, %2 e sucessivamente, quais os textos que deverão aparecer nas transações de acordo com o Tipo de Transação selecionado.

No meu caso, foi para a tela de Comprovantes, no módulo de contas a Pagar. Ao criar uma nova Proposta de Pagamento e Transferir, o sistema levará automaticamente o texto definido na tela de Textos de Transação no módulo Básico.


Do %1 ao %4 o sistema já leva como default algumas informações;

Do % 5 ao %6, você deverá alterar a classe e passando como parâmetro a informação que deseja.

Neste caso customizei para que o
  • %5 levasse o Nº da NF

  • %6 o nome do Fornecedor


Definido nos Textos de Transações (%5) para Nº da NF, (%6) para o nome do Fornecedor


1- Procure a classe CustVendPaymProposalTransferToJournal
2- Abra o método getTransactionText()

O método getTransactionText() tem por finalidade pegar os parâmetros que serão passados para o classe TransactionTxt, onde possuem os SetKeys que recebem os mesmos para configurar os textos.

Como acima, o setKey2() se refere ao %5 e o setkey3() se refere ao %6. Ambos estão disponíveis para que você defina quais informações deseja que seja levado para os textos de transação.

Acrescente neste método getTransactionText(), como no exemplo acima, as informações que desejar.

Espero ter ajudado...

Abraços!

terça-feira, 4 de maio de 2010

Error Function datetime2str()

Pessoal,

Em um de nossos clientes, acontecia o erro na Function datetime2str(), utilizado no método CheckReleaseDate da tabela LedgerJournalTrans. Isto impossibilitava de o usuário lançar seus documentos nos Ativos Fixos e até mesmo no Diário de Comprovantes no Contas a Pagar.

Pelo que pesquisei no site, http://blogs.msdn.com/emeadaxsupport/archive/2010/01/13/error-in-compiling-datetime2str.aspx, isto acontece devido a versão do client e do servidor de aplicação do AX serem diferentes.

Uma solução paliativa para resolver este problema seria :

1 - Parar o serviço do AX;
2 - Localizar o diretório onde estão localizados os arquivos de índices e deletá-los pelo Prompt do DOS (comando : del *.*i)
3- Iniciar o serviço do AX, para recriar os índices novamente, demora alguns minutos.

Fazendo isto, o comando dateTime2str() irá receber os dois parâmetros como corretamente. Após subir o serviço, localize o método e recompile, deverá funcionar.

OBS: Isto foi uma solução paliativa para resolução do problema, assim que receber algo a respeito da instalação do AX para compatibilidade das versões entre client e servidor de aplicação, postarei algo.

Abraços,

terça-feira, 27 de abril de 2010

Importação de Itens de Estoque

Olá Pessoal,

Se você está tentando importar os Itens de Estoque e ao abrir a tela de Detalhe de Itens, os itens não aparecem, aqui vai uma dica.

As tabelas que são obrigatórias para importar os itens são :

InventItemLocation
InventTableModule
InventItemPurchSetup
InventItemSalesSetup
InventItemInventSetup
InventTable


1- Você poderá criar uma folha de estilo excel modelo baseado nas tabelas acima. Lembre-se, a ordem deve ser exatamente como está acima.


2- Preencha na planilha, na tabela InventTable com todos os itens a serem importados, nas demais, coloque somente o código do item para fazer relacionamento.


3- OBS: Na tabela InventTableModule deverá ser preenchido de uma forma diferente, ou seja, para cada item haverá tres registros devido ao campo Tipo de Módulo, (000::Estoque, 001::Ordem de Compra, 002::Ordem de Venda)
4 - No meu caso, em algumas tabelas precisei fazer um Update nos campos InventDimID e InventDimIDDefault = "AllBlank" via SQL.
Fazendo isto, pode importar a folha excel pelo módulo de Administração.
Boa sorte a todos !







Blog - Dynamics AX - André Silva

Olá Pessoal,

Meu nome é André Silva e comecei minha carreria com ERP Microsoft Dynamics AX 4.0 em 2008. Atualmente continuo na carreira em Desenvolvimento na Empresa KBS Consulting. Criei este blog para postar novidades e soluções que poderão ser úteis em nosso dia a dia como desenvolvedores e até mesmo, para práticas e funcionalidades funcionais.
Também poderei postar artigos de outros blogs já existentes e que muito poderá nos ajudar...

Abraço, sorte e sucesso para todos nós neste caminho do Dynamics AX.