Home

TOTVS | Plataformas e tecnologias

Árvore de páginas

FAQ: 52143-Erro progress recursividade devido a estrutura de matrizes para controle de acumulados do PIS/COFINS/CSLL.
Produto:Datasul
Versão:1
Sintoma
52143-Erro progress recursividade devido a estrutura de matrizes para controle de acumulados do PIS/COFINS/CSLL.
Causa
Erro progress recursividade devido a estrutura de matrizes para controle de acumulados do PIS/COFINS/CSLL.
Solução

FAQ 52143
--------
No pacote do dia 20/09/2006 foi liberada a funcionalidade de acumulo por matriz do impostos PIS/COSFINS/CSLL para o produto EMS2. Essa função pode ser habilitada através de duas formas: execução do programa spap970 ou em varias rotinas de implantação/pagamento que verificam se não existem pendências de impostos ou acumulados criados então habilitam automaticamente esta função.

A partir deste momento o sistema passa a verificar quem é a matriz de um determinado fornecedor para realizar todos os controles relativos ao imposto de PIS/COFINS/CSLL. Esse processo de busca do fornecedor matriz consiste em a partir de um fornecedor localizar a sua matriz informada no campo "Matriz" da manutenção de fornecedores. A matriz é identificada pelo fornecedor que possui o nome abreviado igual ao valor informado no campo matriz. Exemplo abaixo de uma estrutura correta:
Fornecedor     NomAbrev    NomMatriz
001             AAA         AAA       <- Fornecedor Matriz
002             BBB         AAA       <- Fornecedor Filial
003             CCC        BBB       <- Fornecedor Filial
004             DDD        AAA       <- Fornecedor Filial

Foi verificado que em alguns clientes após a atualização do pacote com a liberação desta implementação legal, algumas rotinas do EMS passaram a apresentar o seguinte erro:

ATENÇÃO: -nb excedido. Automaticamente aumentado de 90 para 122. (5407)
ATENÇÃO: -nb excedido. Automaticamente aumentado de 122 para 154. (5407)

Esse erro ocorre porque o sistema tenta encontrar quem é o fornecedor matriz de um determinado fornecedor, porém a estrutura esta parametrizada de uma forma cíclica, onde não é possível encontrar quem é o fornecedor matriz. Gerando o erro acima que indica que a lógica esta sendo executada em looping infinito.
Exemplo da estrutura cíclica:
Fornecedor     NomAbrev   NomMatriz
001            AAA        BBB
002            BBB        CCC
003            CCC        AAA

Para identificar os fornecedores que possuem esse problema, disponibilizamos em nosso portal no caminho Central de downloads\Arquivos de Apoio\Idioma\EMS2\Release\Acerto_lista o programa especifico listaFornErroEstrut.r que gera uma lista com todos os fornecedores e indica os fornecedores que estão com esse problema de estrutura. O programa também lista qual a estrutura que ele encontrou até se repetir. Portanto será necessário analisar caso a caso e verificar qual a estrutura correta para que o problema não ocorra.

Tendo essas informações será necessario acessar a manutenção de fornecedore e realizar as manutenções no campo de fornecedor matriz, para que não ocorra a recursividade. Caso ao entrar na manutenção de fornecedores o mesmo erro progress acima sitado ocorrer favor realizar os seguintes procedimentos:
1) Verificar se se os senhores utilizam o acumulo do imposto de PIS/COFINS/CSLL retido no pagamento. Caso os senhores não utilizem, os procedimentos abaixo poderão ser realizados. Caso utilizem, será necessário que os procedimentos abaixo sejam realizado fora do horário de expediente, para que não ocorra a geração de valores incorretos na base.
2) Executar o programa CD7070 informar a chave acum-matriz selecionar a opção Desativa e confirmar no botão Executar.
3) Após esse processo será possivel realizar a manutenção dos fornecedores. Caso os senhores estejam realizando a manutenção em horario de expediente, algumas rotinas do produto padrão podem habilitar automaticamente a função acum-matriz, então caso o erro progress volte a ocorrer durante a manutenção dos fornecedores. Favor repetir o passo 2.
4) Após todos os fornecedores corrigidos, verificar se os senhores desejam utilizar a funcionalidade de retenção do imposto PIS/COFINS/CSLL acumulado por matriz. Caso sim favor seguir os precedimentos descritos na FAQ: 20274.