Re: Help with Oracle Developer 2000 Reports on the web

From: Tim Taylor <ttaylor_at_us.oracle.com>
Date: Tue, 20 Oct 1998 10:23:50 -0400
Message-ID: <362C9CF6.6DAA8D2F_at_us.oracle.com>


Bob,

My customer did not want to program parameter forms in Forms because they have over 150 reports, most of which have several parameters. So the WEB.SHOW_DOCUMENT method was an easy way to get the Report Server to do the dirty work of generating the parameter form. Also, since the Forms and Reports are all generated from Designer, it was very easy to create a library with my RUN_REPORT procedure, change the 'Default Command To Run A Report' preference to call RUN_REPORT, and regenerate the menus. The whole thing took maybe 30 minutes.

One of the advantages of your method, however, is that the username and password are not passed in clear text via a URL like they are in WEB.SHOW_DOCUMENT. In fact, the username and password are 'inherited' from the Forms program.

My method has the advantage of being able to send the reports to any report server on the network. I think RUN_PRODUCT always assumes that it will call a Reports Background Engine on the same box as the Forms runtime or Forms Server. So there may be some load balancing benefits - on NT box for a Forms server, another for a Reports server.

By the way, there is a new object type in Forms (as of Developer 2.1) called 'Report'. Look in the Forms Object Navigator. There are also a series functions and procedures (SET_REPORT_OBJECT_PROPERTY, RUN_REPORT_OBJECT, etc.) that operate on these report objects. The only documentation for these program units is in the Developer 2.1 Release Notes. The idea is that you can have Reports associated with Forms and then you have an API to submit them to Report Servers. I haven't been able to make it work yet, however.

It's always nice to have choices.

Tim

Bob Sauer wrote:

> We have successfully deployed forms/reports on the web using a run_product call. You have to program a forms
> front end to prompt the user for the report's parameters, create a parameter list and pass the list in the call
> to the report.
>
> pl_id := create_parameter_list('my_param_list');
>
> add_parameter(pl_id, 'P1', TEXT_PARAMETER, :parameter_block.p1_value);
> add_parameter(pl_id, 'P2', TEXT_PARAMETER, :parameter_block.p2_value);
> add_parameter(pl_id, 'PARAMFORM', TEXT_PARAMETER, 'NO');
> add_parameter(pl_id, 'DESFORMAT', TEXT_PARAMETER, 'PDF');
>
> run_product(REPORTS, 'report_name', SYNCHRONOUS, RUNTIME, FILESYSTEM, pl_id, NULL);
>
> Assuming your environment is set up properly, your browser will fire up adobe acrobat reader and the report will
> be presented to the user (desformat HTML will display it in html format although it is not as pretty.)
>
> It works for us anyway, you mileage may vary.
>
> Bob
>
> Tim Taylor wrote:
>
> > Stephen,
> >
> > I had this question from a customer last week. Here's how I solved it.
> >
> > You are correct to point out that RUN_PRODUCT doesn't work as a solution for
> > web-enabled Forms calling web-enabled Reports. The problem is that RUN_PRODUCT
> > doesn't know anything about the Report Server. It just calls the client/server
> > Reports Background Engine. I'll bet that you get the Reports' parameter forms
> > popping up on your server.
> >
> > The solution is to use the Forms built-in procedure WEB.SHOW_DOCUMENT(url,
> > target). This will allow you to send a report to the Report Server of your
> > choice. Only one problem: WEB.SHOW_DOCUMENT doesn't work in client/server mode,
> > only with web-deployed Forms. But there's a way around that too.
> >
> > OK, now for the solution. My customer had a menu hierarchy, where each Report was
> > called from a pull-down menu item. We created a Program Unit called Run_Report
> > that could determine whether we were running web or client/server and would make
> > the appropriate call. Each menu item then calls Run_Report and passes the name of
> > the report. Actually, all of my customers Forms and Reports are Designer
> > generated, so we created a library in Designer, changed a few preferences and had
> > Designer do all the work for us. Here's the basic outline of Run_Report (this is
> > NOT guaranteed to compile!):
> >
> > procedure Run_Report (p_report in varchar2)
> > usr varchar2(100);
> > pwd varchar2(100);
> > uif varchar2(100);
> > connstr varchar2(100);
> >
> > begin
> > uif := Get_Application_Property(USER_INTERFACE);
> > usr := Get_Application_Property(USERID);
> > pwd := Get_Application_Property(PASSWORD);
> > connstr := Get_Application_Property(CONNECT_STRING);
> >
> > if uif = 'WEB' then
> >
> > Web.Show_Document('/r30web?server=r30srv.world+report='||p_report||'+userid='||usr||'/'||pwd||'_at_'||connstr||
> >
> > +'desformat=html+destype=cache+paramform=html',
> > _blank);
> > else
> > -- create and populate a parameter list if you need to
> > Run_Product(REPORTS, ...);
> > end if;
> > end Run_Report;
> >
> > In my Web.Show_Document code, r30web is the virtual mapping to the Reports
> > Cartridge on my Oracle Web Server and r30srv.world is the network name of my
> > Report Server. Since you are calling the Report Server, an HTML page will be
> > generated for your parameter form.
> >
> > This way you have one set of Forms and Reports that you can deploy web or c/s.
> >
> > Hope this helps.
> >
> > Tim Taylor
> >
> > stephen_hirsch_at_my-dejanews.com wrote:
> >
> > > I am working on the deployment of an existing Oracle Forms and Reports
> > > application on the web. We have managed to set up the Oracle application
> > > server and web server. We are accessing the forms through an applet viewer.
> > >
> > > When we try to run a report, we get a network error message. Anyone had a
> > > similar problem ?
> > >
> > > The form from which we are running the report, calls the reports server using
> > > RUN_PRODUCT. Can anyone tell me whether the reports need to be modified to
> > > run over the web? Do the parameter forms in the report need to be changed in
> > > any way ? Do the reports need to be recompiled under a certain release of
> > > Developer 2000 ?
> > >
> > > I would appreciate any information that you have on the deployment of Oracle
> > > Reports on the web.
> > >
> > > Many Thanks
> > >
> > > Stephen
> > >
> > > -----== Posted via Deja News, The Leader in Internet Discussion ==-----
> > > http://www.dejanews.com/rg_mkgrp.xp Create Your Own Free Member Forum
Received on Tue Oct 20 1998 - 16:23:50 CEST

Original text of this message