A61-Erro 3704 - índice inexistente ao gerar Sintegra - correção manual

Sumário

Sistema: Gerenciador de Aplicativos Prosoft (GAP)

Contexto: Este artigo tem como objetivo orientar na correção do erro ocorre: -2147217867 - Índice Inexistente. Processo: TerceirogeralLocalizarTerceiroBTR.
Após fechar o relatório apresenta a mensagem de fim de processamento, ao gerar o SINTEGRA.

Informações Adicionais: Não se aplica.

Resolução

A situação ocorre devido à falha nos índices da tabela.

1- Acesse o Pervasive Control Center, entre com o usuário e senha na base ?PREMPXX localize a tabela prg_terceiro_btr.
Onde ? é unidade de mapeamento e XX é o número da Proemp 

Para acessar a tabela utilize o usuário e senha padrão

2- Clique com o botão direito e escolha Edit

3- Como o erro trata-se de um problema de Índice, pode ser retornada a mensagem demonstrada abaixo, clique em ok

4- Como o erro trata-se de um problema de Índice, pode ser retornada a mensagem: Warning: Index definitions for table prg_terceiro_btr do not match the physical file. For more details run "Check Tables" from DDFBuilder.
Clique em OK

5- Clique na guia Indexes

6- Os índices estão listados e em ordem alfabética, porém será necessário fazer manutenção. Nesta etapa pode ser encontrado índices faltantes, índices fora de ordem, ou até mesmo como podemos ver nesta tela abaixo, aparentemente não existe nenhum erro.

Procedimento de Backup

Importante: Será necessária, antes de qualquer modificação, a realização do Backup. A fim de garantir a segurança da Base. O procedimento para a realização do backup da Base Geral que será modificada, no caso, é necessário a cópia de alguns arquivos em específicos, conforme seguintes procedimentos.

Backup da Base Geral (PROEMPXX)

1- Acesse a pasta PROEMPXX, na raiz desta pasta é preciso realizar a cópia de todos os arquivos .MKD.DDF e os arquivos PRGCONTADOR.BTRPRGEMPPLANO.BTRPRGEMPRESAS.BTR e PRGTERCEIROS.BTR

2- Acesse a pasta F:\PROEMP00\CTB e localize o arquivo CTB_0001.MKD e realize a cópia do mesmo.

3- Acesse a pasta F:\PROEMP00\TRI e localize o arquivo TRI_0001.MKD e realize o backup.
Acesse a pasta PROEMP \ LFS. E faça a cópia dos arquivos soltos da raiz da pasta LFS e da pasta da empresa que está apresentando problemas.

SBP

1- Para correção existe um script para a correção dos Índices da tabela de terceiros. Para isso envie para o cliente:
Utilitário: SBP.EXE 
Script: Recria indices e relacionamentos prg_terceiro_btr
 
2- Localize o script enviado para o cliente e selecione a PROEMP utilizada e entre com a senha “suporte”. Clique em Executar
 
 
3- Aguarde a execução
 
4- Após a execução será exibida a tela de erro, caso exista algum problema. Não havendo nenhum problema apresentará a mensagem de sucesso.
 
5- Como foram exibidos erros é necessário verificar do que se trata os erros relatados.
 
 
6- Acesse a pasta onde está salvo o SBP e o Script, localize o arquivo .olg e solicite a abertura o arquivo, selecione o bloco de notas e clique em OK.
 
7- Como se pode verificar no log, foi apresentada o status de erro Btrieve Error 5, que será necessária a sua verificação.
 
 
8- Acesse novamente o Pervasive Control Center, e a tabela prg_terceiro_btr selecione Edit e escolha a aba Indexes.Observe que os índices de 2 a 7, pela formatação atual em relação a anterior, estão diferentes do índice 1 e o procedimento de correção pelo SBP, realmente não obteve êxito. Portanto a partir de agora será realizado o procedimento de manutenção manual.
 
 
Correção Manual
 
1- Acesse as tabelas do banco de dados e clique em Execute SQL Commands, em seguida escolha a FPROEMP00 e clique em OK.
 
 
2- Será aberta a tela seguinte para a inserção dos comandos a serem executados.
 
 
3- Digite os comandos abaixo, para a exclusão manual do índice:

