You are on page 1of 23

Page 1 of 23

Run a schedule for a Web Intelligence document to a


default destination and a default format

Step: 1

The CMS checks its pending schedule list.

Map

Process

The Central Management Server (CMS) queries the System


Repository looking for a job to be executed every 60 seconds.
After locating a Web Intelligence job to run, the CMS finds an
available Web Intelligence Web Job Server. The CMS sends the
schedule request along with the report document location and
other processing information to the Web Intelligence Job Server.
If the Web Intelligence Job Server is available, the CMS changes
the schedule status from pending to running.
The Job Server references registry keys to verify temp directory
locations and confirm the maximum number of jobs to run
simultaneously.

Tools

Business Objects trace

For Internal Use Only

Page 2 of 23
Adding a command line trace parameter to the CMS causes the
server to log the actions it performs. Writing a Timestamp and
ProcessID, the trace shows a range of information including
method calls and when the CMS interacts with the System
Repository.
Querytiming Parameter
This additional CMS command line parameter captures queries
made to the System Repository from the CMS.
3rd Party Tracing
As the System Repository can be installed on a several platforms,
the vendors database solution may also come with its own
tracing utilities. For example, Microsoft provides a utility called
Profiler that captures server load to SQL Server. Profiler displays
SQL Statements in addition to other metrics such as statement
duration, paging, deadlocks and locking
RegMon
Sysinternals produces a series of valuable tools including
RegMon. A monitoring tool for the registry, it will show in real
time which processes are working with the registry and the values
they are reading or writing.
http://www.sysinternals.com

For Internal Use Only

Page 3 of 23

Step: 2

The Web Intelligence Job Server forwards the request to the


Web Intelligence Report Server.

Map

Process

The Web Intelligence Job Server uses the same executables as other
Job Servers but does differ in the libraries that it loads on startup it
uses the procWebi library.
The Web Intelligence Job Server reuses or spawns a new child process
called Jobserverchild.exe and sends the job request to an available
Web Intelligence Report Server. Each child only processes one
document at a time but may remain in memory after it finishes the job,
saving it from unloading and reloading runtime files that may be used
by later processes. If the job server is set to process five jobs there will
be five Jobserverchild.exes spawned on the machine.

Tools

Business Objects trace


Adding the command line trace parameter to the Web Intelligence Job
Server causes the server to log several actions it performs. Writing a
Timestamp and ProcessID, the trace shows a range of information
including the pinging of servers and recording trace messages to the
Jobserver.

Config

Web Intelligence Job Server Command Line Parameters

For Internal Use Only

Page 4 of 23

Switch

Arguments

Description

-lib

Library

Specifies the processing library for the Job server to use. This switch along with the
objectType switch determine the type of Job server this will be. For the WebI Job Server,
this switch uses the procWebi library.

-objectType

ObjectType

Specifies the type of object that this Job server will process. This is the program id of the
object that it will process. For the Web Intelligence Job Server, the object type is
CrystalEnterprise.Webi

-maxJobs

Number

Specifies the maximum number of concurrent jobs that this Job server can run.

requestJSChildPor
ts

LowerboundUpperbound

Specifies the range of ports that the Job server child processes can use. Handy in a
firewall configuration. For Example 6800-6804 would limit the JS children to only use
those 5 ports.

-port

Interface:port

Specifies which IP address and port the Job Server will listen on.

-requestport

Port

Specifies which port the Job Server will use for communication and requests.

-ns

CMS/Cluster Name

Specifies which CMS or Cluster this Job Server should use for its Name Server.
Turns on tracing/logging for the WebI Job Server.

-trace
-dir

Directory

Sets the temp working directory for the Job server.

For Internal Use Only

Page 5 of 23

Step: 3

The Web Intelligence Report Server requests the report from


the Input File Repository System.

Map

Process

First querying the System Repository to determine where the Web


Intelligence Report is located, the Web Intelligence Report Server then
requests the .wid file to be streamed from the Input File Repository
Server streams to a working directory on the Web Intelligence Report
Server.
The Connection Server (a part of the Web Intelligence server)
connects directly to the Repository to locate metadata including the
location of the Universe(s) and subsequently requests both the .wid
and universe files from the input FRS and places copies into its
working directory,

