Wednesday, September 2, 2009

What Administrators Should Do for Siebel Reporting with BI Publisher?

There are a couple of things you want to perform as Administrators to manage the Siebel Reporting environment and maintain the BI Publisher reports in Siebel. Here is a list of the tasks that the Administrators should be responsible for.

  • Purging Siebel Reports
  • Optimize Siebel Reporting Environment
  • Enabling Logging for Debugging

Purging Siebel Reports

When the users run the Siebel reports all the generated reports output files will be stored on the Siebel database. These files can be opened from the ‘My BI Publisher Reports’ menu. However, at a certain point of time you might want to delete some of the files due to the size of keeping all the reports on the file system and also due to a compliance matter.

You as Siebel Administrator can purge such report files from the Siebel database using filters or by running a workflow process. I’m going to talk about how to set up reports to be automatically or manually purged.

Automatic Purge

You can set up to automatically purge your reports from the Siebel database after a specified time interval. The ‘BIP Delete After Days’ system preference allows you to specify any non-zero positive value that executes the Auto Purge workflow to purge the reports. Based on the value that you enter, the reports are purged from the database after the number of days specified.

To automatically purge reports

  1. Log in to the Siebel application with system administrator privileges.
  2. Navigate to the Administration - Application screen, then System Preferences view.
  3. In the System Preferences list, select ‘BIP Delete After Days’, and change the value to any positive nonzero value.
    By default, the value is set to -1 (minus 1), which means it never purge.

  4. Navigate to the Administration - Server Management screen, then Jobs view.
  5. Add a new job
  6. Click the search icon to select ‘Workflow Process Manager’
  7. Click 'New’ button to add a Job Parameter to the job
  8. Select Workflow Process Name for the name
  9. Type ‘XMLP Purge Records’ as the value
  10. Click Submit.

Alternatively you can schedule this job to run periodically using the Siebel workflow, see Siebel Business Process Framework: Workflow Guide for the detail.

Manual Purge

When manually purging Siebel reports, you can specify criteria by which the reports are purged. Reports meeting that criteria will be removed from the Siebel database. You can also purge multiple reports together by selecting a date range, the reports that were generated within the specified date range will be purged. If both the report name and the date range are entered, then only those reports with that name and that were generated within that specified date range are purged. You can also purge reports for a specific user by entering his/her user ID as the criteria.

To manually purge a report:

  1. Log in to the Siebel application with system administrator privileges.
  2. Navigate to the Administration - BIP Reports screen, then Purge Administration view.

  3. In the Purge Administration form, you can select a report name, type From Date, To Date, and select User ID. You don’t need to fill all of them. Whatever you enter will be used as a criteria to select the reports to be purged.
  4. Click Run.
    The reports that meet the specified criteria are purged.

Optimizing Performance for Siebel Reports

Now the next topic is to optimize the Siebel Reports runtime environment to have better performance and scalability. There are several attributes that you can use to best fit to your reporting and system requirements from performance and scalability perspective.

Here is a list of the attributes.

  • Report Execution Wait Time
  • Server Request Processor Wait Time
  • Setting Concurrency Parameters
  • Max Fetch Size (DSMaxFetchArraySize) for Large Data Volumes
  • Enabling Scalable Mode
Execution Wait Time

By setting this threshold value you can cancel some of the reports, which would take longer than the specified time duration, to run. In some cases some reports might take a long time and when you have multiple reports taking long time at the same time other users might have to wait for those reports to finish the jobs. Typically such long running reports should be executed at when most of the users are not accessing such as at night time as a batch process, but there is no control to prevent the users to run such reports as long as they have access to them. So you can use this attribute to control such.

Here is a list of the steps to set the Report Execution Wait Time for Siebel Reports

  1. Navigate to the Administration - Application screen, then System Preferences view.
  2. 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.
Setting the Server Request Processor Wait Time for Siebel Reports

Some times your database doesn’t respond due to heavy duty work currently being performed at the database or simply not available. Or there is a quick temporary issue on the network. Whatever the reason your report request trying to access to the database might not getting any response back. Typically the applications try to reconnect to the database after a certain waiting time. You can control this waiting time with this setting.

Follow the steps below to set the Server Request Processor Wait Time for Siebel Reports

  1. Navigate to the Administration - Server Configuration screen,  Servers, and then Components view.
  2. In the Components list, select Server Request Processor (alias SRProc).
  3. Scroll down and click the Parameters subview, and then click Hidden.
  4. In the Parameter list, select Database Polling Interval, and change value from 10 to 1. The Value on Restart and Default Values are updated as well.
  5. Restart the Siebel Server.
Setting Concurrency Parameters for Siebel Reports

