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,