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!