You can set a maximum number of tasks per XMLP Report Server, which is not the BI Publisher Enterprise but it’s the engine that takes care of the report request and response within the Siebel, per a single Siebel server. Also you can set a maximum number of MT (Multi Threaded) Servers per a single Siebel server.

Typical guideline would be:

  • MaxTasks = peak (concurrent users)
  • MaxMTServers = MaxTasks / 100

So, for example, let’s say you have 1000 users accessing to the reporting at the same time then the MaxTasks would be 1000 and the MaxMTServers would be 10. Note that this is a generic guide line and these numbers should not be used as a static number for your environment. Each environment and reporting needs would impact on the above numbers and requires a series of performance testing to come up with the best numbers.

You can follow the steps below to set concurrency parameters for using the GUI

  1. Log in to the Siebel application with administrator privileges.
  2. Navigate to the Administration - Server Configuration screen, Servers, and then Components view.
  3. In the Components list, select XMLP Report Server.
  4. Click on the Parameters view tab and set accordingly.
Optimizing Performance of Siebel Reports for Large Data Volumes

When you have a large data coming back for your reports then you can set a Data Source maximum fetch array size (DSMaxFetchArraySize) profile parameter value to ‘-1’ so that the size is unlimited. But again, this value should be fitting to your specific environment so you might want to increase the value to a certain threshold instead of setting it as unlimited.

You can follow the steps below to optimize performance of Siebel Reports for large data volumes

  1. Navigate to the Administration - Server Configuration screen, Enterprises, and then Profile Configuration view.
  2. In the Profile Configuration view list, select Server Datasource (alias ServerDataSrc).
  3. Scroll down to the Profile Parameters, and then click Advanced.
  4. In the Profile Parameters list, select Datasource maximum fetch array size (alias DSMaxFetchArraySize), and then change the value to -1.
  5. Restart the Siebel Server.
Enabling Scalable Mode for Siebel Reports

When you have a large data volume or have complex XSL transformation logic you might want to enable BI Publisher’s XSLT engine to be scalable so that the engine will transform the raw data to XSL-FO template and generate the final output by using the hard disk instead of loading the file onto the memory space. In this way you can avoid ‘out-of-memory’ related issue at the BI Publisher’s reports generation process. You can enable the scalable mode parameter by configuring the BI Publisher’s configuration file, xdo.cfg file, which is located under the %JRE_HOME%\lib directory, where JRE_HOME is the one used for BI Publisher Enterprise Server.

To enable scalable mode for Siebel Reports

  1. Navigate to the jre\lib installation directory.
    NOTE: The path for the Java installation folder varies depending on where you installed JRE.
  2. Open the xdo.cfg file, and in the <Properties></Properties> tag, use the following syntax to set the Scalable Mode property to true (if not already set):
    <property name="xslt-scalable">true</property>
    NOTE: You can set Scalable mode to either true or false.
  3. Save the xdo.cfg file.
  4. Restart BI Publisher Server


There are a few other critical things you can do as an Administrator such as Migrating the reports from Development environment to QA/Production environment, Enabling Logging for Debugging.

But that’s it for today and I will talk about such topics tomorrow, so stay tuned!

Tuesday, September 1, 2009

Install and Setup BI Publisher for Siebel Reporting

Siebel Business Applications ship with pre-developed BI Publisher reports. Using views in a Siebel application, you can run such pre-installed reports or create your own custom reports in both the connected and disconnected modes. Please take a look at ‘Siebel Reporting Architecture with BI Publisher’ for the detail architecture of connected and disconnected modes. In disconnected mode, BI Publisher libraries are already installed as part of the Siebel installation by making the core libraries available (in $SIEBEL_HOME/CLASSES) for report generation. However, if you want to use Siebel Reports in connected mode through a Siebel Web Client , you must install and configure BI Publisher Enterprise Server.

So today I’ll talk about how to install the BI Publisher Enterprise Server for Siebel.

Step 1 – Make sure that you have installed necessary pre-requisite software

There are some different software pieces that you need to complete the Siebel reports with BI Publisher development.

  • MS Word

    BI Publisher uses MS Word to develop and design the report layout, RTF Template.
  • BI Publisher Desktop Client – MS Word Add-in (Template Builder)

    This MS Word Add-in called BI Publisher Template Builder provides you a graphical interface to help you develop and design the RTF Template easier and allow you to preview the report final output in many different formats. It is a MS Word Add-in that you launch from inside the MS Word.
  • Siebel Tools

    If you want to create a new Integration Object you need the Siebel Tools.
  • JDK (Java Development Kit)

    BI Publisher Enterprise Server is certified with JDK 1.5. or later so make sure you have installed the JDK 1.5 on a machine where you will install the BI Publisher Enterprise Server.

Step 2 - Download BI Publisher Enterprise Server