Web Intelligence Document File Structure


The .wid file is a compound file.
Readable with a zip file editor, the logical structure of a .wid file is a
tree structure organized as follows:

For Internal Use Only

Page 6 of 23

The root folder is the .wid name.


Nodes represented by folders can be accessed by direct address (API).
Each node corresponds to a Web Intelligence Report Server
(WiReportServer) macro component including: C3 for Cube, CDZ for
WiReportServer, Drill for Drill Engine, RE or Repeng for Report
Engine. Leaves are structured binary streams that must be traversed
sequentially.
The following sections describe each node of the file.
Data Root

Node and/or leaf name


Data (root)
BO_Checksum (leaf)
C3 for Cube (node)
Node and/or leaf name
C3 (node)
DATASOURCES (C3 subnode)
DATAPROVIDERS (C3
sub-node)
Description (leaf)
Document (leaf)
DocumentFormula (leaf)

DocumentVariable (leaf)

Description
Data insuring integrity of the file.

Description
Used by Cube.
DataSource objects: names and
hierarchies contained in the
document.
Description and data from
DataProviders or queries.
Main C3 document version (currently
2.0) and a string tag cdzDocument.
Document properties: some flags
including autoSynchronize=on/off.
List of anonymous formulas found in
document reports. (User may set a
formula without giving name.
List of variables, tokenized form,
also called serial form (format is
locale independent).

For Internal Use Only

Page 7 of 23
DocumentVariable_Data
Domain for variables having custom
(leaf)
sort.
DATASOURCES (C3 sub-node)

Node and/or leave


name
DATASOURCES
node
DSManager (leaf)

Description
DataSource objects: names and hierarchies
contained in the document.
Number of DataSources, last key id (for
key generation).
For each DataSource (DS):
DSKey(DS0, DS1, DSn)
DS type (QT) and universe connection
string=Repold=12;UnivId=)
Hierarchies contained by the DS:
DS0.DH5
Database connection
string=4;ODBC17;SQLServer
Others DS info such as: repold, name, long
name, comments
DS properties: max =rowfetched,
maxfetchtime
Database (DB) date format, DB number
format, DB decimal separator,
maxOperandsForInList.
Flag: allowMultiSelectContext.

DATAPROVIDERS (C3 sub-node)

Node and/or leave name


DATAPROVIDERS (C3
sub-node)
DP0 (DataProviders subnode)

Description
Data coming from DataProviders.
Name of the DataProvider used in the
document. In case of multiple
providers there will be several storage
nodes such as DP0, DP1.

For Internal Use Only

Page 8 of 23
Description (leaf)
DPManager (leaf)
SynchroManager (leaf)f

.wid version.
List of the Data Providers.
For each synchronization, include the
name, key and source objects.
SynchroManager_Data
For each synchronization object having
(leaf)
custom sort: domain (similar to
DocumentVariable_Data).
DPO (DATAPROVIDERS sub-node)

Node and/or leave


name
DP0 (DataProviders
sub-node)

Description

Name of the DataProvider used in our


document. In the case of multiple
providers there will be several nodes DP0,
DP1...
DP_Data (leaf)
Query result also called local cube.
Contains Node set of the domain. Node set
contains indexes for dimension
(compressed with RLE), or hard-coded
values for the measures: DP_Key,
DP_Key value, Number of values,
frequency of the values cube name, node
set (rows, columns, indexes).
DP_Generic (leaf)
XML of the query.
For each query: query description, query
xml format, server parameters, local DS
information (DSx.Dpy object description)
DP_QT (leaf)
Information related to the query execution:
prompts description, SQL query
expression tree (binary format).
CDZ for WiReportServer (node)

Node and/or leave name

Description

For Internal Use Only

Page 9 of 23
CDZ (node)
SESSION (CDZ sub-node)

_PROPERTIES (leaf)

MDPWORKFLOWINFOS
(leaf)

