Pular para o conteúdo

Soluções para problemas comuns no Oracle Forms: Recuperação de programas corrompidos e remoção de valores fantasmas

WTF Oracle Forms ?!?!?

Para alguns ele é engessado, arcaico e para outros ele é prático e produtivo. O Oracle Forms vem atravessando os anos mesmo após tantas intenções de se encerrar o seu ciclo de vida.

Não é incomum ver empresas rodando as versões 4.5, 5.0. e 6i da ferramenta. Isso sem contar as versões 9 e 10 que estão atuando ainda em larga escala.

Para desenvolvedores na plataforma Oracle Developer, é inegável o quanto o Forms é um monstro produtivo. Assim como também são conhecidos os seus bugs bizarros, que muitas vezes persistem por gerações. É sobre eles que falarei nesse artigo, dando algumas soluções e dicas para resolver esses problemas.

FORMS CORROMPIDO

Atire a primeira pedra aquele que nunca abriu um fmb e quando foi alterar alguma trigger ou canvas, se deparou com um erro fatal ou que impedia até a compilação. Já peguei casos como esses no 4.5,5.0, 6i e na última vez no 10g. Existem algumas abordagens que podem ser feitas para a recuperação do programa, e vou detalhá-las abaixo:

1) Converter o forms para arquivo texto

Muitos não conhecem essa funcionalidade, ou conhecem mas nunca a usaram para essa abordagem. É possível converter o fmb para texto e depois convertê-lo novamente para binário. Essa solução resolve 99% dos casos de programa corrompido no Forms. Para fazer isso acesse:

Forms 4.5, 5.0 e 6i – Menu File>Administration>Convert

Forms 10g – – Menu File > Convert

Tela de Conversão Forms 10g

Ocorrido nas versões: 4.5,5.0,6i e 10g

2) Cópia dos objetos

Esta é uma solução mais trabalhosa e extrema. Consiste em criar um novo fmb e copiar manualmente todos os objetos do fmb corrompido. Essa solução já me salvou algumas vezes e garanto que é válida.

Ocorrido nas versões: 6i e 10g

VALORES FANTASMAS NO LIST_ITEM

Um bug que sempre me incomodou são os famosos valores fantasmas que aparecem no list-item. Isso geralmente acontece ao se cria-lo manualmente, salvar e depois apagar algumas informações da lista.

Existe uma maneira simples para se acabar com essas simples assombrações. Vá até o último item fantasma e tecle CTRL+SHIFT+<. Essa combinação de teclas exorciza e acaba com eles.

Ocorrido nas versões: 4.5,5.0 e 6i

PROCEDURES E FUNCTIONS FANTASMAS

Outro caso de assombração típica são as procedures e functions fantasmas. Na versão 4.5 e 5.0 muitas vezes ao se compilar o fmb, apareciam erros em procedures e functions que não existiam ao se consultar na Program Unit.

Isso ocorria quando se deletava a procedure ou a function através da própria Program Unit, mas com o PL/SQL editor aberto. Eles simplesmente perdiam a referência mas não sumiam do código do programa.Outra maneira de ocorrer esse tipo de problema, era renomear a procedure e recompilar o PL/SQL através do PL/SQL Editor. Ele alterava o nome mas não sumia com a procedure anterior.

Tela do PL/SQL Editor no Forms 6i

A única maneira de acabar com esses objetos, era procurá-los através da lista Name no PL/SQL Editor e apagá-los manualmente.

Ocorrido nas versões: 4.5 e 5.0

CADÊ MINHAS PLLs ?

Esse caso eu só vi ocorrer no Forms 5.0. O Forms simplesmente não conseguia referenciar as PLLs e consequentemente não compilava devido as dependências.

A solução era simples. Criar no registro dentro da pasta Oracle uma chave chamada ORAPLSQLLOADPATH e colocar o caminho das PLLs.

Essa dica eu dei recentemente a um camarada que estava trabalhando com essa versão e teve problemas ao instalar o Forms 5.0 em uma máquina nova.

Ocorrido na versão: 5.0

FORMS INSTALADO EM PORTUGUÊS

Esse não é um bug, mas eu vou citar essa bela dica para resolver um pequeno “problema”. O Forms instalado em Português Brasil.

Se você não quiser reinstalar tudo novamente, ou ter que conviver com “gatilhos”, siga o seguinte procedimento no Forms 10g

Procure a chave NLS_LANG e altere para AMERICAN_AMERICA.WE8ISO8859P1. Saia do Forms e entre novamente para conferi-lo em inglês.

Aviso: Esse procedimento só pode ser feito uma vez, não há volta para outro idioma após essa alteração.

Então é isso pessoal ! Se você conhecer algum bug que não está citado nesse artigo, comente e contribua com seu conhecimento !

Abraço

Sergio Willians

Sergio Willians

Sergio Willians é o fundador do GPO (Grupo de Profissionais Oracle) e possui quase 30 anos de experiência em tecnologias Oracle, sendo especialista em desenvolvimento Forms/Reports, PL/SQL e EBS (E-Business Suite) nos módulos Receivables, Payables e General Ledger. Atualmente trabalha na Scania Latin America, onde se dedica à área de integração de dados com Confluent Kafka. Sua paixão é compartilhar conhecimento com a comunidade Oracle, contribuindo para o crescimento e a excelência da plataforma.

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Marcações:
plugins premium WordPress