You can download the BI Publisher Enterprise Server media from Oracle E-Delivery page.

Step 3 - Install BI Publisher Enterprise Server

Once you have downloaded you can follow the installation guide. The installation itself is pretty simple straight forward for a basic installation. Once you click on setup.exe (for Windows) then you follow the instruction with the installation wizard to complete the installation. For an advanced installation I have written a few posts before, so please take a look at them for the detail.

Change the location of the BI Publisher repository (Optional)

Note that, by default, the Siebel application is looking for the ‘oracle.home’ JVM property value and wants to substitute the value inside the path. If you have installed the BI Publisher Enterprise Server with its embedded OC4 install option then this ‘oracle.home’ property value is automatically set by the installation. If not, then you need to manually change this value after the installation. If you are installation with WebLogic Server then you need to change this value before the installation. Please take a look at ‘Installation for Oracle WebLogic Server’ for the detail. 

How to Change ‘oracle.home’

Open WEB-INF/xmlp-server-config.xml file and change the following to the appropriate path.

<file path="${oracle.home}/xdo/repository"/>

Step 4 - Define the outbound Web service for the BI Publisher Server

  1. Log in to the Siebel application with administrator privileges.
  2. Navigate to the Administration - Web Services screen, then Outbound Web Services view. 

  3. In the Name field, query for ‘PublicReportService’, and then change the BI Publisher Server machine name to your BI Publisher Server using the following format:


    host is the full path for your BI Publisher Server
    port is the port the BI Publisher Server uses

  4. Verify that the BI Publisher Server is running and ready to start generating reports.

Step 5 - Copy JAR files to the BI Publisher Server

For successful report generation when running Siebel Reports, you must copy the custom Java classes—that is, the JAR (Java Archive) files—associated with individual reports. By default, these Java functions are not available on the BI Publisher Server.

To copy JAR Files to the BI Publisher Server

  1. Copy the following files from $SIEBEL_HOME/CLASSES to:

    - XSLFunctions.JAR
    - SiebelCustomXMLP.JAR
    - SiebelCustomXMLP_SIA.JAR 
  2. Enable external file references by performing the following tasks: 

    2.1. - Log in to the BI Publisher Server.
    2.2. - Click the Admin tab, and then select Runtime Configuration and Properties. 
    2.3. - Change the Default value for the Disable External Reference attribute to FALSE.
  3. Restart OC4J.

Step 6 - Enable Siebel Reports

Before using Siebel Reports, the XMLP Report Server Component component must be enabled. By enabling the XMLP Report Server Component, reports appear in the Reports Menu drop-down list in Siebel Business Applications.

To enable Siebel Reports

  1. Log in to the Siebel application with system administrator privileges
  2. Navigate to Administration - Server Configuration, Enterprises, and then Component Groups
  3. In the Component Groups list, select XMLP Report, and then click Enable.
  4. Click the Synchronize view tab, and then in the Component list, select XMLP Report Server
  5. Click Synchronize
  6. Restart the Siebel Server

Step 7 - Configure Database Authentication and Security

Siebel Reports supports the following two types of authentication:

  • Server Component-based authentication - Administrators must specify the BI Publisher user ID and password at the XMLP Report Server Component level.
  • External authentication (LDAP) - Administrators configure LDAP for both the BI Publisher Server and the Siebel Server. Using external authentication is optional.

In this post I’m going to talk about the ‘Server Component-based Authentication’. In order to call the BI Publisher’s web service you need to pass a pair of username and password. So basically you need to register a proxy user in Siebel so that the XMLP Report Server component within the Siebel application can use this proxy username and password to get authenticated first when it calls the BI Publisher’s web service to generate a report. The password can be encrypted.

To set the BI Publisher Server user ID and password

  1. Log in to your Siebel application.
  2. Navigate to Administration - Server Configuration, Servers, and then Components.
  3. Query for XMLP Report Server, and then select it.
  4. Click the Parameters tab and query for BIP*.
  5. Enter the user ID and password used to access the BI Publisher Server in the Default Value fields of the BIP Server Login and BIP Server Password parameters.

Step 8 - Configure Font Files

To make sure fonts display properly in Siebel Reports, you need to copy the font files, which you want to use in your reports, to a directory on the Siebel Server machine where the XMLP Report Server Component is enabled. This task is typically performed as part of the Siebel Reports installation. However, you can perform this task later or at any given time.

On the Siebel Server machine where the XMLP Report Server Component is enabled, copy the fonts you want to use for your reports from, for example, C:\WINDOWS\Fonts directory, to the $JRE_HOME\fonts directory.

That’s pretty much it. Tomorrow, I’ll talk about some tasks that you as Administrator want to perform for the Siebel reporting. So stay tuned!