01. Visão Geral sobre o erro apresentado.
O erro "Erro na chamada do processo" em processamento de rotinas ADVPL (Advanced Protheus Language) com procedures no banco de dados geralmente indica um problema durante a execução de um processo que envolve a chamada de uma procedure no banco de dados.
A mensagem de erro sugere que houve uma falha ao chamar ou executar um procedimento armazenado (procedure) no banco de dados a partir do código ADVPL. Várias razões podem causar esse tipo de erro, e a resolução pode depender do contexto específico da aplicação e do ambiente de execução.
02. Necessidades.
- Avaliação Nivel de Suporte Técnico do cliente (equipe de infraestutura/ T.I )
- Acesso ao Banco de dados / Dbaccess / Logs
03. Primeira camada de analise.
Caso tenham efetuado ajuste no tamanho de campos, valide se os campos de custos e quantidades, estão com tamanhos uniformes, é importante que os campos decimais tenham o mesmo tamanho e decimais, abaixo uma relação dos campos de custos.
Valide se a rotina em questão utiliza THREADS, caso utilize, efetue o teste sem a utilização de threads.
Exemplo:
-Custo médio > parametro MV_M330THR, deixar como 1.
1º Desinstale a procedure da rotina em questão.
Efetue a desinstalação da procedure da rotina com erro, para que realize o processamento da rotina sem a procedure, e então constatar se o erro esta somente relacionado a procedure ou não, e caso seja gerado error.log durante o processamento da rotina, basta anexar o arquivo para avaliação do suporte.
Descobrindo qual é a procedure referente a rotina, através do configurador da gestão de procedure:
(SIGACFG > Base de dados > Dicionario > Stored Procedure, aqui vamos supor que o Erro na chamada do processo, ocorre na rotina de custo médio, então desinstalar a procedure 19.
O erro mais comum nesses casos, é vinculado ao Estouro de campo (Como avaliar o estouro e corrigir):
Para mais inconsistência mapeados do erro da chamada de processo acesse:
2º Valide se a procedure e rotina estão atualizadas.
Verifique se a rotina e sua procedure vinculada a mesma, estão contempladas das ultimas atualizações, disponibilizadas no portal do cliente, pois o processo que esteja enfrentando, ja pode ter sido mapeado e corrigido, então efetue a reinstalação da procedure conforme passos abaixo e realize um novo teste.
- 1passo Acumulado SIGAEST conforme sua versão (Acumulado estoque)
- 2passo https://suporte.totvs.com/portal/p/10098/download?e=946864 (Versão da central de procedure)
- 3passo Cross Segmento - Backoffice (Linha Protheus) - SIGAEST - Procedure Desatualizada e Incompatível, quais as diferenças? É possível utilizar as rotinas? (Processo para REINSTALAR as procedures, sem necessidade de DESINSTALAÇÃO)
Efetuar o Backup antes da atualização.
Todos os procedimentos devem ser realizados primeiro em ambiente TESTE atualizado.
04. Procedimentos.
- Sugerimos executar o teste em ambiente de homologação, com NORUN ativado se possivel, e preferencialmente de forma exclusiva para facilitar a coleta dos logs corretos.
- Habilite a chave "TRACESTACK=1" no seu arquivo appserver.ini (clique aqui para mais informações).
- Acessar a aba de mensagens do DBMonitor e clique em limpar, depois em Sim
- Efetue a limpeza também do arquivo console.log e dbaccess.log em suas respectivas pastas. (abaixo exemplo de onde os arquivos se encontram no ambiente padrão, validar em seu ambiente)
DBACCESS.LOG
CONSOLE.LOG
- Em seguida, acesse a rotina que ocorre o Erro na Chamada do Processo, e ative o rastreio do DBMONITOR e execute a mesma até apresentar o erro (aqui vamos demonstrar o recalculo de custo medio)
Abra o Dbmonitor > Clique em Rastrear > Selecione o usuario e Rotina ja abertas, e ficara assim a sua tela.
- Após ativar o rastreio, execute a rotina até gerar o erro, salve o Dbtrace e log da aba de mensagens.
- Com os dados coletados, anexe e envie para avaliação do time de suporte tecnico, juntamente do inspetor de objetos, da seguinte maneira como exemplo:
Olá Suporte,
Estou enfrentando o Erro na chamada do processo, ao utilizar a rotina (Nome da rotina), e ja segui o procedimento do boletim (Cross Segmento - Backoffice (Linha Protheus) - SIGAEST - Erro na chamada do processo em rotinas de Processamento), porém sem sucesso, segue anexos:
-Dbtrace; Dbconsole.log; Console.log; Dbaccess.log; Inspetor de objetos
- E TAMBÉM O ARQUIVO DA PROCEDURE DE SUA BASE DE DADOS, SOLICITAR APOIO AO SEU DBA PARA COLETA DESSE ARQUIVO(CORPO DA PROCEDURE COM ERRO), ABAIXO SEGUE EXEMPLO DE COMO COLETAR NO SQL-MANAGEMENT
Olá Suporte,
Estou enfrentando o Erro na chamada do processo, ao utilizar a rotina (Nome da rotina), porém meu ambiente é CLOUD e não tenho acesso aos logs para realização de coleta de dados.
Segue dados do ambiente:
(ATENÇÃO: O suporte só efetuara a avaliação somente em ambiente de Homologação, portanto sugerimos que o cenario esteja apresentado em ambiente de homologação, e caso não esteja, deve-se solicitar a replica do ambiente de produção para o ambiente de homologação, de forma que possamos prosseguir com as analises )
Ambiente teste deve estar configurado em modo EXCLUSIVO.
-Nome do ambiente
-Arquivo Smartclient.ini do ambiente que esta acessando
-Informar qual a "Comunicacao do cliente" esta usando (ex: TCP)
-ID do ambiente
-Nome e código da filial que se encontra com o erro
-nome de usuário e senha adm https://getmypassword.cloudtotvs.com.br/ (sugerimos um usuario para o suporte, informe a senha desse usuario no link, não é para gerar uma senha exemplo de como colocar abaixo, para termos a senha do USUARIO de acesso ao ambiente)
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.
Em alguns casos sera 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).
É importante esclarecer que o Suporte Técnico visa análise de possíveis Inconsistências / não conformidades no Produto. 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 no ticket.