30 de setembro de 2013

Compensação de títulos NDF não funciona

Segmento da Empresa: Indústria de produtos de higiene e beleza
Módulo: Financeiro
Rotinas: Compensação de títulos a pagar

Problema 1
 Após migrar para o Protheus 11, rotina de compensação de contas a pagar não está funcionando para títulos NDF (Nota de Débito de Fornecedor)

Solução

 Primeiramente eu me certifiquei de que o usuário não estava cometendo nenhum tipo de erro de parametrização na rotina, fiz meus próprios testes e reproduzi o problema relatado pelo usuário.
 Identificado que se tratava de um problema no sistema, eu parti para abertura do chamado, o que não adiantou muito visto que o fonte do cliente estava um ano desatualizado. A Totvs não envia patch nestas condições, eles solicitam que todo ambiente seja atualizado.
 Sem poder contar muito com o chamado eu parti para investigação do problema.

Para descobrir se estamos falando de erro no programa
 Utilizo a ferramenta TOP DBACCESS para monitorar as queries que uma determinada rotina executa no banco de dados. Isto mesmo, pelo DBACCESS é possível ter acesso as queries e updates que o Protheus envia para o banco dados quando se executa qualquer rotina, padrão ou customizada.
 O DBACCESS geralmente está instalado no mesmo servidor do banco de dados, porém isto não é regra, varia de empresa para empresa. Basta perguntar ao administrador da TI pelo local onde ele está instalado (em qual servidor) .
 Pois bem, no Protheus, acesse a rotina que você quer ter as query monitoradas, deixe pronto para executar mas não confirme.
 Acesse o DBACCESS, vá na aba Usuários, localize seu usuário e a rotina que está executando e clique em Rastrear.
 Volte no Protheus e confirme a rotina.
 Volte no DBACCESS e salve a página que ele gerou.
 O log pode ser aberto no WORDPAD ou qualquer editor de textos simples. Lá estarão todas as queries e updates executados pela função do Protheus.

Voltando ao problema
 Eu parei para explicar sobre o DBACCESS porque sei que este procedimento é muito útil para identificar problemas, também para provar para Totvs determinadas falhas em rotinas.
 Com o rastreamento na rotina de compensação eu confirmei que a query tinha a seguinte condição: E2_TIPO IN ('AD','PA').
 Repare que o tipo de título NDF deveria estar referenciado na query. E que raio de tipo de título AD é este? (me perguntei) O tipo AD não é um tipo de título padrão do financeiro no Protheus. Isso chamou minha atenção e fui ao cadastro de Tipos de Título. O Tipo AD estava cadastrado com o camp SINAL = Diminui. Pronto, problema solucionado.

 Não me pergunte por quê. mas nesta versão caso exista qualquer tipo de título cadastrado nestas condições (sinal=diminui), a rotina de compensação do contas a pagar passa a ignorar o tipo padrão NDF e o substitui por estes tipos de títulos personalizados.

 Identificado isso, fiz uma rápida query contando quantos títulos a pagar haviam no sistema utilizando o tipo AD. Verifiquei que apenas 6 no ano de 2012. (cheiro de testes)
 Busquei nos fontes de projeto se havia alguma referência a este tipo (Talvez existissem por conta de alguma customização). Nada.

 Perguntei à toda equipe de TI se alguém conhecia ou por que havia sido criado. Nada.
 Questionei também a equipe Financeira se alguém usava o tipo AD. Nada.

Ok, apaguei o registro do Tipo de Título AD, problema resolvido. O sistema voltou a compensar títulos NDF normalmente.

Não desista facilmente.

Para entender mais sobre a relação entre as rotinas de Tipos de Títulos e Compensação do contas a pagar, consulte o link: MV_CPNEG

Nenhum comentário:

Postar um comentário

Envie aqui suas dúvidas, críticas, elogios, problemas, sugestões de posts, comentários, enfim, sinta-se a vontade!