Ocorrência
É exibida a mensagem "Erro na Chamada do Processo" ao executar rotinas de processamento
Ex. Saldo Atual, Virada de Saldos, Recalculo do Custo Médio, Refaz Acumulados MATA215, Refaz Poder de Terceiros MATA216 e etc).
Ambiente
Cross Segmento - TOTVS Backoffice (Linha Protheus) - Estoque/Custos - Todas as versões.
Causa
Esta mensagem é exibida na tela quando utilizamos "Stored Procedures" da rotina de processamento e por algum motivo a Procedure gera uma inconsistência em sua execução.
Solução
Normalmente este erro no processamento da procedure é causado pelos possíveis cenários mapeados:
1º Inconsistência estruturais nos dicionários de dados
Dicionários inconsistentes, em desacordo com o esperado pelo processamento em questão.
Um exemplo recorrente é o parâmetro MV_M330JCM estar com tipo diferente de C - caracter (que é o correto). Caso esteja, altere para tipo C e realize um novo teste. Detalhes do parâmetro aqui: https://tdn.totvs.com/pages/releaseview.action?pageId=354452990
Outro exemplo recorrente é o parâmetro MV_CUSTEXC não estar configurado como "Compartilhado" (filial em branco) impedindo o acesso da Filial em questão.
2º Inconsistência de produto na Procedure em questão
É essencial que as procedures estejam atualizadas contemplando as mais novas correções e inovações. Lembrando que atualizações devem primeiramente ser homologadas em ambiente/base Teste, e que após as atualizações, é importante reinstalar as procedures.
- Aplicar as atualizações: Acumulado SIGAEST conforme sua versão | Gestor de Procedures V.1.6.2
- Após as atualizações, desinstale as procedures 14 a 22;
- Faça um backup e delete a Stored Procedure da pasta \SYSTEM.
- Reinicie o TOPConnect.
- Execute o processamento da rotina em questão para se certificar que não ocorre nenhum erro;
- Cole a Stored Procedure na pasta \SYSTEM.
- Reinstale as procedures 14 a 22 com o novo gestor.
IMPORTANTE! Para clientes que já utilizam o Novo Gestor de procedures é imprescindível que o mesmo esteja em sua última versão: Gestor de Procedures V.1.6.2
Posteriormente, reinstale a Stored Procedure causadora do erro e tente executar a rotina novamente.
3º Inconsistência nos registros gravados na base de dados
Ou seja, quando o(s) produto(s) que serão varridos no processamento possui alguma inconsistência em sua gravação na base. Dados gravados incorretamente no banco de dados (independe da origem dessa gravação incorreta, há dados errados), por exemplo, campos obrigatórios em branco, ou com conteúdo inválido.
Alguns exemplos recorrentes são:
- Registro gravado com o campo B6_IDENT vazio / em branco;
- Campo B6_TPCF vazio ou divergente do cliente/fornecedor envolvido nas notas SD1 (D1_TIPO) e SD2 (D2_TIPO);
- Cliente/Fornecedor envolvido no poder de terceiros excluído na base de dados (referência inválida);
- Documento fiscal (ex SD1) não classificado. xx_IDENTB6 em branco, porém D1_TES preenchido, fazendo com que a rotina entendesse que o saldo foi realmente inserido no sistema.
Importante: Aqui estão listados alguns exemplos recorrentes, porém, não há como indicar com precisão qual o dado incorreto em sua base, sem a devida análise nos registros da base.
É necessário que analise os dados gravados no banco (obs: essa análise de registros no banco não é contemplada pelo atendimento de Suporte técnico na modalidade padrão. Havendo necessidade de análise da base, na falta de uma equipe interna de TI, recomenda-se a solicitação de consultor à seu ESN).
Para otimizar esse processo de validação da base, recomenda-se que tente processar a rotina utilizando um range menor de dados, ao invés de "Produto 'em branco' até 'zzzzz'"
Com um range menor, é mais provável chegar ao produto exato que ocasiona o problema no processamento.
Exemplo:
- Filtro do produto 000 até 500. Não apresentou erro;
- Filtro do 501 até 1000. Não apresentou o erro;
- Filtro do 1001 até 2000. É apresentado o erro.
Sabe-se então que o problema é no processamento de algum produto entre 1001 e 2000.
- Filtro então do produto 1001 até 1500. Não apresentou o erro;
- Filtro do produto 1501 até 1700. Não apresentou o erro;
- Filtro do produto 1701 até 2000. É apresentado o erro.
Sabe-se então que o problema é no processamento de algum produto entre 1701 e 2000.
E assim consecutivamente.
Então assim sendo, reduzir a extensão entre esses dados, até chegar no causador.
Ao localizar o produto causador do erro na chamada do processo, poderá validar a integridade do registro, bem como, comparar com outros registros que não apresentam o erro, para identificar qual a falha do dado gravado.
(Obs: com base nessa localização, pode-se inclusive mapear em segunda instância, através de novas simulações, o que estaria interferindo na gravação incorreta desse dado).
4º Demais causas não mapeadas
Caso tenha se certificado de não haver inconsistências em seu dicionário de dados; estar com as rotinas e procedures devidamente atualizadas, e não se tratar de erro em alguns registros específicos gravados na base, então, não sendo nenhuma das causas acima mapeadas, é possível realizar alguns procedimentos de análise. Realize os procedimentos a seguir e analise junto à sua equipe de TI, ou junto ao Suporte Técnico.
- Abra o arquivo "error.log" e verifique se houve algum incidente no processamento da rotina;
- Habilite a chave "TRACESTACK=1" no seu arquivo appserver.ini (clique aqui para mais informações).
- Abra o dbAccess Monitor de seu ambiente, clique na aba "Mensagem" e aperte o botão "LIMPAR". Em seguida execute a rotina de Processamento em questão e deixe a mensagem "Erro na Chamada do Processo" ser exibida na tela. Retorne ao dbAccess Monitor e verifique na aba mensagem a existência de algum texto de não-conformidade gerado pela rotina.
É importante esclarecer que o Suporte Técnico visa análise de possíveis Inconsistências / não conformidades no Produto (alternativa 2 desta documentação). Para possíveis inconsistências de dicionário ou de base, o atendimento deve ser avaliado em modo de Consultoria (mais detalhes sobre o escopo de atendimento do Suporte e Consultoria, aqui: Modalidades e Escopo de Atendimento do Suporte Técnico). Após eliminar as principais causas aqui mapeadas, havendo necessidade de acionar o Suporte técnico, envie o parecer de cada etapa abordada neste documento, e envie também para análise os arquivos console.log, console.bak, error.log, appserver.ini, dbconsole.log, dbaccess.log, cópia da tabela SX6 e o inspetor de objetos.
Saiba mais:
Clique aqui e veja mais artigos sobre Processamentos no Estoque
0 Comentários