Used by WiReportServer. Contains


information related to the workflows.
Information linked to the document
state. Document state is linked to the
Query Specification and to the
Report Specification.
Document properties and options
including name and description. DP
information is also duplicated (DP
list, queries name).
Information linked to the current
command execution. Information is
used to resume an interrupted
command in case, for example, of
prompt or context execution.

SESSION (CDZ sub-node)


Node and/or leave
Description
name
SESSION (CDZ subInformation linked to the document state,
node)
which state is linked to the Query
Specification and to the Report
Specification.
State (leaf)
Document state can be:
Initial (document is just created)
Created DP
Defined query
Waiting for Context or Prompt execution
Executed query
Defined report.
DRILL for Drill Engine (node)

Node and/or leave name


DRILL (node)
Drill_Infos (leaf)

Description
Used by Drill engine.
Drill Infos such as Drill Setting, and per
report: Report_Id, Drill_Bar. Per
Drill_Block: Block_Id and
Drill_Hierarchies. Per
Drill_Hierarchies: Dim_Key and
Hier_Key. Drill_Dimensions. Query
filters, Drill parameters.

RE for Repeng (Node)

For Internal Use Only

Page 10 of 23
Node and/or leave name
RE (node)
DOCSPEC (leaf)

Tools

Description
Used by Repeng.
XML of the Report Specification and
formula tokenized form. Also called
serial form (cube team).

Business Objects trace


Adding the command line trace parameter to the Web Intelligence
Report Server causes the server to log the actions it performs. Writing
a Timestamp and ProcessID, the trace shows a range of information
including file access and shared or private session folder access.
Classic Webi Trace
This trace is used to record Web Intelligence Report server processes
and differs from the trace parameter in that it logs only its own
interactions in its own process rather then all the other CORBA
commands such as pings to the CMS. These traces also save the XML
generated by Web Intelligence sub components in a folder called
wicdztrace.
Configurable, the trace identifies a range of operations including calls
to sub components and files. Errors and Warnings in the workflow are
found easily as they are marked with an |E| and |W| respectively.
Working with this trace requires a BO_Trace.ini file to be created and
three optional environment variables to be set:
Environment Variables
The following environment variables can be set to override the
default location ([windows install path]\system32) of the log file.
BO_TRACE_CONFIGDIR = c:\mypath
BO_TRACE_CONFIGFILE=c:\mypath\BO_TRACE.INI
BO_TRACE_LOGDIR= C:\MyLogFolder
BO_TRACE.INI
active=true;
important=<<; (options are <<,<=,==,>=,>> where << logs
informational lines to >> which is critical/error lines)
size=10000;

For Internal Use Only

Page 11 of 23
keep=true;

FileMon
SysInternals provides a range tools to analyze a system. FileMon is a
tool that Monitors in real time the files that have accessed on the
system. During this step, FileMon would capture the creation of files
in the private and or shared cache.
http://www.sysinternals.com

For Internal Use Only

Page 12 of 23

Step: 4

The Connection Server (part of the Web Intelligence Report


Server) connects to the database to run the query.

Map

Process

The Report Server will initiate different components based on the


requirements of the requested Web Intelligence Report to refresh
the data and render its output.
The following files are created to further support the process.
1) A Query Specification is created. The Query Specification is
an XML description of all the data sources along with any
additional properties that affects the connection. Once run, these
connections will communicate with 3rd party drivers to retrieve
data.

For Internal Use Only

Page 13 of 23
WiReportServer
(communication, orchestration)

Query spec
(xml)

Report spec
(xml)

Cube
DP 8 Calculator
(orchestrate
data fetching)

(build and execute


calculation plan
from report spec
and DP)

Report output
(xml)

RepEng
(page rendering in xml)

9
Dico

4
2

QF

10

Facilitate communication
between RepEng and
Calculator using iterators

DP : Data provider

QT

CS

(generate SQL)

(execute SQL)

QF : Query facility
QT : Query technique
CS : Connection server
RepEng : Report Engine

2) The Query Technique generates a SQL statement to retrieve


