Localizando a Query de uma pagina OAF Oracle

Bom dia!

Gostaria de compartilhar com vocês uma facilidade para aqueles estão iniciando a programação em OAF (Oracle Application Framework).

Deixo aqui detalhes de como localizar um VO (ViewObject) de uma página Oracle OAF. Para isto, siga os passos abaixo:

Vamos utilizar como base a página de Requisição do Oracle iProcurement.

Estando na página “Informações sobre Requisição” do iProc, verifique no final da página que você irá ter um “Sobre esta Página”:

Guarde a informação do campo que você deseja pesquisa o VO (ViewObject – Que é a view que retorna a informação da LOV que você precisa). Todo componente da tela está sendo consultado por um VO.

O campo que precisamos pesquisar é o “Local para Distribuição”:

Clique em “Sobre esta Página” conforme mencionado no item anterior e terá uma página como esta:

Nesta página, clique em “Expandir Tudo”

E terá isto (Página com todos os campos/VO’s)

Dê um control + F e pesquise por: “Local para Distribuição” que é o campo que você precisa localizar:

Verifique o VO deste campo é o “ReqSummaryVO”. Ou seja, o select deste campo é este ViewObject.

Clicando sobre ele, você será redirecionada para uma outra página que irá conter o “select”:

Você pode utilizar esta consulta para verificar o porquê seu select está falhando quando a sua LOV não retorna um valor esperado. Mas no seu caso, o que interessa é os passos a seguir.

Verifique que acima do SQL apresentado, você tem um caminho:

Este caminho é onde se encontra o VO fisicamente. Ou seja, no $JAVA_TOP do servidor Oracle você terá um ReqSummaryVO.xml com as informações que deseja.

Acessando o Unix/AIX para localização do VO.

Acesse via  SSH o $JAVA_TOP do servidor de aplicação:

Após isto, você terá que navegar até o caminho localizado anteriormente que demonstra o caminho correto do seu VO, que é:

Portanto, continue acessando os diretórios até chegar no caminho correto:

Agora você está no diretório onde está o VO que deseja. Dê um locate para confirmar:

Verifique que ele irá existir:

Você pode também chegar a este destino por um client, exemplo FileZilla, como no exemplo a seguir. Veja que tenho o mesmo arquivo.

Pronto, localização feita!

Agora você precisa pegar este XML, gerar uma cópia (bkp) e criar seu novo VO com o mesmo nome.

Somente para ficar mais claro, segue um visão rápida deste VO. Abrindo o XML, você tem o seguinte:

Abra em um editor bom, como o notepad++

Verifique que é uma estrutura XML normal, e o que interessa neste momento para você é a tag “SQLQuery”

Aí está o SQL que você precisa.

Se você consegue alterar o join, sem adicionar campos, você pode fazer isto, salvar no mesmo local (lembre-se de gerar o backup como citado anteriormente) e pedir um bounce da aplicação (apache).

Feita a alteração, o bounce da aplicação, pode testar.

Se precisar de uma alteração mais avançada, como adicionar campos, regras, etc… é preciso alterar o SQL como também os atributos que estão para baixo do SQL printado anteriormente, portanto, recomendo um entendimento melhor do framework para não ficar uma alteração tão ruim, fora do padrão MVC/Oracle.

Que basicamente você iria no controlador da página (um CO (Controler) é o código de execução JAVA por trás desta página), fazer uma extensão à este VO (ViewObject), alterando o seu SQL dentro da classe. Mas como lhe disse, este seria um passo um pouco mais avançado, que sem um treinamento/acompanhamento específico é um pouco mais complicado.

Aproveitando a oportunidade, caso deseje algo mais avançado, nós da IT Convergence Brasil temos treinamentos (Como também uma fábrica de software) de diversas tecnologias, dentre elas, o treinamento de OAF que apresenta/exemplifica os principais métodos de customizações Oracle neste Framework. Material em PTB, exemplos reais, etc. Se for do interesse seu e de sua empresa, estamos também a disposição (breducation@itconvergence.com).

Espero que ajude em algo!

Grande abraço,
Junio Vitor

Deixe um comentário

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