Thursday, August 20, 2009

Siebel Reporting Architecture with BI Publisher

BI Publisher is the Reporting Platform for Siebel

BI Publisher has been introduced to Siebel users since its Release 8.1.1 as a new reporting platform replacing the older Actuate base reporting platform. It is tightly integrated with the Siebel architecture and its applications. The users can run and manage their reports with BI Publisher from Siebel applications UI.

The BI Publisher integration patch for older releases like 7.7, 7.8, 8.0 are currently planned. The detail can be found from a metalink note.

So now you can use BI Publisher to start developing new reports and taking advantage of the a lot of benefits that BI Publisher offers. But how should we do with the existing reports that have been developed with the older Actuate base platform?

That is the question I’d like to address by discussing how to convert the existing Actuate base reports to BI Publisher base reports in Siebel applications. But, before I start talking about the reports conversion, let’s take a look at how the new Siebel reporting works with BI Publisher first.

Two Different Modes for BI Publisher Integration

There are two different ways of integrating BI Publisher as Siebel reporting platform. One is for Connected mode (Siebel Web UI) and another is for Disconnected mode (Siebel Mobile client and Developer web client). This is only a difference in terms of the way BI Publisher is integrated technically and how the reports are generated inside the Siebel application. So from the end user point of view there is no difference when they request to run the reports.

The Connected mode utilizes BI Publisher Server while the Disconnected mode uses internally embedded version of BI Publisher reporting engine, which is a set of Java libraries. I will describe the two different Siebel Reports Architectures and Reporting flow below.

Siebel Reports Architecture and Report Flow Generation for Connected Mode

The Siebel Web Client allows you to run reports in connected mode. When you try to run the reports, the related Integration Objects, which provide the ability to obtain Siebel data in XML format, extracts the relevant data from the Siebel database. A Siebel reporting server (XMLP Report Server Component) issues an outbound Web service call and pass the XML data to a standalone BI Publisher Server. The BI Publisher Server accepts the XML data file, convert a registered RTF Template to XSL-FO template, marry the XML data with the template, and generate a final report output such as PDF. The BI Publisher Server then sends the report output file back to the XMLP Report Server Component using an outbound Web service call. The report is stored in the Siebel File System and then displayed in the Siebel UI.

Siebel Reports Architecture Diagram for Connected Mode

Here is the Siebel Reports Architecture diagram.



  1. A report generation event is triggered from a view in the Siebel user interface
  2. The Siebel Application Object Manager (AOM) routes the event to Siebel database
  3. The Server Request Broker (SRBroker) and the Server Request Processor (SRProc) monitor the request and pass it to the XMLP Report Server Component through the Report Driver Service
  4. The XMLP Driver Service makes a call to the XMLP Data Service
  5. The data service requests data to the EAI Siebel Adapter
  6. The EAI Siebel Adapter fetches data from the database
  7. The EAI Siebel Adapter returns the data
  8. The XMLP Data Service returns control back to XMLP Driver Service through the data service
  9. The XMLP Driver Service again makes a call to the XMLP Adapter Service
  10. The XMLP Adapter makes a proxy business service
  11. The Proxy Business service makes a Web service call to the BI Publisher Server to execute the report
  12. The BI Publisher Server executes report generation, returns back generated report binary data
  13. The control comes back to the XMLP Adapter Service
  14. The XMLP Adapter Service then downloads the report and creates the file in the Siebel File System
  15. And it displays the report in the UI


Siebel Reports Architecture and Report Flow Generation for Disconnected Mode

The mobile clients—Siebel Mobile Web Client and Siebel Developer Web Client, allow you to run Siebel Reports interactively in disconnected mode.
In disconnected mode, the BI Publisher Server is a logical component that uses the BI Publisher XDO Engine to manage report generation. The XMLP Report Business Service is the interface to this logical component that instantiates the EAI Java Business Service to load the JAR files to the JVM (Java Virtual Machine). The BI Publisher XDO Engine then processes the XML data, XSL template, and XLIFF files to output the report.

So again, even with this mode BI Publisher is used only to generate the final report output, not for the data generation part. The reporting data is generated by the Integration Object and the XML data and the relevant RTF Template file are passed to the BI Publisher XDO engine, which will generate a final report output.

Siebel Reports Architecture Diagram for Disconnected Mode