the data
3) The SQL statement is return to the Data Provider.
4) The Generated SQL Statements are executed against their data
stores as defined by their query specification (an xml
representation of the query). The credentials of the user who
requested the Web Intelligence Report are used to retrieve the
data. If the user has insufficient rights on the data store the
process is exited and the error is returned to the client and
displayed in a pop up.
5) The data is returned to the Data Provider
6) The data is then forwarded to the Web Intelligence Report
Server(WiReportServer)
7) A Report Specification is created and passed to the Report
Engine (RepEng) from the Report Server. The Report
Specification describes in detail style information for the report.
8) To create aggregations, the Report Engine passes the data to
the Query Facility where a calculation plan is built and executed.
9) The data is passed back to the Report Engine where the page is
rendered in XML
10) The Report Output, which is in XML format is passed.

For Internal Use Only

Page 14 of 23

Tools

Business Objects trace


Adding the command line trace parameter to the Web Intelligence
Report Server causes the server to log the actions it performs.
Writing a Timestamp and ProcessID, the trace shows a range of
information including file access and shared or private session
folder access.
Classic Webi Trace
This is a trace is used to record Web Intelligence Report server
processes. This trace differs from trace parameter as it logs only
its own interactions in its own process rather then all the other
CORBA commands such as pings to the CMS. These traces also
save the XML generated by Web Intelligence sub components in
a folder called wicdztrace.
Configurable, the trace identifies a range of operations including
calls to sub components and creating and opening files. Errors in
the workflow can also be easily found as they are tagged with |E|.
Working with this trace requires a BO_Trace.ini file to be created
and three optional environment variables to be set:
Environment Variables
The following environment variables can be set to override
the default location ([windows install path]\system32) of the
log file.
BO_TRACE_CONFIGDIR = c:\mypath
BO_TRACE_CONFIGFILE=c:\mypath\BO_TRACE.INI
BO_TRACE_LOGDIR= C:\MyLogFolder
BO_TRACE.INI
active=true;
important=<<; (options are <<,<=,==,>=,>> where << logs
informational lines to >> which is critical/error lines)
size=10000;
keep=true;

For Internal Use Only

Page 15 of 23
Database Vender Tools
As the System Repository can be installed on several platforms,
the vendors database solution may also come with its own
tracing utilities. For example, Microsoft provider a utility called
Profiler. Capturing the server load, Profiler displays the SQL
Statements executed against the server in addition to a range of
metrics including statement duration, i/o, deadlocks and locking.
Configuration

Options can change process flow. If, for example, a report is


scheduled to an Excel format with an Inbox as the destination, the
following occurs:

1. The CMS determines that a scheduled Web Intelligence


Document job is ready to be processed
2. The CMS finds an available Web Intelligence Job Server
to process the request. The Web Intelligence Job Server
reuses or spawns a new Jobserverchild.exe sub-process.
3. The JobServerChild.exe sends the request to an available
For Internal Use Only

Page 16 of 23
Web Intelligence Report Server.
4. The Web Intelligence Report Server requests the Web
Intelligence Document file and Universe from the Input
FRS and copies them to its working directory.
5. The Web Intelligence Report Server runs the Web
Intelligence Document against the reporting database.
The Web Intelligence Report Server then exports the Web
Intelligence Document file to Excel format.
6. The Web Intelligence Report Server sends a copy of the
complete .xls file to Output FRS.
7. The Web Intelligence Report Server notifies the Web
Intelligence Job Server that the job has completed
successfully and sends a copy of the .xls instance to the
Job Server Child.
8. The Job Server Child sends a copy of the instance to the
Inbox using inbox.dll and
dest_CrystalEnterprise_managed.dll plugins. Inbox
instances get sent to the Input FRS.
The Web Intelligence Job Server notifies the CMS that the job
was completed successfully

For Internal Use Only

Page 17 of 23

Step: 5

The Web Intelligence Report Server sends the finished report


to the Output FRS.

Map

Process

The Web Intelligence Report Server streams a copy of the completed


instance to the Output FRS.

Tools

