ERP - WebServices - Como efetuar a limpeza da tabela de controle de registros integrados (E000CIX)
Dúvida
Como efetuar a limpeza da tabela de controle de registros integrados (E000CIX)?
Solução
A tabela de controle de registros integrados (E000CIX) pode ficar com grande volume de registros em bases de dados onde haja muitos registros e sistemas integrados.
Para que registros dessa tabela possam ser limpos, diminuindo o consumo de espaço no banco de dados, e garantindo uma melhor performance para todas as rotinas que fazem acesso a tabela E000CIX, você deve efetuar a ativação do processo agendado do tipo rotina 160 - Limpeza da tabela E000CIX (acessa a documentação do processo através do ajuda da tela F000AGE do Gestão Empresarial | ERP).
Importante
A rotina apenas exclui os registros que estão com o campo E000CIX.SITIEX igual a 'S-Processado com Sucesso', caso não haja definição do parâmetro SITUACAO como 'P' (Pendente). Para exclusão de registros como 'P', é necessário fazer a parametrização de um processo agendado específico, conforme a documentação do processo.
Atanção
- O processo deve ser parametrizado para ser executado regularmente;
- Você deve parametrizar adequadamente este processo, garantindo que a quantidade de dias de existência do registro na base de dados é compatível com a sua necessidade de armazenamento das pendências na tabela E000CIX (por exemplo, se você faz muito uso desses registros para análises de situações relacionadas a integração em intervalos médios de 15 dias desde a data da criação do registro até o término da análise, então você deve parametrizar o processo para excluir registros no mínimo de 15 dias);
- Uma vez sendo executada a exclusão de um registro, não há como retornar os registros sem que seja gerada uma nova pendência para o mesmo cadastro/tipo de informações;
- Caso você não tenha o conhecimento técnico necessário para parametrizar esse processo e até mesmo validar os registros pendentes que seriam reexportados, solicite o apoio de um Consultor da Senior;
- Você pode cadastrar mais processos agendados do tipo rotina 160, dividindo-os conforme os parâmetros desejados. No entanto, você não deve parametrizar processos que sejam executados no mesmo momento e possam efetuar análise em cima dos mesmos registros (exemplo: dois processos agendados que executam análise dos registros para o mesmo sistema integrado). Esse tipo de configuração pode causar problemas na execução do processo agendado e na exportação dos registros (causando locks e deadlocks na tabela E000CIX);
- É importante que a primeira execução desse processo agendado em um ambiente que tenha muitos registros na tabela seja realizado em um momento onde não haja grande volume de dados sendo manipulados, para evitar ainda mais a concorrência de registros nas tabelas. Além disso, para a primeira execução do processo em uma base que esteja com muitas pendências, orienta-se:
- Desativar temporariamente a execução do processo agendado de rotina 82, que trabalha com re-pendenciamento de registros de integração e faz acesso direto na tabela E000CIX;
- Desativar as integrações que acessem WebServices (porque elas vão fazer acesso a tabela E000CIX também);
- Que a execução do processo seja acompanhada por um DBA, pois poderão ocorrer alguns locks que precisem ser verificados/acompanhados.
- De forma algum deverá ser realizado comando para deletar registros da tabela E000CIX manualmente. A tabela E000CIX contém ligação com outras tabelas adicionais do banco de dados. A deleção de registros diretamente na tabela E000CIX causará inconsistências na base de dados. Deve-se utilizar o processo agendado para essa operação de limpeza
Para mais informações sobre os WebServices do Gestão Empresarial | ERP, consulte o artigo ERP - WebServices - Onde é possível encontrar informações diversas sobre processo de integração via WebServices (índice).
Atenção! Antes de realizar qualquer alteração, analise o impacto que poderá ter em outros lançamentos/processos do sistema.