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.BTR, PRGEMPPLANO.BTR, PRGEMPRESAS.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
Utilitário: SBP.EXE




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"#



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.