Here is the architecture diagram for Disconnected mode


  1. A report generation event is triggered from a view in the Siebel application.
  2. Data is fetched from the database by the EAI Siebel Adapter and stored as XML in the XMLP\DATA folder in the Siebel installation directory.
  3. A call is routed to the XMLP Report Java Business Service.
  4. The XMLP Report Business Service instantiates the EAI Java Business Service, and loads the JAR files to the JVM (Java Virtual Machine).
  5. The BI Publisher XDO Engine loads the XDO classes from the JAR files, and then the XML, XLIFF, and XSL template are given as input to the XDO classes for generating the report. The report is
    temporarily stored in XMLP\REPORTS, and then sent to the Siebel File System.
  6. The control then goes back to the Siebel user interface where the generated report appears.

So this is how Siebel has integrated BI Publisher for each mode (Connected vs. Disconnected) and how the reports are generated within the integration from a technical perspective. Next, I will talk about how to run the BI Publisher reports within Siebel. Stay tuned!


  1. Can you give the detailed procedure for integrating the BI Publisher in the Disconnected Mode?

  2. The integration is done inside the Sibel system for the disconnected mode, so no step needed to integrate.

  3. Very good information. For the disconnected case, how do the template files (.rtf, etc.) make it to the local machines XMLP\TEMPLATES from the server. Does this need to happen out of band of the normal siebel sync? Or is there support for this by adding report templates on the server side and the sync down?

  4. Hi kanichiro,
    I appreciate your help in BIP reports.
    I have a issue in Generating a Venilla Opportunity List Report. We have recently installed Siebel 8.1.1 and integrated Siebel Server with BI Server and tried to execute the Opp list Report. But I got error saying XMLP Report Generation time exceeds the Threshold time. Please see the generated Report Output File from BIP my Reports screen. But even it is not there in My Reports.
    I tried to generate it from MY BIP Reports Screen it says No attachement has been found.SBL-SVC-00155.I tried with custom report also same result.
    I tried in Bookshelf and other sites. Couldn't able to resolve.
    Please help me where is the issue.
    I will appreacite your help.

  5. Have you tried to increase the Report Wait Time ? Here is an instruction from the document.

    To set the report execution waiting period for reports
    Navigate to the Administration - Application screen, then the System Preferences view.
    In the System Preferences list, select BIP Report Wait Time, and then change the value to any number greater than 100.
    By default, the threshold is set to 100 seconds.

  6. I Tried setting the WaitTime to 300,500 etc.
    But resulted same.
    Even i tried a detail report which has only few fields it also gave me the same result.
    The request is going to BIP Server but from there it seems it got stuck there.
    I was searching in the forum i got some clue that the we need to close the HTTP Connection by writing a code snippet function Service_PreInvokeMethod (MethodName, Inputs, Outputs)
    if (MethodName == "SendReceive" || MethodName == "Send")
    return (ContinueOperation);
    in EAI HTTP TRANSPORT Business Service.
    But as we are in upgrade project they have are using some custom code like "function Service_PreInvokeMethod (MethodName, Inputs, Outputs)
    if (MethodName == 'SendReceive')
    Inputs.SetProperty("HTTPMaxIdleSeconds", "-1");
    Inputs.SetProperty("HTTPSleepTime", "240000");
    to nsure each HTTP is not trying to reuse a dead connection.

    So is this the code is impacting or do you nwat me to use the above code in order to get my reports.
    Pls suggest.

    return (ContinueOperation);

  7. Haven't encountered this problem. I don't know why your environment needs such workaround. Maybe something to do with your installation or configuration not appropriate ? You might want to submit a SR.

  8. Hello suman,

    can you tell us the count of records on which you are trying to run report

  9. Hi there,
    I got an error when trying to generate the XML from my IO as below:

    The instruction at "0xfffffff9" referenced memory at "0xfffffff9". The memory could not be read.

    any idea?

  10. Hi Suman,

    I am having the same problem. Did you implement that?, did it solve your problem?

    Thank you,


  11. Hi Suman and William,

    I've the same probleme as you. Did you solve the problem


  12. Hi all,
    Recently we had upgraded siebel to
    I am facing an issues one of my custom report.
    Problem description: some times reports are getting blank. Any idea?

  13. Hi, I have the same problem "Some times reports are getting blank".

    Any solution?