Tempo aproximado para leitura: 00:01:20 min
Ocorrência
Ao iniciar o módulo de Apontamentos de Atividades e Recursos - APT_ATRC, o carregamento da rotina é interrompido exibindo a janela de erro em tela: Application ErrorArray reference out of bounds.
Ambiente
TOTVS Agro - TOTVS Agro - Bioenergia - Aptos Atividades Recursos - APT_ATRC – Versão 12
Causa
O erro ocorre em decorrência da existência de registros de objetos na tabela PMAUTORIDADES que não possuem correspondência cadastrada na tabela PMOBJETOS. A presença desses registros órfãos de permissão/estrutura faz com que a aplicação exceda os limites da matriz interna array ao tentar indexar os componentes de tela durante a inicialização do módulo.
Solução
Para corrigir a falha, realize a identificação, o backup e a limpeza dos registros desvinculados na tabela PMAUTORIDADES executando os passos a seguir no banco de dados:
Verificação dos registros órfãos:
Execute a consulta para listar todas as permissões sem cadastro correspondente em PMOBJETOS:
SELECT *
FROM PMAUTORIDADES A
WHERE NOT EXISTS (
SELECT 1
FROM PMOBJETOS B
WHERE A.CD_APLICAT = B.CD_APLICAT
AND A.CD_OBJCHILD = B.CD_OBJCHILD
AND A.CD_OBJFORM = B.CD_OBJFORM
);
```[cite: 8]
Backup dos registros identificados:
Gere uma tabela de backup para resguardar os dados identificados antes da exclusão:
CREATE TABLE BKP_PMAUTORIDADES_ORFAOS_20260303 AS
SELECT *
FROM PMAUTORIDADES A
WHERE NOT EXISTS (
SELECT 1
FROM PMOBJETOS B
WHERE A.CD_APLICAT = B.CD_APLICAT
AND A.CD_OBJCHILD = B.CD_OBJCHILD
AND A.CD_OBJFORM = B.CD_OBJFORM
);
```[cite: 8]
Exclusão dos registros órfãos:
Remova os registros órfãos da tabela principal e confirme a transação no banco de dados:
DELETE FROM PMAUTORIDADES A
WHERE NOT EXISTS (
SELECT 1
FROM PMOBJETOS B
WHERE A.CD_APLICAT = B.CD_APLICAT
AND A.CD_OBJCHILD = B.CD_OBJCHILD
AND A.CD_OBJFORM = B.CD_OBJFORM
);
COMMIT;
```[cite: 8]
0 Comentários