Skip to Content
Former Member
Jan 05, 2013 at 03:09 PM

Switching schema name for a report at runtime


This questions may have been asked before, but in so far I couldnt get the solution going. We have a requirement to display adhoc reports where the user chooses the Oracle SID (with host/port) and the schema name of data and the report would pull the data from that schema. It is assumed that the Oracle user/password that is supplied will have access to that Oracle instance and read the objects from the specified schema. The schema itself would have same time of objects across all instances, just the name will different. And it is also possibel that the user may request two reports simultaneously each fetching data from different connections.

I suppose we have two options:

1. Create a viewer web package & access the reports, update its login credentials etc before passing it to the viewer classes. This work if I access the report as a file (*.rpt). However, if my report is deployed in the enterprise there isnt a way to access it & create ReportClientDocument. For example, the following call is stated as deprecated

IReportAppFactory reportAppFactory = (IReportAppFactory) es.getService("","RASReportFactory");

boReportClientDocument = reportAppFactory.openDocument(Integer.parseInt(reportID), 0, java.util.Locale.US);

2. On the other hand, to simplify the deployment (we didnt want to write or deploy our own viewer package necessarily), I suppose one can modify the web.xml of the deployment, write some sort of filter or handlers to update the report or report source on the fly. From the literature it looks possible, but I again I couldnt find a solid example to demonstrate this or if this even a suggested solution.

Thanks for your help, appreciate your support.