Erros relacionados ao Repositório de Objetos (RPO) podem ser frustrantes. Eles impedem a execução de código, mesmo que seu fonte pareça correto. Este guia prático ajuda a diagnosticar e resolver problemas como:
- Função que existe no fonte, mas não no repositório.
- Compilação incompleta que invalida o RPO.
- Chamada de função que não é encontrada no AppMap.
Invalid function type. Please check RPO file
Este erro ocorre quando o servidor de aplicação tenta executar uma função básica da linguagem (disponibilizada pela plataforma) que foi compilada em um repositório de objetos que ainda não possuía essa função. O servidor critica a chamada por estar marcada como função de repositório, mas não encontrada.
Um exemplo é a função strTokArr2, disponível a partir da build 7.00.131227A-20140908. Se um programa que a utiliza é compilado e executado em um ambiente desatualizado que não reconhece a função como básica, o erro pode ocorrer.
Function has compilation problems. Rebuild RPO
Similar ao anterior, este erro acontece ao executar uma função básica da linguagem que não é suportada pelo servidor de aplicação em uso, mesmo que o programa tenha sido compilado em um ambiente que a suporta. Isso pode ocorrer se o repositório de objetos de um ambiente atualizado for copiado para um ambiente desatualizado.
O servidor de aplicação mapeia a função como básica, mas ao tentar executá-la, a encontra ausente, resultando na mensagem de erro.
InterFunctionCall: cannot find function in AppMap
Este erro indica que o servidor de aplicação tentou chamar uma função que não foi compilada ou foi removida do repositório de objetos. O AppMap, que mapeia as funções disponíveis, não encontra a chamada.
Um cenário comum é a aplicação de um patch em um ambiente desatualizado. A função mapeada como de repositório pelo patch não é encontrada no RPO do ambiente base, gerando o erro.
Invalid repository due to an incomplete compilation
Quando a compilação de um código-fonte AdvPL é abortada por um erro no próprio código, o arquivo-fonte é marcado como inválido. A presença de um ou mais arquivos inválidos torna todo o repositório de objetos (RPO) inválido para uso.
O repositório só volta a ser considerado válido após todos os arquivos com erros de compilação serem corrigidos e recompilados com sucesso, ou removidos do repositório.
Armadilhas
- Atualização de ambiente: A principal causa para os erros relacionados a funções básicas ausentes ou mal mapeadas é a inconsistência entre as versões do servidor de aplicação e o repositório de objetos. Certifique-se de que os patches e compilações estejam alinhados com a build do seu ambiente.
- Compilação abortada: Um erro simples em um fonte pode invalidar todo o RPO, impedindo a execução de outras rotinas. Monitore os logs de compilação para identificar e corrigir rapidamente fontes com problemas.
Fontes oficiais
- Invalid function type. Please check RPO file - TOTVSTEC
- Function has compilation problems. Rebuild RPO - TOTVSTEC
- InterFunctionCall: cannot find function in AppMap - TOTVSTEC
- Invalid repository due to an incomplete compilaton - TOTVSTEC
Paginas publicadas pela TOTVS na Developer Network.
Comentarios 0