DROP INDEX "prg_terceiro_btr"."IPRG_TERCEIRO_BTR1"#
DROP INDEX "prg_terceiro_btr"."IPRG_TERCEIRO_BTR2"#
DROP INDEX "prg_terceiro_btr"."IPRG_TERCEIRO_BTR3"#
DROP INDEX "prg_terceiro_btr"."IPRG_TERCEIRO_BTR4"#
DROP INDEX "prg_terceiro_btr"."IPRG_TERCEIRO_BTR5"#
DROP INDEX "prg_terceiro_btr"."IPRG_TERCEIRO_BTR6"#
DROP INDEX "prg_terceiro_btr"."IPRG_TERCEIRO_BTR7"#
 
 
4- Para sua execução é necessário que clique com o botão direito sobre a linha que necessita realizar a execução e clique em Execute in Grid. Esse procedimento deve ser realizado para todas as linhas dos comandos digitados abaixo.
 
 
5- Após a execução dos comandos, feche a tela de comandos e ao perguntar se deseja salvar as alterações, clique em No.
 
6- Acesse novamente a guia Edit, da tabela prg_terceiros_btr, e verifique se o erro ao abrir a tabela anteriormente ainda ocorre.
 
7- Nessa tela abriu as propriedades sem nenhum erro.
 
 
Function Executor

1- Com o procedimento anterior o dicionário do arquivo foi deletado com sucesso, porém apresentou erro para a exclusão do índice 1 que não foi possível sua remoção. Primeiramente é necessária a remoção do registro físico, para a remoção do registro físico abra o utilitário Function Executor, clicando no Pervasive em Tools > Function Executor.

2- Clique em Abrir

3- Localize a pasta PROEMP00 e em seguida o arquivo PRGTERCEIROS.BTR.

4- Clique em Open

5- Clique em File Statistics.

6- Como podemos verificar o índice 1, ainda existe fisicamente. Lembrando que o índice 0 sempre irá existir e não é necessária sua remoção.

7- Certifique-se que em Key Num está selecionado o número 1 que corresponde ao índice de número 1.

8- Feche a tela do File Statistics e na tela inicial a direita escolha o Op. Code 32 e conforme a imagem. E clique em execute

9- Acesse novamente o File Statistics. E verifique se o índice de número 1 foi removido, deve constar somente o índice 0.

10-  Execute o comando abaixo agora, para remover o dicionário do índice número 1. Após digitar o comando clique com o botão direito sobre a linha e escolha Execute in Grid.

DROP INDEX “prg_terceiro_btr”.“IPRG_TERCEIRO_BTR1” in dictionary#

11- Feche o Pervasive e abra novamente, acesse a base FPROEMP00, autenticando com usuário e senha

12- Acesse a tabela a guia Execute SQL Commands e selecione a base FPROEMP00.

13- Copie e cole os comandos abaixo:

CREATE UNIQUE NOT MODIFIABLE INDEX "iprg_terceiro_btr1" ON "prg_terceiro_btr"("codigobtr")#
CREATE UNIQUE INDEX "iprg_terceiro_btr2" ON "prg_terceiro_btr"("cnpjcpf")#
CREATE UNIQUE INDEX "iprg_terceiro_btr3" ON "prg_terceiro_btr"("razsoc", "codigobtr")#
CREATE UNIQUE INDEX "iprg_terceiro_btr4" ON "prg_terceiro_btr"("apelido", "codigobtr")#
CREATE UNIQUE INDEX "iprg_terceiro_btr5" ON "prg_terceiro_btr"("personalidad", "cnpjcpf")#
CREATE UNIQUE INDEX "iprg_terceiro_btr6" ON "prg_terceiro_btr"("personalidad", "razsoc", "codigobtr")#
CREATE UNIQUE INDEX "iprg_terceiro_btr7" ON "prg_terceiro_btr"("personalidad", "codigobtr")#

 

14- Clique com o botão direito em cada linha e escolha a opção Execute in Grid

15- Note que após a execução deve aparecer a mensagem de sucesso, na guia de texto abaixo.

16- Repita o passo e clique com o botão direito selecionando Execute in Grid, para cada linha.

17- Após a conclusão da execução dos comando SQL, acesse o Function Executor clicando em Tools > Function Executor

18- Abra o arquivo PRGTERCEIROS.BTR

19- Clique em File Statistics

20- A lista dos índices devem estar preenchidas como a imagem abaixo.

21- Acesse o Pervasive novamente e abra a opção Edit da tabela prg_terceiros_btr.

22- Clique em Indexes

23- Verifique se os índices estão conforme a imagem abaixo

Quando solicitado a listagem da tabela clicando duas vezes sobre o nome da tabela ou então executando o comando como na imagem abaixo, deve ser listados todos os itens sem reportar qualquer mensagem de erro.

  • Sem rótulos