BusinessObjects trace.
Adding a command line trace parameter to the Output FRS causes the
Server to log its actions. Writing a Timestamp and ProcessID, the trace
shows the location and name of the .wid file saved to the Server.
Classic Webi Trace
This is a trace is used to record Web Intelligence Report server
processes. This trace differs from trace parameter as it logs only its
own interactions in its own process rather then all the other CORBA
commands such as pings to the CMS. These traces also save the XML
generated by Web Intelligence sub components in a folder called
wicdztrace.

For Internal Use Only

Page 18 of 23

Configurable, the trace identifies a range of operations including calls


to sub components and files. Errors and Warnings in the workflow are
found easily as they are marked with an |E| and |W| respectively.
Working with this trace requires a BO_Trace.ini file to be created.
Three environment variables may also be set:
Environment Variables
BO_TRACE_CONFIGDIR = c:\mypath
BO_TRACE_CONFIGFILE=c:\mypath\BO_TRACE.INI
BO_TRACE_LOGDIR= C:\MyLogFolder
BO_TRACE.INI
active=true;
important=<<; (options are <<,<=,==,>=,>> where << logs
informational lines to >> which is critical/error lines)
size=10000;
keep=true;

For Internal Use Only

Page 19 of 23

Step: 6

The Web Intelligence Server notifies the Web Intelligence Job


Server that the task was fulfilled successfully

Map

Process

The Web Intelligence Report Server notifies the Web Intelligence Job
Server that the job has completed successfully.

Tools

Business Objects trace


Adding a command line trace parameter to the Web Intelligence Job
Server causes the server to log some of the actions it performs. Writing
a Timestamp and ProcessID, the trace shows a range of information
including the name and location of the report to be stored.
Classic Webi Trace
In a pipe delimited format, Web Intelligence trace, aslo known as
Classic BO Tracing, is used to record in explicit detail, the operations
of the Web Intelligence Report Server.
Configurable, the trace identifies a range of operations including calls
to sub components and files. Errors and Warnings in the workflow are

For Internal Use Only

Page 20 of 23
found easily as they are marked with an |E| and |W| respectively.
Working with this trace requires a BO_Trace.ini file to be created and
three optional environment variables to be set:
Environment Variables
BO_TRACE_CONFIGDIR = c:\mypath
BO_TRACE_CONFIGFILE=c:\mypath\BO_TRACE.INI
BO_TRACE_LOGDIR= C:\MyLogFolder
BO_TRACE.INI
active=true;
important=<<; (options are <<,<=,==,>=,>> where << logs
informational lines to >> which is critical/error lines)
size=10000;
keep=true;

For Internal Use Only

Page 21 of 23

Step: 7

The Web Intelligence Job Server updates the instance status to


the CMS.

Map

Process

The Web Intelligence Job Server notifies the CMS that the job was
completed successfully.

Tools

Business Objects trace


Adding the command line trace parameter to the CMS causes it to log
its actions. The trace will show an Update SQL Statement issued
against the InfoObjects table in the System Repository.
3rd Party Tracing
As the System Repository can be installed on a several platforms, the
vendors database solution may also come with its own tracing
utilities. For example, Microsoft provides a utility called Profiler that
captures server load to SQL Server. Profiler displays SQL Statements
in addition to other metrics such as statement duration, paging,
deadlocks and locking

For Internal Use Only

Page 22 of 23

Step: 8

The CMS updates the instance record in the system database


to change the instance status to Success

Map

Process

The system repository is updated with a status of success.

Tools

Business Objects trace


Adding the command line trace parameter to the CMS causes it to log
its actions. The trace will show an Update SQL Statement issued
against the InfoObjects table in the System Repository.
3rd Party Tracing
As the System Repository can be installed on a several platforms, the
vendors database solution may also come with its own tracing
utilities. For example, Microsoft provides a utility called Profiler that
captures server load to SQL Server. Profiler displays SQL Statements
in addition to other metrics such as statement duration, paging,

For Internal Use Only

Page 23 of 23
deadlocks and locking

For Internal Use Only