BI Publisher accesses a 10g database through its data template and transforms this gathered data into XML through a custom XSLT layout template. Thereafter it transfers its output as XML over a FTP connection.
My question is, how can I run BI Publisher with a shell script (from the command line with an external scheduler) to do all this, where the report names (or data template and layout template for that matter) need to be variable (there are multiple different reports).
Note that I am relatively new to this batch processing ergo an example would be very valuable to me.
I am slightly confused by your response. Why do we need to engage web-services in order to schedule a job?
Let me go into a little bit more detail of what I am trying to do. I have a parameterized report, which contains multiple grids. Hence bursting doesn't work. (secondary grids drop off after the first bursted page).
I am trying to work around the issue by scheduling execution of reports with a different parameter every time.
Right now I am able to manually schedule a report using the BIP scheduler.
What I am looking to do is to schedule a BIP scheduler job via command line script. If this is not possible, then maybe there is a different way to go about scheduling an execution of a same report with a different parameter every time?
BI Publisher does not provide a command line interface. It provides a web service interface if you are running the BI Publisher server and want to run, schedule, etc. any of the reports you have created.
There is also a Java API if you want to leverage lower level Publisher operations in a custom application but, then your application takes responsibility for catalog mgt, scheduling etc.
To accomplish what you want, Vestrini's reply is a good one.
as mentioned, you can create a driver program in j developer to run the reports for you using the code vestrini supplied above. you can query the employee and department tables and create recordsets with your parameters.
insert the code block to execute the reports inside a while loop that runs through your recordsets.