Chamada de relatórios Discoverer 10g em aplicações WEB

Recebi recentemente a missão de fazer a chamada de relatórios desenvolvidos via discoverer 10g em um portal desenvolvido pela empresa em Oracle PL/SQL WEB que está em outro servidor. O primeiro desafio foi, como fazer duas aplicações que utilizam mecanismos de autenticação diferentes possam conversar entre si. A solução adotada, segue descrita passo-a-passo abaixo. Não sei se esta é a melhor forma de resolver este problema, mas neste caso foi a alternativa que melhor se adaptou ao problema.

1º Passo: Acessar o Enteprise Manager – Instância Middle e clicar em Discoverer

discov11

2º Passo: Clicar na pasta Administração e em seguida no link Conexões Públicas.

discov2

3º Passo: Em Conexões Publicas, clicar no botão Criar Conexão.

discov31

4º Passo: Digitar as informações necessárias para a conexão com sua EUL, lembrando de deixar a senha em branco conforme a figura abaixo.

discov4

5º Passo: conectar-se ao discoverer viewer e capturar o link de seu relatório. O link original é mais ou menos assim:

http://<seu_aplication_server>:<porta>/discoverer/app/open?event=openWorksheet&worksheetName=<NOME_DO_RELATORIO>%2F1&stateStr=eNrtktFu2yAUhl8GW5tQIuO40Xrhq07dVVWpaa8jDMQ4wcYBCnaevscmkbxV615gvuBHPz/nHD4ZhZOVDiV5wf2eW9Ak356V3Q9JTopk8/PV4Fbzd6XXr6CYab4IbCDwqJWkmKyfIIXPDiLU1BRLbSjujbCiw7u3J7h0aCE9tGpxn/zWYK7ABQyxpTrA0YEqKxbxuz/beaquxW$R/HNFXdlFIPsciG$i5rxoybn1woBBZjSwDKcVaRUG1za6uwSyzgI$jQP3uKKXkIVx6Bn2cBCO43DkfoRLASoX15pF/R/xXxErNnMB1K76ErarxqFqrHKTMKkn4jPwq3mcI5G2jLBha1uQLLo37$tO9b9bVU09r6ui4U5ityKXcL/dTpGqkaKppYsm$bGJ5i9DeSM6h5m8/SexyLG$jR38NDSBb6YxPwGxDqWeudJ6nrLuVLLDnpKsQLRHE8g==&stateID=

6º Passo: Remover o &stateID da URL acima e adiciona-lo á sua aplicação.

A remoção do parâmetro stateID, da URL do seu relatório, fara com que o Discoverer Viewer 10g verifique se o usuário efetuou a conexão antes de exibi-lo. Caso a conexão não tenha sido realizada, será solicitada a senha do usuário para a conexão ao Discoverer Viewer. Esta senha será solicitada uma única vez por sessão, ou seja, uma vez digitada, nas próximas chamadas do relatório a senha não será mais requisitada. Ela somente voltará a ser requisitada quando o browser na sessão corrente for fechado.

Anúncios