Friday, November 16, 2007

BI Publisher: Common Use for Bursting API

This is an excerpt of a post requesting to do three things in one shot (grab an xml, apply a template, send it to the printer). This exactly what bursting was designed for. Because of the obscurity of how to use the java api's for BI Publisher, people overlook the fact that you can call a majority of the api's through the command line. Nearly every BI Publisher api that is documented has a main method.

Question:

I have xml documents coming in on a linux directory. I would like to take the raw xml data and apply a template and send it to a printer.

Questions are:

1. Since there is no way to tell when the xml documents will appear for processing, is there any way I can make the BIP poll the linux directory to check for incoming files?

2. How can I apply a template and make the raw xml data beautiful?

3. Finally, after template application, I need to take the output and send it to a printer. I believe I will have to use delivery manager api's to do it.

Can someone help with the three questions?

Response:

I don't know if the xml gateway will solve your problem as "punit" suggested. don't worry though, this problem can get solved pretty easily, Chin up cowboy.

I would setup an autosys job that calls a shell script that loops through the files in a directory and executes a command line argument for the busting api's.

It's going to expect the following arguments:

java oracle.apps.xdo.batch.DocumentProcessor [-debug] -tempdir -datafile

you may need to resolve the whole path. echo $JAVA_TOP. That it's, there's really not much to the api.

8 comments:

yuvraj said...

I want to use API specific bursting and don’t want to use SQL specific bursting.

following is the XML received from Soap server call and delivered to BI Publisher.

RowSet
Row
ID
NAME
FAx-111-111-1111
Row
Row
ID
NAME
FAX-222-222-2222
Row
RowSet

I want burst this xml data using
“/RowSet/ Row” and deliver to diffrent fax no.

i have following questions on this.

Question 1-
consider the control file having select tag as below.
xapi:request select= “/RowSet/ Row

I want to know whether this select will work in case API base bursting or
whether it is used only in case of Sql base Bursting.

Question 2-
If I want to deliver the pdf to two fax numbers (111-111-1111 ,222-222-2222). How I should do this?
whether i should use
xapi:delivery tag in control file.
if yes then how i should add these entries of fax numbers to control file at runtime.

Question 3-
for API base bursting whether BIPublisher server should be running?

Ike Wiggins said...

1. Yes, It will work in a bursting control file.

2. yes, use the dollar sign and bracket syntax: "${FAX}"

xapi:fax server="your server" number="${FAX}" id="fax_delivery"

3. I don't know what your asking.....You will need to use the DocumentProcessor class in java to execute the bursting.

yuvraj said...

About the 3rd Question means
whether bursting will work if i include BIPublisher jar and and java code for bursting and no other service of bipublisher is required.

yuvraj said...

Question-i want to pdf through Bipublisher.

I am using BIPublisher Version 10.1.3.2.
I have installed Internet Information services (IIS) on the printer server.i was able to see the printer"Test Printer" when i fire the
following URL.
http://printerServer:81/printers/

On Bipublisher Admin->printer Tab i have configured the Test Printer

ServerName=printerServer
URI=ipp://printerServer:81/printers/Test Printer


I am calling following URL from Java Swing client

http://ServerName:port/xmlpserver/Report.xdo?_xpf=&_xpt=0 &HeaderId=1111 &d_printerd_p_name=Test Printer


Here the Test Printer is name of mine printer which i configured on IIS and BIPublisher server.I want to print this PDF on Printer server

can any body let me know adding "&d_printerd_p_name=Test Printer" will print the pdf on Bipublisher?

Ike Wiggins said...

3. I guess that should work.

Ike Wiggins said...

There quite a few reasons that it could be failing. I would suggest you turn on the logging and set it to statement for OBIEE and or check the Jserv log file. There are too many points of failure.

Other than that the only suggestion I would have would be to post it in the bip forumn

Sundeep said...

Ike,
I am trying to find a way to get some values out of the bursted document before or after its delivery to file system. I am bursting dunning letter data and need to get the fax number and the contact name from the data for each bursted so that I can pass them to rightfax server along with the document.

I saw one of your posts on the OTN dscussion forum regarding bursting listeners and so I beleieve you can help me.

Thanks,
Sundeep

Ike Wiggins said...

Sundeep,

The listeners don't pass the xml that's been pruned, you would need that information.

That would actually be a nice enhancement. You should log an SR with oracle and see what they say.

Ike