Wednesday, July 09, 2008

Where do I get the XML file or request output file for my BI Publisher Report / Concurrent Request?

A quick post ... it's been a frenetic few months, so blog posts a bit thin lately but plenty of good stuff in the pipeline!

Generally when I'm designing a BI Publisher/XML Publisher report I'll create a concurrent program that generates XML, I'll follow the usual steps:

  1. Setup the concurrent program to output Text
  2. Run it to ensure its working
  3. Switch the concurrent program to output XML
  4. Run the concurrent program to output XML
  5. SFTP/copy the o*.out XML file from $APPLCSF/$APPLOUT
  6. Load it into Word via the BI Publisher Desktop plugin and design the layout "on the run".
  7. Setup the BI Publisher Data Definition/Template
  8. Perform system/unit tests

Is there an easier way to get the XML file from a concurrent request? Sure is - nice and easy through the front end.

Get the XML File from a BI Publisher based concurrent request/report:

  1. View->Requests
  2. Find the request you're interested in
  3. Click on Diagnostics button
  4. Click the View XML
  5. Save the file to your PC by doing File->Save As, *.xml

But where does the XML file live?

Well, by default it is $APPLCSF/$APPLOUT/o{REQUEST_ID}.out.

But if that's the XML file, then where does the actual output file reside as the location of the XML file is where normal request output resides?

Get the Request Output File for a BI Publisher based concurrent request/report:

The output is $APPLCSF/$APPLOUT/{REPORTNAME}_{REQUEST_ID}_{COUNT}.PDF|RTF|EXCEL|HTML

Where

  • REPORTNAME is the concurrent program short name,
  • REQUEST_ID is the concurrent request ID
  • COUNT is a counter based on the number of times a request has been re-published.
  • One of PDF, RTF, EXCEL, HTML is the file extension/type dependent on the output formats chosen.

An example is: XXXX_FNDSCURS_2803880_1.EXCEL

Output file location courtesy of Tim's post here.

Cool, file locations identified!

 

5 comments:

Pavithra said...

Hello Gareth,

I have the concurrent program output as __1.pdf. I republished the report, another concurrent program got submitted and the output file name is __1.Excel

My requirement is to send an email with the concurrent program output. I’m in need of help on framing the logic to pick the output file.
Should I increase the count for republished report or I could just frame the logic with _1 always?

Please advice.

Gareth said...

If you are on 12.1.x then you will have Delivery Options on submitting concurrent request that will provide this for you with no modifications.

Regards,
Gareth

Kalpesh Babar said...

hi gareth,

thanks for your post it helps me a lot.

I am working on a program which copies the different bi programs output like .pdf,.xls etc. to some location so I don't want to make a number of programs for this requirement. Really appreciate if you advice me how to achieve this.

I 'have did it for single program and it is working fine. But am stuck in making it for number of programs.

One more question, is there any table's which stores this information.

Regards,
kalpesh

Gareth said...

Hi Kalpesh,
If you've done it for one program should be trivial to iterate over various programs.
Re database table, yes, two locations, firstly all environment variables are stored per concurrent manager in table fnd_env_context: see my blogpost here:
http://garethroberts.blogspot.co.nz/2010/04/environment-variables-from-database.html

Secondly, output directory is on table fnd_concurrent_requests.outfile_name and outfile_node_name.

Regards,
Gareth

Kalpesh Babar said...

Hi Gareth,

Again thanks a lot...

Found the table name FND_CONC_REQ_OUTPUTS which stores the bi output path and file type.
Now am able to do it for various File type by passing the Request ID only.

Really appreciate for your help.

Regards,
kalpesh