Professional Documents
Culture Documents
Version 6.7
Implementation Guide
EMC Corporation
Corporate Headquarters:
Hopkinton, MA 017489103
15084351000
www.EMC.com
EMC believes the information in this publication is accurate as of its publication date. The information is subject to change without
notice.
The information in this publication is provided as is. EMC Corporation makes no representations or warranties of any kind with
respect to the information in this publication, and specifically disclaims implied warranties of merchantability or fitness for a
particular purpose. Use, copying, and distribution of any EMC software described in this publication requires an applicable software
license.
For the most up-to-date listing of EMC product names, see EMC Corporation Trademarks on EMC.com. All other trademarks used
herein are the property of their respective owners.
Copyright 2011 EMC Corporation. All rights reserved.
Table of Contents
Chapter 1
Chapter 2
Chapter 3
Table of Contents
Table of Contents
Chapter 6
Table of Contents
Table of Contents
Chapter 9
Table of Contents
Chapter 11
Appendix A
Appendix B
Table of Contents
Appendix C
Preface
This document describes how to configure, deploy, and maintain a process monitoring solution with
Business Activity Monitor (BAM). BAM gives business users insight into processes executing in
Documentum Process Engine. It provides the ability to generate alerts in real time and creates a
dashboard view that shows process status and performance statistics.
Intended audience
The intended audience for this document includes all roles involved with implementing a Business
Activity Monitor solution, including:
Process Designers This persona uses Process Builder to design processes. Designing
processes with Process Builder is out of scope for the document, however, there are a few BAM
configuration procedures that are completed in Process Builder.
Process Administrator This persona uses a specific set of functions available in the
Administration tab of TaskSpace to configure BAM.
Report Designers This persona uses Process Reporting Services to design reports and alerts.
Dashboard Designers This persona uses the dashboard component within TaskSpace to design
dashboards.
Database Administrator This persona is responsible for creating custom report and filter
entities, if required.
Support information
EMC Documentums technical support services and policies are available at the EMC Powerlink
website (http://Powerlink.EMC.com).
Note: You must register online at Powerlink before using it.
Related documentation
Download product documentation from Powerlink at http://Powerlink.EMC.com. Related
documents include:
Documentum Business Activity Monitor Installation Guide
Documentum Business Activity Monitor Release Notes
Documentum Process Builder User Guide
Documentum Composer User Guide
Documentum TaskSpace Configuration Guide
Documentum Administrator User Guide
Revision history
The following changes have been made to this guide.
11
Preface
Revision Date
Description
July 2011
Updated the Understanding when to use Simple reports and Crystal Reports
section of the Designing Reports with Process Reporting Services chapter
April 2011
Initial publication
12
Chapter 1
Overview of Business Activity Monitor
This chapter discusses the following:
13
14
Figure 1
15
for late arriving events. The latency interval can be configured. Configuring data transfer latency,
page 36 describes latency settings in more detail.
The BAM server controls the operation of the event pipe. If the BAM server is down for any reason, the
event pipe cannot operate and events are not inserted into the BAM database. A gap develops between
events inserted into the BAM database and events that are not yet extracted from Content Server.
A special process called gap filling is used to address these situations. The gap filler allows the BAM
server to catch up on its work, quickly extracting the events that it missed while it was down. For
more information on the gap filler see Understanding the gap filler job, page 18 and Configuring
recovery periods, page 35.
16
17
18
Chapter 2
Quick Start Guide to BAM
This chapter discusses the following:
Monitoring a process
Monitoring a process
Processes are monitored when the Audit Trail is turned on. When the Audit Trail Settings is turned
on, data is written to the Audit Trail and then processed by the BAM server. The Audit Trail feature is
available in the Process Properties dialog box of Process Builder.
CAUTION: The user responsible for turning the Audit Trail on and off must have the
Config Audit extended privilege assigned to them. Otherwise, these options are grayed
out. Assigning Audit Trail permissions, page 27 provides guidance in assigning the config
audit extended privilege to a user.
To turn on the Audit Trail:
EMC Documentum Business Activity Monitor Version 6.7 Implementation Guide
19
7. Then, hover your mouse over the report design area and click your left mouse button. The report
entity is added to the design area.
8. Click the Refresh button
21
4. In the Name field, enter Quick_Start_Dashboard and in the Label field, enter Quick Start
Dashboard. The label appears as the name of the dashboard.
5. Click Next.
22
8. Click Save.
23
24
Chapter 3
Configuring Business Activity Monitor
This chapter discusses the following:
Logging in to TaskSpace
Synchronizing SDT and package object type changes with the BAM database
25
Within the Administration tab of TaskSpace, process administrators must make sure that a
connection with the BAM server is established. Without proper configuration, process data does not
populate the BAM database.
As processes are monitored, the process administrator fine-tunes BAM.
Figure 2
27
28
6. To update the SDT with the BAM database, select the Update BAM Database tables based on
this SDT definition checkbox. The BAM database is updated with the attribute definition.
Note: The update operation applies to all attributes and not just the selected attribute.
7. Click Ok to close the Structured Data Type window.
8. Open the Activity Inspector window for each monitored activity.
9. Click the Data tab.
10. Select the Report checkbox for each monitored attribute.
11. Click Ok to close the Activity Inspector window.
29
Logging in to TaskSpace
Complete this procedure to log in to TaskSpace.
To log in to TaskSpace:
1. Open a supported browser. For a list of supported browsers, refer to the Documentum TaskSpace
Release Notes.
2. Navigate to the TaskSpace user interface at the following URL:
http://server_name:port_number/deployment_name?appname=app_name
The following table explains each variable in this URL:
Table 2
URL variable
Explanation
server_name
port_number
deployment_name
app_name
Note: If you are not sure what URL to use, ask your system administrator.If you are accessing the
TaskSpace user interface for the first time, omit the question mark and everything that follows.
The login page appears.
3. On the TaskSpace login page, select a repository and enter your login name and password.
4. To have the login page automatically recall this information, select the Remember my credentials
option.
30
Note: Once you are logged in, you can view or delete your saved credentials by clicking
Preferences.
5. To enter a Microsoft Windows NT domain name, click More Options and enter the domain.
6. To select the language for text in the TaskSpace user interface, click More Options and select the
language.
7. To connect to the repository using a particular server, click More Options and select that server
from the Server list box. The default is Any Running Server.
8. To use accessibility features, click More Options and check Additional Accessibility Options.
The accessibility mode provides linear navigation, tab navigation, lists instead of menus, and
additional descriptive text.
9. To change your password, complete the following steps:
Note: If your organization uses Lightweight Directory Access Protocol (LDAP), you cannot
change your password from the TaskSpace login page. Ask your system administrator how you
can change your password.
31
CAUTION: For reports designed before synchronization, an inconsistency can develop between
entities and fields used in the report and the structure of the BAM database tables. For example,
a report designed with a Purchase_Order entity provides a total dollar amount of orders for
each day of the week. Then, in Process Builder the Purchase_Order SDT is deleted in favor of
customer_PO. The synchronization operation drops the auto-generated tables associated with
Purchase_Order and creates tables used to store customer_PO data. However, the original
report still uses an old reporting entity (Purchase_Order) that is no longer valid. When report
entities and database tables are inconsistent, a dialog box displays the entities and fields that
must be removed or deselected. The dialog displays during the following actions:
open report
preview report
save report
33
Note: All work items in a queue are monitored, even if the process to which the work item belongs is
not monitored. If the parent process of the work item is not monitored, then you cannot report on the
relationship between the work item and the process.
For more information about queue reporting entities, see Working with queue entities, page 116.
35
3. There are multiple content servers inserting data into the audit trail database.
If data is found, the BAM server clock adjusts to the new time and data is formatted and aggregated.
37
38
Chapter 4
Designing Reports with Process
Reporting Services
This chapter discusses the following:
39
Publishing reports
Deleting reports
40
Figure 3
Two personas are involved in designing BAM reports. A report designer uses PRS to design simple
reports, and define Crystal Report data source. Crystal Reports are taken out of PRS for formatting
by a Crystal Reports designer, which is then synchronized back into PRS by a report designer. Both
simple reports and Crystal Reports are published, which makes them available to use in a dashboard.
Report designers also configure a special type of report, called drill-down reports. The drill-down
feature within PRS applies only to simple reports. Drill-down reports can also be defined for Crystal
Reports, but this configuration is completed in the Crystal Reports software.
Figure 4
41
execution and aggregation tables of the BAM database. The column of each table is exposed to PRS as
an entity field. Report entities operate as queries against the BAM database that returns a result. All
BAM report entities are provided with the software and are stored in a repository. If necessary, you
can also create your own, custom report entities.
Report entities are displayed within the palette in PRS. Report designers must select an entity category
(for example, Activity) and then select a specific entity. For a complete list of report entities for
each category, see BAM report entities, page 241.
Figure 5
PRS palette
42
43
In PRS there are two queue report entities: Work Queue and Work Queue Events. The Work Queue
report entity provides information on the queues themselves, including the name, the capacity (Policy
Task Count), the number of active users, works items assigned, and work items unassigned. The
Work Queue Events report entity provides a process context and includes the name of the activity
and performer, and information about the event.
Note: All work items in a queue are monitored, even if the process to which the work item belongs is
not monitored. If the process is not monitored, then you cannot report on the relationship between a
queue work item and its parent process.
44
CAUTION: SDT/package column names within the table of the BAM database can change
when moving an xCP application between Documentum environments. For example, from
Development to Testing, or from Testing to Production. If you have created custom filters on
SDT/package objects, you must adjust the filter definitions to match the new column names.
45
Figure 6
Each reporting entity is a database query. For example, the query for Process Execution query is:
Select * from V_EXEC_PROCESS_INSTANCE;
46
When a query is run against the BAM database, a result set is displayed in the Data Source Preview
window. Interpreting the result set for a report with only one entity is straightforward. More complex
reports contain multiple entities with their own individual queries run against the database. The final
data source represents a left outer join. The result of a left outer join for table A and B always contains
all records for table A (the left table), even if no matching records are found in table B (the right table).
If no records are found in table B, the join still returns a row in the result but with NULL in each
column from B. If the left table returns one row and the right table returns more than one matching
row, the values in the left table are repeated for each distinct row on the right table.
The data source architecture figure describes how parent and child result sets are joined to form a
single result set.
1. The select query for the parent entity of the report is run. The parent entity is the first entity in
the report.
2. The result set of the parent entity query is stored in memory; a set of parent entity IDs is stored
in a temporary table.
3. The select query for the child entity is run and joined with the temporary table; the result set
is stored in memory.
4. A final join between the parent and child result set is performed in memory.
Figure 8
47
abbreviation of the report entity to which the field belongs in this case, Activity Execution. If three or
more duplicate fields are added, then a number is added to the second suffix. For example, Duration
(hours), Duration (hours).AE, and Duration (hours).AE1. For Process Execution, this suffix is .PE.
For more information on editing captions see Editing entity field captions, page 89.
Figure 9
Entity fields
48
Filter Tab Short Name Each tab within the Filter window has a three character name that is
automatically added to the beginning of the filter expression. This three character name is the
filter category.
Filter Item Name Within each tab is a tree menu listing the filter entities.
Operator Users can select from a number of operators, including =, <, >, and Matches.
Note: Except for date type filters, equals (=) is the only operator available in dashboards by default.
Greater than (>) and less than (<) operators are supported, but must be created. Configuring
dashboard filters, page 209 provides an example of how to create a dashboard filter. A description of
how to create greater than (>) and less than (<) operators follows the example.
Value Values are selected from the tree menu or entered manually by the user.
Note: A single apostrophe () surrounds string values.
Compound expressions are written by adding AND, OR. The Query button is used to view the SQL.
If an error message appears then the filter expression is not valid.
Filter expression
The following filter expression constricts the data source to all process instances with the name
ProcessLoan that were completed during the last day:
PRO.Process-Name = LoanProcess AND MSC.Finished-During-Last-Day = True
Note: The operator can be entered by using the keyboard or selected from the keypad.
Used for
Standard (STD)
Activity Execution
All Activity Aggregation
entities
All Activity Performer
Aggregation entities
49
Used for
Activity Execution
processes and/activities.
Miscellaneous (MSC)
Activity Execution
Process Execution
BAM-SDT (BSD)
data by SDTs/packages.
Process Execution
Note: Business data filters are static
and not dynamic. As a result, only
All business data
business data fields are available as filter
reporting entities
entities (for example, Customer_Name),
rather than field values (for example,
Customer_Name=Robert Long). This
means that report designers must
manually enter field values between the
single quotes () of the filter expression.
Note: SDT/package column names
within the table of the BAM database can
change when moving an xCP application
between Documentum environments.
For example, from Development to
Testing, or from Testing to Production.
If you have created custom filters on
SDT/package objects, you must adjust
50
Used for
the filter definitions to match the new
column names.
Alarm (ALM)
Alerts
51
Figure 11
Report aggregation is then used to calculate a singe duration value from multiple process instances.
Note: The result set displayed in the Data Source Preview window can only contain one row. If
multiple rows are returned, an error message is displayed. It is helpful to use filtering to reduce the
result set.
52
Figure 13
The average duration calculated falls within one of four zones. Zone ranges are configured in the
Chart Properties tab as follows:
Range-1: Extends from the Gauge Start value to the Range-1 End Value
Range-2: Extends from the End Value of Range-1 to the End Value of Range-2
Range-3: Extends from the End Value of Range-2 to the End Value of Range-3
Range-4: Extends from the End Value of Range-3 to the End Value of Range-4
The color of each range is intended to provide meaning to the dashboard user. In this example, an
average duration in the green zone means that processes are executing smoothly and more quickly
than anticipated. An average duration in the blue zone means that processes are executing in a normal
fashion, with little to no problems. An average duration in the yellow zone means caution and
indicates that problems exist with the running processes. An average duration in the red zone indicates
that executing processes are encountering substantial delays and require attention immediately. The
default colors can be changed by using the Color property within each range.
By default, there are four ranges represented in a dial gauge. A range is hidden by configuring the
End Value of two or more ranges to be the same value. For example, if the Range-2 End Value is the
same as the Range-3 End Value, then Range-3 is hidden. If the End Value of Range-1 and Range-2
are the same, then Range-2 is hidden from view. The following rules apply to all range values when
the Start Value is changed:
The Start Value cannot be less than 0.
If the Start Value is greater than the Range-1 End Value, the Range-1.End Value becomes equal to
the Start Value.
If the Start Value is greater than the Range-2 End Value, the Range-2 End Value becomes equal to
the Start Value.
If the Start Value is greater than the Range-3 End Value, the Range-3 End Value becomes equal to
the Start Value.
If the Start Value is greater than the Range-4 End Value, then all range End Values becomes
equal to the Start Value.
The following rules apply when the Range-1 End Value is changed:
If the Range-1 End Value is less than the Start Value, then the Start Value becomes equal to the
Range-1 End Value.
If the Range-1 End Value is greater than the Range-2 End Value, then the Range-2 End Value
becomes equal to the Range-1 End Value.
If the Range-1 End Value is greater than the Range-3 End Value, then the Range-2 and Range-3
End Values become equal to the Range-1 End Value.
53
If the Range-1 End Value is greater than the Range-4 End Value, then the Range-1, Range-2, and
Range-3 End Values become equal to the Range-1 End Value.
Figure 14
54
Figure 15
Table charts
55
Table 4
Chart type
Properties
Pie
Animation (Yes/No)
Background color
Color Palette
Font
Format Numbers (Yes/No)
Labels
Subtitle
Title
Values
Animation (Yes/No)
Axes
Background color
Font
Format Numbers (Yes/No)
Labels
Legend
Show Grid Background (Yes/No)
SLA (used to specify a service level agreement value), shown as a
horizontal line
Subtitle
Title
Values
Gauge
Animation (Yes/No)
Background Color
Dial Lower Limit
Dial Upper Limit
Font
Ranges (includes color, max and min values)
Show Dial Value (Yes/No)
Subtitle
Title
Alternate Color
56
Chart type
Properties
Table
Chart Title
Font
Header
Report aggregation
Aggregation allows report designers to calculate an average duration for each process. Aggregation is
based on two principles: function and group-by. There are five basic arithmetic functions available:
sum, count, average, max, and min. Aggregation requires each field in the data source to have a
function according to the following rules:
1. Date fields only have Max and Min available, with Max as the default.
2. String fields only have Count available, which is also the default.
3. Numeric fields have all five functions available, with Count as the default.
First, the data source of the report must be defined. Fields within the data source can then be
aggregated. Once aggregation is defined, a field can still be added to the data source. When a field is
added to the aggregation, it is assigned the default aggregation based on its field type.
The other principle of aggregation is grouping. Any field in the data source can be selected as a
Group. Grouping indicates the data source field over which the function applies. There must be at
least one group-by field selected. More than one group-by field can be selected. A group-by field
cannot be assigned a function.
EMC Documentum Business Activity Monitor Version 6.7 Implementation Guide
57
In the aggregation figure, process is selected as the group field. Together with the sum function, this
report calculates the average duration (in seconds) for each process. Bear in mind, each process
contains multiple process instances. Grouping takes individual process instances and collapses them
so there is one row for each unique group-by field. Grouping makes the most sense when used on
process name and ID and performer name and ID.
Figure 18
When your aggregation settings are in place, you can refresh the Data Source Preview to see the
aggregated data. From here, the rest of the report can be designed, including selecting a chart type
and configuring chart data.
The same principles apply to reports that contain business data (SDTs or package object types) where
business data fields can be aggregated. For example, a report can be designed to calculate the total
amount of purchase orders (by using the SUM function on the field amount) for each state (where the
field state is specified as the group).
Aggregating report data, page 70 contains the report aggregation step-by-step procedure.
CAUTION: Report aggregation is an excellent approach to use when prototype dashboard
reports are being designed and tested. It provides flexibility to test different designs, and
compare the report output with desired results. Report aggregation is also a viable approach
in a production environment that has limited process execution data. If high volumes of data
are anticipated then server aggregation (including business data aggregation) and custom
aggregation should be used.
Note: For BAM installed on a 32-bit machines, reports that consist of 20,000 records is considered
high volume.For BAM installed on 64-bit machines, reports that consist of 100,000 records is
considered high volume.
Note: Computed columns can be used to perform calculations on aggregated data. You cannot
aggregate computed columns. Computed columns do not appear in the Report Aggregation dialog box.
aggregation. There are nine aggregation tables each for process, activity, and performer entities that
group instance level data into nine time periods (5 Minutes, 15 Minutes, etc.).
5 Minute Aggregation
1:00 1:05
1:05 1:10
23
1:10 1:15
15
59
Process the name of the process provides a context for all calculations.
Process ID the process ID provides a context for all calculations.
Start Date and Time the beginning of the aggregation time period, for example, April 22, 2010 12:05.
Version Number the version number of the process.
There is a great deal of overlap in the fields available for each report entity. For example, the Process
Execution Monthly report entity has the same fields as Process Execution 5 Minutes. In addition, the
only difference between the activity and performer entities is that activity aggregation entities contain
fields like Activity and Activity ID, rather than Process and Process ID, or Performer Name and
Performer ID. All of the average, count, max, and min calculations are the same for all entities.
Reporting with aggregated data enhances system performance because the aggregation calculations
have already been made. To develop a report that displays process trends, a report designer uses the
Process Execution 30 Minute report entity. This aggregate report runs against no more than 48 rows,
since there are 48 half hour segments in a day. However, if the user had created a report that included
instances, the report could run against hundreds or even thousands of rows.
Time
Loan Amount
State
1:00
200,000
NY
1:01
300,000
NJ
1:02
250,000
NY
1:02
100,000
NJ
1:04
300,000
NY
1:05
250,000
NJ
1:06
200,000
NY
60
Time
Loan Amount
State
1:07
300,000
NJ
1:07
250,000
NY
The following table illustrates how BAM aggregates the data. For each five-minute interval, the
total loan amount is calculated for each state.
Table 7
Time Interval
State
1:00 1:05
750,000
NY
1:00 1:05
650,000
NJ
1:05 1:10
450,000
NY
1:05 1:10
300,000
NJ
This operation creates each of nine aggregation entities that include each of the selected fields, plus:
Activity ID this field provides a context for the business data.
Finished Date and Time the end of the aggregation time period, for example, April 22, 2010 12:10.
Instances count a count of processes instances for the time period.
Start Date and Time the beginning of the aggregation time period, for example, April 22, 2010 12:05.
Configuring business data aggregation, page 90 provides a step-by-step procedure.
61
users to select a hyperlink. Selecting a hyperlink changes the content of the base report to display
the content of the target report. In addition, a trail of bread crumbs is displayed within the dashlet
allowing users to navigate to the original, base report. Target reports can also serve as a base report for
another target. There is no limit to the number of drill-down layers used. Single drill-down reports
can also open a URL in a new browser window. The URL must be absolute and specify the location
of a web page in full. For example: http://www.siteaddress.com.
Single drill-down reports are fully configured in PRS. Report designer can select to have the hyperlink
open a report, or a URL. The hyperlink within the base report corresponds to the data source of a
report, and in particular X-axis and Y-axes data. For instance, if a table report contains five columns,
then drill-downs can be configured for each column. A hand icon is displayed when the dashboard
user scrolls over a hyperlink. Configuring single drill-down reports, page 84 addresses how to
configure a single drill-down report.
A filter expression can also be defined once a target report is selected. The filter expression is applied
to the first entity in the report.
Note: Drill-down reports are not available for gauge reports.
Figure 20
62
Figure 21
Multi-drill-down report
Process Instance List is the base report in this example. Its data source consists of the
following fields: Start Date and Time, Finished Date and Time, Process, Process
Instance ID, Version Number, and Duration. The process column in this table is used in a
multi-drill-down report. When a user clicks a specific loan from within the table, the Process
Details, Process Duration, and Process Diagram dashlets are updated with information about
the selected process instance.
EMC Documentum Business Activity Monitor Version 6.7 Implementation Guide
63
Figure 23
This message means that the BAM server is in the process of updating data in the BAM database,
during which time reports cannot be run. This synchronization operation takes more time to complete
when the BAM server is first started. The Report Information Update dialog box automatically
closes when the synchronization is complete. You can also click Close & Exit to close the Report
Information Update and PRS Login windows.
Note: The synchronization operation continues even if these windows are closed.
Note: PRS requires that Flash Player version 9 or higher is installed on the user machine. If Flash
Player is not installed, the user is prompted to install it. Once installed, the user must restart PRS.
To log in to Process Reporting Services:
1. Double-click PRS.exe. The location of the program depends on your particular installation of
Process Reporting Services.
64
65
dashboard see Working with Preconfigured Dashboards, page 165. Report categories can be added to
either folder.
To create a report category:
1. Log in to PRS.
2. Select the Reports tab.
3. To add a report category to the root, select Report Categories.
4. To add a report category anywhere else, select the appropriate report category.
Note: A report category can only be added to another report category.
5. Select File > New > Category.
Users can also select New > Category from the report category right-click pop-up menu.
6. To select a Parent Category click the Browse.... The default parent category was selected
in Step 4.
7. Enter a category name. The name must be unique within a parent category.
8. Click Finish.
66
8. Within the data source builder select a report entity from the palette and then click once on the
design canvas. Or, you can drag and drop entities. The entity and all entity fields are displayed. For
more information on report entities, see Understanding report entities and data sources, page 41.
Note: Once the report entity is added to the drawing area, the palette changes to include only those
entities that are children of the added entity.
9. Place a check mark next to each entity field you want to add to the data source. The entity field is
added as a column in the data source preview. For more information on entity fields and captions,
see Working with entity fields and captions, page 47 and Editing entity field captions, page 89.
Note: Entity field names must be unique within a data source.
10. From the palette, click, and drag a child entity and place it anywhere in the drawing area. An arrow
is automatically drawn between the parent entity and the child entity.
11. Continue adding report entities and selecting entity fields as required.
12. Click the Refresh button to preview the data source.
Note: Report designers can limit the number of rows displayed in the preview by selecting the
Limit Rows checkbox and entering a value
67
13. Click either Next or the Chart Type tab located at the bottom of the report design canvas.
14. Select a chart type in the Properties window.
15. Click either Next or the Chart Data tab.
16. Configure the chart data within the Properties window. For more information about chart types
and chart data options, see Understanding simple report types, page 51.
69
The Aggregation window opens and all selected fields are displayed for each report entity.
Note: Each field has a default function selected. The default function can be changed. In addition,
a default group-by field is also selected.
3. Select the appropriate aggregation function for each field.
4. Select the group-by field.
5. Click Ok. The Aggregation window closes and you are brought back to the data source editor.
70
Note: The group-by field and the aggregation function are marked next to the field for each report
entity. Scrolling over the aggregation displays its type.
Note: Aggregation applies to the data displayed in the Data Source Preview window. Click the
Data Source Preview window. Click the Refresh button to see the aggregated data.
Note: If a new field is selected, the default aggregation is automatically applied based on its field
type. In addition, you must have at least one group-by field. Additional group-by fields can be
removed from the data source.
6. Save the report.
71
1. Open the report and make sure that it is selected on the tree menu.
2. Click the Report Aggregation button
In another example, Field1 and Field2 are added. The computed column expression is:
${Field1} + ${Field2}
The syntax of the function is a JEP expression where fields in the data source are referred to by their
name delimited by ${}. Users can access help with writing JEP expressions by clicking the Help icon.
The primary purpose of a computed field is formatting. Formatting means that the user has control over
the contents of the new column. The following example does not involve a computation. BAM reports
can include performer name. However, the name of a performer is its technical name (for example,
acct_processor) rather a business-oriented name (for example, Account Processor). The computed
columns feature allows you to take all instances of acct_processor, and rename it to be Account
Processor. The following logical if...else expression:
Takes all instances of the aa performer name and changes them to Account Processor.
Takes all instances of the sales_processor performer name and changes them to Sales Processor.
Takes all other performer names and changes them to Other Processor.
if (${Performer Name}=="aa", "Account Processor",
(if (${Performer Name}=="sales_processor",
"Sales Processor", "Other Processor")))
The figure depicts the Data Source Preview window after it is refreshed.
72
Figure 24
Computed columns
Use
Syntax
Description
formatDate(${Start
Date and Time},
"MM/dd/yy")
if (${cost} >
55, "Approved",
"Rejected")
str(${Duration
(seconds)} * 60) "
minutes"
73
3. Enter a name for the computed column. The name must be unique within the data source.
4. Enter a computed column expression:
Notice that the computed column report entity has been added to the report design. In addition,
the computed column has been added to the Data Source Preview window. Click the Refresh
button in the Data Source Preview window.
74
75
Note: All computed columns can be deleted from a data source by right-clicking the computed
columns entity, selecting Delete, and pressing Yes on the confirmation dialog box.
77
Role-based security
In this example, the mail_processor role is assigned access to the ProcessMonitor tab, which
contains the Process Monitor dashboard. All users assigned the mail_processor role have
access to the reports displayed in the Process Monitor dashboard (second figure).
Figure 25
Once logged in, each user with the mail_processor role can select the Process Monitor
dashboard tab. Role-based security in TaskSpace is used to restrict one or more reports to
groups of individuals. In the most restrictive case, this approach is used to limit access to a
single report to a single user. This case involves:
1. Designing a dashboard that contains only one report.
2. Assigning the dashboard tab to a role that consists of only one user.
Figure 26
78
79
users. Static filter values are not returned by a query, but are specified explicitly when the static filter is
created. The primary difference between these filter types is that dynamic filters have corresponding
object types in Content Server. Once created, ACLs are assigned to the object type from which the
dynamic filter is derived. Dynamic filters that use ACLs must be configured as a mandatory filter, so
that users are automatically presented with a limited set of filter values from which to choose. Users
without the appropriate permissions are also prompted to select a filter, but the list of filter values is
empty and the report does not run. Users without permissions are able to cancel the report. Creating
dynamic and static filters, page 223 provides information on designing custom dashboard filters.
80
8. Within the data source builder select a report entity from the palette and then click once on the
design canvas. Or, you can drag and drop entities. The entity and all entity fields are displayed. For
more information on report entities, see Understanding report entities and data sources, page 41.
Note: Once the report entity is added to the drawing area, the palette changes to include only those
entities that are children of the added entity.
9. Place a check mark next to each entity field you want to add to the data source. The entity field is
added as a column in the data source preview. For more information on entity fields and captions,
see Working with entity fields and captions, page 47 and Editing entity field captions, page 89.
10. To add a child entity, click, and drag a report entity from the palette and place it anywhere in the
drawing area. An arrow is automatically drawn between the parent entity and the child entity.
11. Continue adding report entities and selecting entity fields as required.
12. Click the Refresh button located in the Preview Data Source window.
Note: Report designers can limit the number of rows displayed in the preview by selecting the
Limit Rows checkbox and entering a value
13. Click the
81
4. Report formatting. While simple reports offer some formatting options, Crystal Reports offers
more, including the use of report headers, watermarks, a greater selection of chart types, and a
richer syntax for writing computed column formulas. If you require a high degree of control over
the look and feel of a report, then Crystal Reports is the best option.
5. Online versus printed. Simple Reports are only used for dashboard dashlets and not for managerial
or business reports that are required in hardcopy format.
6. Exporting data. With Crystal Reports, you can export report data to various formats.
83
total dollar amount of orders for each day of the week. Then, in Process Builder the Purchase_Order
SDT is deleted in favor of customer_PO. The synchronization operation drops the auto-generated
tables associated with Purchase_Order and creates tables used to store customer_PO data. However,
the original report still uses an old reporting entity (Purchase_Order) that is no longer valid. When
there is an inconsistency between report entities and database tables, a dialog box describes the entities
and fields to remove or deselect. The dialog displays during the following actions:
open the report
preview the report
save the report
In each case, the report designer must remove the invalid fields or report entities and save the report.
Publishing reports
All reports begin as a draft report. Draft reports are works in progress and cannot be displayed in the
dashboard until they are published. Publishing makes a report available on the dashboard design
palette. From here, a dashboard designer can use the report in one or more dashboards.
To publish a report:
1. Select the report from the Reports tab.
2. Select Published from the State pull-down list. This setting makes the report available to the
dashboard.
3. Save the report.
a.
b.
c.
d.
e. Place your cursor within the single quotes and press the Ctrl and spacebar keys on your
keyboard simultaneously. A list of dynamic filter values is displayed.
f. Double-click a dynamic filter value and click Ok to close the Filter window.
6. To define a drill-down to a URL, select the URL radio button and enter a URL in the field provided.
Note: The URL must be absolute and specify the location of a web page in full. For example:
http://www.siteaddress.com.
7. Click Ok.
85
is configured to display a report when an event is triggered. Continuing with the example, each time
a process is selected in the Process Instance List report, the System processes status bars report
changes to display process instance data in the Process Details report. The same logic applies to the
started processes statistics and Process Diagram dashlets.
To configure a multi-drill-down report in a dashboard:
1. Create a dashboard and add the desired dashlets.
2. Select the Multi-Drill tab.
3. Select the checkbox corresponding to the dashboard event and dashlet combination for which the
multi-drill is being defined.
4. Click the
button within Target to select a target report. The Content Chooser window opens.
drType=drilldown_type
reportType=1 - this value is the Crystal Reports type. Simple reports are type=0.
reportName - the name of the report as it is entered in PRS.
reportPath - the full path to the report.
filterExpression filter expressions are optional.
In addition, a formula can be used when a value from the source report is used as part of the filter to
the target report. If you are using a formula, insert the URL in quotes. If you are referencing a field
value from the report, add it outside the quotes.
87
For more information on the URL convention see Displaying BAM reports in an enterprise portal,
page 92.
Deleting reports
Reports can be deleted from within PRS. If the report is used in a dashboard, the dashboard user
receives the following error message: "This report cannot be displayed. Please contact your System
Administrator". Any report designer can delete any report.
To delete a report:
1. Navigate the list of reports.
2. Select the report to delete.
3. Select Edit > Delete from the menu. You can also right-click the report and select Delete.
4. Click Ok at the prompt.
89
For more information on deleting aggregation tables that contain data, see Synchronizing SDT and
package object type changes with the BAM database, page 32.
Note: The width of the Business Data Aggregation dialog box is fixed and cannot be changed. The
name of the business data entity in the list box can be a maximum of 60 characters. A tooltip displays
the full name of the business data entity.
To configure business data aggregation:
1. Log in to PRS.
2. Select Configuration > Business Data Aggregation.
3. Select a business data object from the pull-down list. A check mark next to the name indicates
that an aggregation is already defined for the selected object.
4. Select a field from the list of available fields.
5. Click the selection arrow to move the field to the list of selected fields on the right. The selected
field is removed from the list of available fields.
6. Select an arithmetic function from the Aggregation pull-down list.
7. To specify a grouping entity, select the Group checkbox.
Note: The same field cannot be both aggregated and grouped.
8. Click OK. All the required tables in the BAM database and all report entities in PRS are created.
9. Close and reopen PRS to view the new report entities located under the Business Data
Aggregation report entity category located on the palette.
91
1. Log in to PRS.
2. Select Configuration > Business Data Aggregation.
3. Select a business data object from the pull-down list.
4. Click Delete Aggregation.
5. Click Ok.
6. Click Yes on the confirmation dialog.
92
Filter Expression A filter expression entered by the user. For more information about filter
expressions see Understanding data source filtering, page 48.
Value The number of rows to return in the report results set.
93
94
95
96
Chapter 5
Process Reporting Services Examples
This chapter discusses the following:
97
4. Click the Report Aggregation button on the data source toolbar. Then select the Group check box
for the AccountType field and select Count for the Process Instance ID field. Then, click Ok.
Note: If you click the Refresh button again in the Data Source Preview window, the number of
process instances are now counted for each account type.
8. Select AccountType as the category and select Process Instance ID as the Y-axis. From here, you
can configure a number of visual properties by clicking the Chart Properties tab.
99
3. Click the Report Aggregation button on the lower toolbar. Then select the Group check box for
the City field and select Sum for the Amount field. Then, click Ok.
Note: If you click the Refresh button again in the Data Source Preview window, the total deposit
amount is calculated for each city.
2. Right-click the first Activity Execution report entity and select Filter. The Filter dialog opens.
Select the first activity for which the inter-activity duration is measured. Filtering report entities,
page 76 provides guidelines in defining a filter expression.
101
3. Then, open the Filter dialog for the second Activity Execution entity and select the final activity
for which the inter-activity duration is measured.
4. Once the report is saved, click the Refresh button in the Data Source Preview window. The
report results are displayed.
102
5. The Computed Columns feature is used to calculate the difference in duration between two
timestamps. Begin by clicking the Computed Columns icon. Understanding reports that include
computed columns, page 72 provides more information on computed columns.
6. Enter a name for the computed column, place your cursor in the Expression field, and enter
dateDiff(.
7. Then, press the Ctrl and spacebar keys on your keyboard simultaneously and select ${Finished
Date and Time} from the list.
8. Enter a comma (,) and then select ${Start Date and TIme} from the autocomplete list.
9. After ${Start Date and TIme}, enter )/1000.
10. After saving the report, the Data Source Preview window displays the inter-activity duration.
103
2. Open the report in Crystal Reports and create a computed column that converts the Start Date
and Time field into hourly segments.
104
3. Use the computed column feature in Crystal Reports to aggregate the five-minute time intervals (in
this example, the Count of Started Instances is summed) and then grouped by hour.
105
106
Chapter 6
Designing Alerts with Process
This chapter discusses the following:
Configuring email
Designing alerts
Publishing alerts
Editing alerts
107
resolved within 24 hours. An alert can be designed to trigger whenever a process instance (which
represents a single Tier 1 ticket) takes longer than 24 hours to complete.
Identify when Key Performance Indicators (KPIs) are at risk for not being met. For example, it the
goal of an insurance company to maximize new customers while minimizing customer attrition.
An alert can be designed to trigger whenever a certain number of lost customers exceeds a certain
number each day, week, or month.
Identify when milestones are not met. For example, a long-running process can be divided into five
milestones, each milestone represented as a date. Alerts can be designed to trigger when a process
has not reached a milestone by a specific date. This information is important so that a corrective
action can be taken to get the process back on schedule.
Identify processes or activities have exceeded a specific duration.
Escalate issues and notify business performers. For example, alert emails can be sent to responsible
parties notifying them when grant requests for greater than $200,000 are submitted.
Resolve bottlenecks by rerouting running processes. For example, if a review task is not completed
within a specific duration, the task is automatically forwarded to another performer with a note. The
note indicates that the task was not completed within the allotted time.
Perform root cause analysis by tying alerts and single and multi-drill-down reports together. For
example, an alert is designed to trigger when any item in a purchase order exceeds $50,000. Once
triggered, the alert is displayed in a dashboard where users can view additional information. This
information includes the details of the purchase order and the name of the performer that approved
the order. Additional drill-down reports can be designed to display the workload for each performer,
average performer durations, and information about queues. This data is used to understand
where process-related problems are occurring and how to resolve them. Understanding the Alert
Monitor dashboard design and layout, page 133 provides an example that brings alerts, single, and
multi-drill-down reports together into a single dashboard.
Alerts:
Can not be triggered on process execution data that has occurred in the past.
Can not be designed to trigger when another alert is not resolved. For example, you can not design
an alert to trigger when ten or more alerts with the highest severity are triggered. The Alert and
Alert History entities are only used to generate reports about alerts.
evaluation, the results set of the alert are compared against an alert expression. An alert expression
is a boolean-logic statement that is evaluated against the result set of a data source. The alert engine
only retrieves data that was added since the last evaluation. Alerts are also triggered on process
execution data that is inserted into the BAM database during the gap filling operation.
BAM Database If the alert expression is True for a row, then the following information is
entered into the BAM database:
alert name
process name
activity name
process instance ID
activity instance ID
date/time the alert was raised
Email System: If an alert is triggered, an email is sent to one or more individuals notifying them of a
problem. From within the body of an email, an alert recipient can open a dashboard to investigate
and resolve the alert.
Dashboard (in TaskSpace): The alert engine also provides services utilized by a BAM dashboard. A
triggered alert updates the alert list dashlet in a dashboard with the details of the alert. Dashboard
users update the alert status within the alert dashlet. Surrounding reports provide the information
necessary to determine the root cause of an alert, and take corrective action.
Figure 28
109
they are published. When an alert is triggered, an alert email can be sent to one or more individuals
informing them of a problem.
Alert Email Recipient Emails can be sent notifying individuals that an alert has been triggered. A
link within the body of the email brings the recipient to a dashboard where reports can be used to
diagnose the root cause of the problem. The email recipient could have the authority to modify the
work of a performer.
Dashboard Use Dashboard users also see alerts in a dashboard. Dashboard users do not
necessarily receive alert emails. They could simply be viewing a dashboard and notice that an alert
is triggered in the alert list dashlet.
Performer Alert email recipients or dashboard users contact performers to make corrections
in their work, if necessary.
Figure 29
Figure 31
111
Alert entities can be combined to form a data source. The data source includes the columns of data
(alert entity fields) used to configure the alert. Writing an alert expression is part of configuring an
alert. The alert expression defines the logic of the alert, that is, the condition under which an alert
is triggered. Alert expressions are written from the columns included in the data source. In general,
there are eight types of alert entities:
Process and Activity Execution
Process and Activity Aggregation
Incomplete Process and Incomplete Activity Execution
Activity Performer Aggregation
Queue
Business data entities
Custom entities
112
Table 9
Column
Type
Duration (hh:mm:ss)
Numeric
Duration (hours)
Numeric
Duration (minutes)
Numeric
Duration (seconds)
Numeric
Date
Process
String
Process ID
Numeric
Process Instance ID
Numeric
Date
Status
String
Version Number
Numeric
Table 10
Column
Type
Entity ID
Numeric
Event Time
Date
Event Type
String
Performer ID
Numeric
Performer Name
String
Process Instance ID
Numeric
Process Name
String
113
Table 11
Column
Type
Numeric
Numeric
Numeric
Numeric
Date
Process
String
Process ID
Numeric
Process Instance ID
Numeric
Date
Version Number
Numeric
Column
Type
Numeric
114
Column
Type
Numeric
Numeric
Numeric
Numeric
Numeric
Date
Numeric
Numeric
Process
String
Process ID
Numeric
Date
Version Number
Numeric
Column
Type
Activity
String
Activity ID
Numeric
Numeric
Numeric
Numeric
Numeric
Numeric
115
Column
Type
Numeric
Date
Numeric
Numeric
Performer ID
Numeric
Performer Name
String
Date
116
Table 14
Column
Type
Active Users
Numeric
Assigned
Numeric
Assigned (Suspended)
Numeric
Numeric
Policy Priority
Numeric
Numeric
Queue Category
String
Queue ID
Numeric
Queue Name
String
Task Count
Numeric
Unassigned
Numeric
Unassigned (Suspended)
Numeric
Table 15
Column
Type
Activity Instance ID
Numeric
Activity Name
String
Additional Performer
String
Event ID
Numeric
Event Time
Date
Event Type
String
Performer ID
Numeric
Performer Name
String
Queue ID
Numeric
Queue Name
String
117
Figure 32
The following figure displays an alert data source that includes the Incomplete Process Execution
and Activity Execution entities in addition to the grant_request entity. In this example, the
funding_amount field is the only column used in writing the alert expression. The Incomplete Process
Execution entity is used because alerts are issued for processes that are ongoing (in-process). The
Incomplete Process Execution entity includes columns that are used not for the writing the alert
expression, but for other aspects of configuring this alert. In this example, an alert is triggered
when ${funding_amount}>200000. The other information collected about the processes are used in
configuring a drill-down. For this reason, the Process, Process ID, and Process Instance ID columns
are always selected.
Figure 33
119
Figure 34
window
Figure 35
match, the contents of the alert list dashlet displayed in a dashboard are updated. In addition, email
notifications are sent to selected individuals who can then respond to and resolve the alert. The alert
engine only retrieves data that was added since the last evaluation. Email recipients and the body of
the alert email message are configured when the alert is defined.
Alerts are organized into categories. There can be several alerts within a category, and there can also
be several subcategories within a category. An alert can be opened, renamed, copied, and deleted.
(Hours)} > 1
&& Customer Age < 30 && (Customer Residence == "NY" ||
== "NJ") && Claim Amount > 500000)
&& Customer Residence == "NY" && Claim Amount > 1000000)
&& Customer Residence == "MA" && Claim Amount > 2000000)
JEP Operators
Alert designers enter filter expressions by selecting from a list of available columns and entering
Boolean operators and values. Expressions are represented as a string and then evaluated using
a Java Expression Parser (JEP). JEP is a Java library for parsing and evaluating mathematical
expressions. String expressions are parsed and represented as a tree structure that is evaluated.
An expression is automatically validated as it is typed. For more information on JEP, see
http://www.singularsys.com/jep/doc/html/index.html. The following JEP operators are supported:
Table 16
JEP operators
Name
Symbol
Modulus
%
/
Division
Multiplication
Addition, Subtraction
+,
<=, >=
<, >
!=, ==
121
Name
Symbol
Boolean And
&&
Boolean Or
||
Note: PRS validates the alert expression as it is written. An Invalid Expression message appears until
your expression is written with the correct syntax.
Once a column is selected you can use the keypad to select a Boolean operator. After the operator,
manually enter a constant. String values must be encapsulated in double quotation marks. Date and
numeric columns do not need the double quotation marks. For complex expressions, continue using
the keypad and autocomplete features.
Table 17
Data Type
Format
Example
STRING
NUMERIC
${funding_amount}>200000
DATE
122
Figure 37
Configuring email
BAM relies on the mail parameters available in the repository. These parameters include SMTP host,
owner address, and recipient addresses. Correct configuration enables emails to be sent to one or more
people notifying them that an alert has been triggered. Selecting the alert recipients occurs after the
alert expression is defined. The email alert notification feature is optional. The email environment
must be configured as follows:
SMTP Server BAM relies on an SMTP server for sending email. It is the responsibility of
the customer to configure the SMTP server to work with xCP applications. The SMTP server is
configured before the installation of the repository. As the repository is installed, the user is asked
to specify the SMTP host.
Owner Email Address Emails are sent from the owner of the Documentum repository. The
email address of the repository owner populates the From field in the email. The address of the
repository owner must be configured properly. During the installation of Documentum, the user is
asked to provide an administrator email address. See Troubleshooting, page 236 for instructions on
changing the owner email address.
Recipient Email Address The recipient email address populates the To field in the email. Within
PRS email recipients are selected during alert configuration. A single or multiple recipients can
be selected. The list of recipients in PRS are roles to which individual users are associated. Users
EMC Documentum Business Activity Monitor Version 6.7 Implementation Guide
123
have email captured for them. It is important to understand that selecting a recipient in PRS could
mean that multiple individuals receive an email alert. User email addresses are entered when a
user is created in TaskSpace or by way of DQL.
CAUTION: These email parameters are used globally by all xCP applications. Any change in
these parameters impacts all other applications that rely on email.
To change the owner of the email address, then run the following command:update dm_user
objects set user_address=<Valid Address> where user_name
in (select user_name from dm_user u, dm_server_config cfg where
u.user_name=cfg.owner_name)In this command, <Valid Address> must be replaced with the
real value.
Recipient email address
To look up a recipient email address, run the following command:select user_address
from dm_user where user_name=<User Name>In this command, <User Name> must be
replaced with the real value
124
To change a recipient email address, run the following command:update dm_user objects
set user_address=<Valid Address> where user_name=<User Name>In this
command, both <User Name> and <Valid Address> must be replaced with the real values.
The email tag is located within the app-config preference. The default time is set to 60 seconds.
Note: Do not modify this value unless it is needed.
125
Designing alerts
This section includes a procedure for designing alerts in PRS. Alerts consist of:
a data source (required)
an alert expression (required)
a severity and state (required)
email configuration (optional)
an invoked process (optional)
Note: Alerts can only be triggered for events that occur after an alert is designed and published. It is
not possible to trigger alerts on events that occurred before an alert is published.
Note: Duration alerts require special consideration. If you want to be made aware of a process or
activity that is exceeding a duration threshold as it is still being executed, then use the Incomplete
Process Execution or Incomplete Activity Execution report entities, respectively. If you want to be
made aware of processes or activities that have exceeded a duration threshold after the process or
activity is completed, then use the Process Execution or Activity Execution report entity.
To design an alert:
1. Log in to PRS and select the Alerts tab.
2. Select an alert category and from the File menu, select New > Alert. You can also right-click the
alert category and select New > Alert.
3. In the New Alert name field, enter a name and click Finish. The alert is added to the category in
the Alerts tab and the Data Source tab opens. A data source can now be defined.
Note: Alert names must be less than 150 characters.
4. Build the alert data source by clicking, dragging, and placing objects from the palette onto the
canvas.
5. Each object contains entity fields. To select an entity field, place a check mark to the left of
the field name.
Note: Only selected fields can be used in an alert expression.
6. Click the Alert tab located above the Data Source Preview window.
126
7. From the Severity list box, select either Low, Medium, or High.
The severity level corresponds to the color of the alert icon displayed in the dashboard:
Low = yellow
Medium = orange
High = red
8. From the State list box, select Published. Published alerts are made available to the alert engine
for evaluation.
9. Place your cursor in the Expression field and use the autocomplete feature to write an alert
expression. Writing alert expressions, page 120 contains more information related to JEP
expressions and operators, and using autocomplete.
10. From the Sent to: list box, select an email recipient. Use the Ctrl or Shift keys to select multiple
recipients.
EMC Documentum Business Activity Monitor Version 6.7 Implementation Guide
127
11. Emails are sent from the owner of the Documentum repository. The address of the owner of the
repository must be configured properly in order to send email.
12. Enter a Message. The message forms the body of the alert email.
13. To invoke a process in response to the alert, enter a value in the Process Parameters field.
14. From the File menu, select Save. The alert is now operational.
128
5. From the State list box, select Published. Publishing makes the alert operational in a dashboard.
EMC Documentum Business Activity Monitor Version 6.7 Implementation Guide
129
6. Place your cursor in the Expression field and press Ctrl-Space. A list of columns is displayed.
7. Build the filter expression by double-clicking a column, selecting an operator from the keypad, and
entering a constant.
Note: Columns that contain STRING data must have the constant value surrounded by double
quotations. Columns that contain NUMERIC and DATE data do not need quotation marks.
8. Select an email recipient and from the File menu select Save.
Then, the alert expression is written for the alert to trigger when any loan origination process
(${Process} == "Loan Origination" ) exceeds two days in duration (${Ongoing Duration (days)} > 2).
Figure 40
130
131
3. Click the Refresh button in the Data Source Preview window. The rows that match the alert
expression are displayed in bold.
Publishing alerts
An alert must be published before it can be used in a dashboard. Publishing makes the alert operational.
Unpublished alerts are not active and are not triggered even if the threshold is exceeded. Typically, an
alert is published as it is being designed.
To publish an alert:
1. Log in to PRS and click the Alert tab.
2. Right-click the alert and select Open. The data source of the alert opens.
3. Click the Alert tab located above the Data Source Preview window.
4. From the State list box, select Published.
5. From the File menu, select Save.
window where a dashboard user is also required to enter a note. This procedure guides you in changing
the status of an alert.
To acknowledge or close an alert:
1. From the Alert List dashlet, select an alert you want to acknowledge or close.
2. Click Edit.
The Edit window opens.
133
The Grants Exceeded Funding report displays a list of process instances that have triggered an alert.
In this particular report, an alert is used as a data source filter. In addition, the Process Instance ID
column of the Grants Exceeded Funding report is configured as a dashboard event so that when
an instance ID is selected:
The Alert List dashlet provides a filtered list of alerts that have been triggered for the selected
process. Without selecting an instance ID, the Alert List dashlet displays a list of all alerts that are
triggered.
The Average Process Duration report switches to display the Grant Requests report.
The Process Diagram dashlet displays a process flow diagram of the selected process instance.
This section provides an overview of how each report in the Alert Monitor dashboard was designed.
Figure 41
134
Figure 42
1. Design an alert. In this example, an alert is designed to trigger when grants requests exceed
$200,000.
a.
The data source for this alert starts with the Incomplete Process Execution entity. This means
that the alert is triggered while processes are still running, and not when they are completed.
The Process column is included because the alert expression constrains the alert to the Grant
Request Status Monitoring Process (${Process}= = "Grant Request Status Monitoring
Process").Note: The Process ID and Process Instance ID columns are included by default and
cannot be deselected. These columns allow Process and Process Instance dashboard events to
be used in multi-drill-down configurations.
b.
The Activity column in Activity Execution is also included because it is used in the alert
expression. This alert is further constrained to the Submitted activity within the Grant
Request Status Monitoring Process (${Activity}= = "Submitted"). This activity is selected
because Grant Administrators want to know when high dollar funding requests are submitted,
and not further down the process (for example, during the In Review or Approved activities).
The grant_request entity is included because it contains the funding_amount attribute that is
used to complete the alert expression: ${funding_amount}>200000.
c.
Use the auto-complete feature and JEP operators to write an alert expression. Only columns
selected in the data source can be used in an alert expression.
135
2. The first report to design is the source of a multi-drill-down configuration. In this example, the
Grants Exceeded Funding report contains a list of process instances that have triggered an alert.
One particular column, Process Instance ID, is configured as a multi-drill-down event. When a
Process Instance is selected:
the Alert List dashlet is filtered to include only those alerts associated with the selected process.
the Process Diagram dashlet updates to indicate the progress of the selected process.
the Average Process Duration report is updated to display additional information about the
selected process in the Grant Requests report.
136
a.
The Grants Exceeded Funding report is designed with the Alert entity. This entity contains
important information about triggered alerts, including the name, severity, and status. The
Process Execution entity is included because it holds the Process Instance ID column, which
is used to configure the multi-drill-down.
b.
Within the data source, a filter is written to include those processes in the report that have
triggered the Funding Greater than 200K alert. All other processes are excluded from the
report.
c.
Next, Process Instance is selected as the Dashboard Event for the Process Instance ID
column. Once configuration is complete in the BAM dashboard, selecting a Process Instance
ID in the Grants Exceeded Funding report updates the contents of the Alert List dashlet, the
Process Diagram dashlet, and the Average Process Duration report.
EMC Documentum Business Activity Monitor Version 6.7 Implementation Guide
3. In addition to the Grants Exceeded Funding report, this dashboard contains a dial gauge report
that calculates the average hourly duration of in-flight processes. The Grant Requests report
replaces the Grants Exceeded Funding report when a Process Instance ID is selected in the
Grants Exceeded Funding report.
a.
The data source for this report is designed with the Incomplete Process Execution entity so
that hourly duration can be calculated for running processes only. Completed processes are
omitted from this report. Report aggregation is used to calculate the average ongoing duration,
grouped by process. Process is included so that a filter can be written that constrains the report
to the Grant Request Status Monitoring Process.
b.
The Category (X) axis must be numeric. Therefore, Ongoing Duration (hours) is selected.
c.
Gauge ranges must be adjusted appropriately on the Chart Properties window, if the default
values are not sufficient.
137
4. Behind the Average Process Duration report, is the Grant Requests report. The purpose of this
report is to display more information about the process (and associated business data) selected in
the Grants Exceeded Funding report.
a.
The data source of this report begins with the Process Execution entity and the Process, the
Process ID, and Process Instance ID columns. The Process column is displayed in the report
and used in a filter; the latter two columns are required for the multi-drill-down configuration.
b.
A filter on the Process Execution entity is written to constrain the report results to Grant
Request Status Monitor Processes where funding_amounts are greater than $200,000:
PRO.Process-Name = Grant Request Status Monitoring Process AND
BSD.GRANTREQUEST-funding_amount > 200000
c.
138
This report is further constrained to include only funding amounts available during the
Submitted activity:
Once the reports are designed, the work shifts to the Dashboard Design tool available in
TaskSpace. Begin by creating a dashboard and adding content. In this example, the Grants
Exceeded Funding report is added first, followed by the Alert List dashlet and then the
Process Diagram dashlet. The Alert List dashlet displays details of the alert triggered by the
process selected in the Grants Exceeded Funding report. This dashlet provides users with the
ability to acknowledge and close alerts, and add remarks. The Process Diagram dashlet is
included because it displays a workflow diagram of the selected process. The diagram displays
the status of each activity in the workflow as either completed, running, or not started.
139
b.
Multi-drill configuration can take place once the dashlets are arranged on the dashboard. When
a Process Instance ID is selected in the Grants Exceeded Funding report, the Average Process
Diagram report switches to display the Grant Requests report. For this configuration, you must:
i.
ii. In the Event column, select the Process Instance checkbox that corresponds to the
Average Process Duration dashlet.
iii. Select Grant Requests as the target report for the Average Process Duration dashlet.
140
Editing alerts
All aspects of an alert can be edited, including its data source and properties. Published alerts must be
set to draft before changes are made. Once an alert is edited it must be saved.
To edit an alert:
1. Log in to PRS and click the Alert tab.
2. Right-click the alert and select Open. The data source of the alert opens.
3. Click the Alert tab located above the Data Source Preview window.
4. From the State list box, select Draft.
5. Edit the alert.
6. Once the changes have been made, select Published from the State list box.
7. From the File menu, select Save.
141
142
Chapter 7
Designing Dashboards
This chapter discusses the following:
Designing a dashboard
Modifying dashboards
Removing dashboards
Deleting dashboards
143
Designing Dashboards
Figure 43
The first step in designing a BAM dashboard is to prepare the process diagram for display in Process
Builder. From here dashboard designers use TaskSpace to create a new dashboard within a dashboard
application. Dashboards are comprised of dashlets. Role-based access to individual dashboards is also
specified in TaskSpace by the dashboard designer. Dashboard users interact with dashboards displayed
in TaskSpace to filter report results and resolve alerts.
144
Designing Dashboards
Figure 44
Report dashlet
Note: Advanced search within a Crystal Report displayed in a dashboard is not supported. Only
reporting features which are supported by Crystal Reports Java Runtime Component version 2008
are exposed to BAM.
EMC Documentum Business Activity Monitor Version 6.7 Implementation Guide
145
Designing Dashboards
146
Designing Dashboards
CAUTION: When defining either process or activity alerts that include duration, the Process
Instance ID and Process ID or Activity Instance ID and Activity ID entity fields must be selected
in the data source.
Figure 47 Alert dashlet
147
Designing Dashboards
For more information on assigning permissions to a dashboard see Assigning dashboard tabs to roles,
page 151.
Designing Dashboards
Designing a dashboard
A BAM dashboard is comprised of a series of dashlets arranged in rows and columns. Designers
add a dashlet to the dashboard by selecting components from the tree view and placing it onto the
dashboard canvas. As the component is dragged to the canvas its title is displayed with the appropriate
icon. Dashlets can be added to an existing row or to a new row. Once placed on the canvas the dashlet
outline is displayed as a red, dashed line. The same dashlet can be added multiple times.
Dashboard designers can select from any of the available report dashlets, the alert list dashlet, the
process diagram dashlet, or the process simluation dashlet. In addition, filter can be configured for any
dashlet added to a dashboard.
To design a dashboard:
EMC Documentum Business Activity Monitor Version 6.7 Implementation Guide
149
Designing Dashboards
1. Launch a browser session and open the URL of the application to which the dashboard is being
added.
2. Log in to TaskSpace.
3. Select the Configuration tab.
4. Select the Dashboards node from the left tree menu.
5. Click the Create button located at the bottom right of the window.
6. Enter a Name and a Label. The label appears as the name of dashboard in the user interface.
7. Click Next. This opens the dashboard design canvas.
8. To add a report:
a. Click
b. Continue expanding report categories until you locate the desired report.
c. Click and drag a report to the dashboard design canvas.
Note: You do not need to decide where to place the first dashlet, it is merely added to a blank
canvas. From here forward you must decide where each dashlet should be positioned. Dashlets
can be positioned to the right, left, top, or bottom of an existing dashlet by hovering the
selected report over the divider bar, and releasing.
9. To add an alert list dashlet, click and drag Alert List to the dashboard design canvas.
10. To add a process diagram dashlet, click and drag Process Diagram to the dashboard design canvas.
11. To preview the dashboard as a dashboard user would see it, click the Configuration button. Click
the Configuration button again to continue designing the dashboard.
12. To save your work and continue working, click Save.
13. To save the dashboard and go back to the component list page, click Finish.
150
Designing Dashboards
a.
b.
c.
d.
151
Designing Dashboards
c. Click Next.
d. Select a tab from the list of Available Tabs and move it to the list of Assigned Tabs by
clicking the Add arrow.
Continue adding tabs as necessary.
e. Click Next.
f. Configure the Global Search and click Next.
g. Configure the Component Mappings and click Next.
h. Configure the Menus and click Finish.
152
Designing Dashboards
CAUTION: The selected dashboard event must also be selected as an entity field in the data
source, even if the entity field is hidden from being displayed in the report. In this example, each
time a process is selected in the table, the surrounding dashlets are updated to display process
instance data. Therefore, Process Instance ID is selected as an entity field in the data source and
Process Instance is selected from the Dashboard Event pull-down list.
button within Target to select a target report. The Content Chooser window opens.
153
Designing Dashboards
4. Within a dashboard, place the report containing the drill-down definition on the dashboard design
canvas. The example below shows that the Process Instance Duration report has been added.
5. Somewhere within the same dashboard, place the Process Diagram dashlet on the dashboard
design canvas.
CAUTION: You will not see anything in the process diagram dashlet when it is first added to a
dashboard. Users must click the hyperlink defined in the base report. In this example, a process
diagram is displayed when a process instance ID (displayed as a hyperlink) is selected in the
Process Instance Duration report.
154
Designing Dashboards
155
Designing Dashboards
Modifying dashboards
All aspects of a dashboard can be edited including adding new dashlets, removing dashlets, and
modifying filters, groups, and scheduling configurations. This procedure is for dashboard designers
who need to edit pre-existing dashboards.
To modify a dashboard:
1. Launch a browser session and open the URL of the application containing the dashboard to be
modified.
2. Log in to TaskSpace.
3. Select the Configuration tab.
4. Select the Dashboards node from the left tree menu.
5. Select a dashboard from the list and click Edit.
6. To change the label, enter a new Label and click Next. Otherwise, accept the current label by
clicking Next. This opens the dashboard design canvas.
7. To add content to the dashboard click and drag a dashlet from the left tree menu and place it on the
dashboard design canvas.
8. To remove a dashlet click the Close button. The close button is the x in the upper right corner of
a dashlet.
9. To modify multi-drill-down reports click the Multi-Drill tab.
10. To modify the dashlet refresh period, click the Scheduler tab.
11. To save your work and continue working, click Save.
12. To save the dashboard and go back to the component list page, click Finish.
156
Designing Dashboards
Note: Dashboard users will see the changes once they refresh their browser.
Removing dashboards
Dashboards can be removed from a dashboard application. This operation only removes the dashboard
from the current application, it does not delete the dashboard from the repository. The dashboard can
be added to other applications.
To remove a dashboard from an application:
1. Open a dashboard application.
2. Click the Configuration tab.
3. Click the Dashboards node from the left tree menu.
4. Select a dashboard.
5. Click the Remove button located in the lower right corner of the window.
6. Click Yes in the confirmation window.
Deleting dashboards
Dashboards can be deleted from the repository, and by extension, all dashboard applications to which
it has been added.
CAUTION: Once a dashboard is deleted it cannot be restored.If another application is using the
dashboard when it is deleted, the contents of the dashboard will no longer display.
To delete a dashboard:
1. Open a dashboard application.
2. Click the Configuration tab.
3. Click the Dashboards node from the left tree menu.
4. Select a dashboard.
5. Click the Delete button located in the lower right corner of the window.
6. Click Yes in the confirmation window.
157
Designing Dashboards
158
Designing Dashboards
Figure 49
Figure 50
159
Designing Dashboards
160
Designing Dashboards
d. Click OK.
161
Designing Dashboards
Designing Dashboards
6. Double-click build-css.bat located under Dashboard Style Utility to run the utility. This compiles
the modified main.css into main.swf that is placed in the output directory of the style utility.
Note: The compilation is successful when there are no errors, and the utility displays
output\main.swf. If there are errors, you must go back to the .css file, make the corrections, and
run the style utility again.
7. Copy the newly compiled main.swf file from the output directory of the customization utility
back into <TaskSpace.war>\taskspace\library\dashboard\swf\css\.
8. Copy the updated main.css source file from dashboard_css\src\css back to
<TaskSpace.war>\taskspace\library\dashboard\swf\css\.
9. Copy the images directory from dashboard_css\src\css\assets back to
<TaskSpace.war>\taskspace\library\dashboard. This step is only required when
there are changes to any of the dashboard images.
163
Designing Dashboards
164
Chapter 8
Working with Preconfigured
Dashboards
This chapter discusses the following:
165
This documentation addresses each preconfigured dashboard with a description of each dashboard
report and its relationships to other dashlets, if they exist.
Note: All of the simple reports used in the Process Monitor and Process Summary dashboards can be
modified. Crystal Reports should not be modified. Modifications involve changes to the data source,
the chart type setting, chart data configuration, and chart properties. Therefore it is crucial that you
understand the principles of reporting. The Designing Reports with Process Reporting Services , page
40 chapter is dedicated to reporting.
CAUTION: You cannot change the name of reports used in any of the preconfigured dashboards.
This creates an inconsistency in the dashboard and report results will not be displayed.
Note: It is recommended that you have each preconfigured dashboard and PRS open while you read
through this documentation.
166
Figure 51
167
The data source for this report includes entity fields that count the number of processes that are
in-flight. This particular report entity is used because it provides near real-time data, with a count of
in-flight processes updated every five minutes. This report entity is filtered to include only those
processes that are in-flight (MSC.On-Going-Instances > 0) since the last time the data was aggregated
(STD.Latest-Aggregation = True). Since the aggregation engine runs every five minutes, this report
provides a count of processes that are in-flight within the last five minutes.
Sample DQL
to 100. These settings may not be sufficient for your processes. Understanding simple report types,
page 51 provides an overview of gauge reports.
169
170
The next step in Crystal Reports was to configure a group-by function on the Performer Name field
and a sum function on the Completed field.
171
After the summary was configured, we see one row of data for each performer.
In the final step, the Chart Expert in Crystal Reports was used to format the data as a bar chart.
After the report was synchronized back into PRS, it was displayed by clicking the View tab.
172
173
New, Acknowledged, and Closed. The Alert Resolution report counts the number of each type of
status and presents it in a bar chart. This report is defined as a Crystal Report that includes the Alert
report entity and Status entity field in the data source. In Crystal Reports the report was formatted to
count the number of alerts for each status.
a. Begin by opening the localized version of the In-flight Process Statistics report.
b. Select the Chart Data tab.
c. Configure the localized version of the Processes in Flight column to drill-down to the localized
version of the In-flight Activity Statistics report.
d. Open the localized version of the Count of Processes per State report.
e. Select the Chart Data tab.
f. Configure the localized version of the Count of Started Instances column to drill-down to the
localized version of the Count of Activities per State report.
8. Within TaskSpace, create three new dashboards. These should be localized versions of Process
Monitor, Process Summary, and Alert Monitor.
9. Add the dashlets to each dashboard.
Note: For a guide to laying out the report and diagram dashlets, please refer to the structure of
each original preconfigured dashboard.
10. Configure the multi-drill-down reports for the localized version of the Process Monitor dashboard
by selecting the Multi-Drill tab.
11. Then, configure the multi-drill-down reports as shown below.
Note: The figure below shows the original reports. These are changed to the new, localized reports.
175
12. Select the Dashlet Filter tab and configure the filter for the List of Process Instances report
as shown below.
Note: Your Dashlet Filter window will look different as it displays localized versions of the filters.
13. Open the Process Summary dashboard and configure the dashlet filters as follows.
Note: Your Dashlet Filter window will look different as it displays localized versions of the filters.
a. Select the Processes filter for the Count of Processes per State report.
b. Select the Processes filter for the In-flight Process Statistics report.
c. Select the Performer Name filter for the Tasks Completed by Performer report.
176
d. Select the Performer Name filter for the Tasks Pending for Each Performer report.
Once all changes have been made in the dashboard design tool, you must create new tabs within
TaskSpace and then add each dashboard to a tab. Tabs must be assigned to dashboard users.
177
178
Chapter 9
Administrating BAM Deployments
This chapter discusses the following:
Optimizing reports
Purging simple process variable and SDT reporting data from a repository
179
Process data is much more voluminous once BAM is operational in a production environment. As
a result, the size of the BAM database needs monitoring and adjusting periodically. Allocating the
appropriate space to a BAM database is very important. This topic is addressed in the Business
Activity Monitor Installation Guide. In some cases it may be necessary to purge old data from the
BAM database. Purge jobs can be scheduled to work against any of the execution database tables.
5. Select (or enter) the project into which the BAM artifacts are being imported.
6. Select (or enter) the repository containing the artifacts being imported.
7. Enter the user name and password of the selected repository and click Login. This authenticates
the user makes the Next button active.
8. Click Next.
181
9. Select an artifact type from the pull-down list based on the following:
BAM Configuration this option imports all files used in the configuration of BAM.
TaskSpace Application this option imports BAM dashboards including all reports used
in a dashboard.
Report This option should be used only when you need to add drill-down Crystal Reports or
when updating or adding specific reports to a target environment. When moving a complete
dashboard you must import and install a TaskSpace application. All reports are listed whether
or not they are used in dashboards.
10. Each artifact type selected generates a list of individual artifacts. Select one or more artifacts from
the Choose From Available Artifacts field and click Add. This moves the artifact(s) to the
Selected Summary field.
11. Click Finish.
The BAM project is built and the DAR file is created.
182
4. Select (or enter) the repository into which the BAM artifacts are being installed.
5. Enter the user name and password of the selected repository and click Login. This authenticates
the user.
6. Select Overwrite from the Install Option pull-down list.
7. Click Finish.
183
2. Start the BAM server. This activates the SDT synchronization operation, which creates the
reporting and filter entities in the new environment. These must be in place before custom
entities are created.
3. In the BAM database look up the DEF_SDT_FIELDS table.
4. Locate the FIELD_COLUMN_NAME column. FIELD_COLUMN_NAME provides the
correct table names.
5. In the BAM database create a view on top of the SDT generated tables. The view creation syntax
must use the values from DEF_SDT_FIELDS to map column names using select statement aliases.
6. If you have saved the entity creation scripts used in the original environment, then update these
scripts to refer to the view you created rather than the original SDT table.
7. Run the custom report and filter entity creation scripts in the new repository. This creates the
custom report and filter entities.
Optimizing reports
In PRS, each report entity represents a query that is run against the BAM database and returns a result
set. Results for reports designed with multiple entities are generated using a logic equivalent to a
left outer join where the result sets of parent-child entities are combined in memory. The result of
a left outer join for table A and B always contains all records for table A (the left table), even if no
matching records are found in table B (the right table). See Understanding how data source results
are generated, page 46 for more information.
Note: BAM runs a left outer join in memory. BAM does not run a left outer join query on the database.
The greater the amount of data each query returns, the more memory is used for generating a report.
If your report returns up to a few hundred records then it is possible to use more entities, up to a
maximum of 20 levels. However, if your report returns a few thousand records then you should
optimize your report by limiting the number of report entities to approximately five, maximum.
Report performance is also impacted by the number of columns selected in each entity. The more
columns selected, the fewer report entities should be used. These are general guidelines since system
performance depends on a number of factors, including the size of the records retrieved and the size of
each report entity query. The number of report entities used should be adjusted for your deployment.
Other methods of optimizing reports include:
Configuring business data aggregation, page 90
Configuring custom aggregation, page 194
Creating custom report entities, page 199
Configuring PRS filter entities, page 217
environments where Process Engine handles large volumes of workflows simultaneously Content
Server transactions can take much longer to complete. . When this happens the data transfer latency
should be increased. By default, the data transfer latency is set to 30 seconds. This means that every
five seconds the BAM server collects events from the Audit Trail database that occurred 30 seconds in
the past. This 30 second offset is called the data transfer latency.
In high load environments where Documentum application system performance is slow, there is a
chance that transactions are not completed for up to a few minutes. In this case you must increase
the data transfer latency to five minutes or more. Documentum application system performance
metrics can help you establish a latency interval. Configuring data transfer latency, page 36 explains
how to adjust the data transfer latency.
185
187
188
Cron expression
Meaning
0 0 12 * * ?
0 15 10 ? * *
0 15 10 * * ? 2005
0 * 14 * * ?
Purge every minute starting at 2 pm and ending at 2:59 pm, every day
0 0/5 14 * * ?
0 0/5 14,18 * * ?
0 0-5 14 * * ?
Purge every minute starting at 2 pm and ending at 2:05 pm, every day
0 10,44 14 ? 3 WED
0 15 10 ? * MON-FRI
0 15 10 15 * ?
0 15 10 L * ?
0 15 10 ? * 6L
189
Cron expression
Meaning
0 15 10 ? * 6L 2002-2005
0 15 10 ? * 6#3
Both types of purge schedules (basic and advanced) include an interval buffer. An interval buffer is
the amount of data to which the purge job does not apply. It provides a safety net in case data is
mistakenly purged. For example, if the integration table is scheduled to purge every Wednesday at
12 noon with a 4 hour interval buffer, then the purge job would delete all data except that captured
between 8 am and 12 noon on Wednesday.
Note: There are several automatic purgers used for aggregated data. These purgers run on a daily basis
at 11:00 PM and leave one week while deleting all other aggregated data. The table below summarizes
the aggregation time period and type of data purged:
Table 19
Automatic purgers
Time interval
Aggregation tables
5 minutes
15 minutes
30 minutes
1 hour
a.
b.
c.
d.
e.
Refer to the Audit management (dm_AuditMgt) and Modifying jobs sections of the Documentum
Administrator User Guide for guidance in configuring a purge audit job.
Do not delete records that occur later than the date returned by the query.
The buffer value is added to the cutoff date to establishes a new range for purging. A buffer is the
number of days before the cutoff date to which the purging applies. For example, if the cutoff date
is November 19, 2010 and the buffer is 4 days, then only process variable data up collected through
November 14th is purged.
EMC Documentum Business Activity Monitor Version 6.7 Implementation Guide
191
The DQL command to purge process variable data N days earlier than the cutoff date is:
DQL>delete dmc_wfsdrp_parent objects where DATEDIFF(day,
time_stamp_utc, cutoff_date) > N
192
Chapter 10
Creating Custom Aggregation, Report,
and Filter Entities
This chapter discusses the following:
193
this report, because it does not make a state-by-state distinction. To report on the custom aggregation
data, custom report entities and filter entities are also created.
194
END_DATETIME TIMESTAMP,
[Measurement column definition 1 ],,
[Measurement column definition N ]);
Note: The aggregation table must contain the START_JAVATIME, START_DATETIME, and
END_DATETIME columns. These columns must be type in upper case letters.
Note: Use the following data types:
Oracle
Character string values: VARCHAR2(size)
START_JAVATIME: NUMBER(38) NOT NULL
Date Time values: TIMESTAMP
Integer values: NUMBER(precision)
Boolean: VARCHAR2(size)
Float: NUMBER(precision)
SQL Server:
Character string values: NVARCHAR(size)
START_JAVATIME: NUMERIC(38) NOT NULL
Date Time values: DATETIME
Integer values: BIGINT or INT
Boolean: NVARCHAR(size)
Float: NUMERIC(precision)
DB2
Character string values: VARCHAR (size)
START_JAVATIME: NUMERIC(31) NOT NULL
Date Time values: TIMESTAMP
Integer values: BIGINT or INT
Boolean: VARCHAR (size)
Float: NUMERIC(precision)
2. Run a DQL script that defines a custom aggregation job. To define a custom aggregation job:
a.
Define a custom SQL insert statement. The custom query is stored in the aggregation table,
and specifies the columns included in the aggregation. Store the query in a text file (.txt) in a
location accessible to the repository, according to the DQL SETFILE command specification
(for instance, c:\query.txt).
Use the following template to define the SQL insert statement:
INSERT INTO [Custom Aggregation Table Name]
([Dimension Field definition 1],,
[Dimension Field definition N]
START_JAVATIME NUMBER,
START_DATETIME TIMESTAMP,
END_DATETIME TIMESTAMP,
[Measurement column definition 1 ],,
195
Note: This script must contain three parameters: FROMDATE, TODATE, and JAVATIME.
b.
Type
Meaning
AggrCustom5m
5 minutes
AggrCustomQH
15 minutes
AggrCustomHH
30 minutes
AggrCustomH
Hourly
AggrCustomD
Daily
AggrCustomW
Weekly
AggrCustomM
Monthly
AggrCustomQ
Quarterly
AggrCustomY
Yearly
Note: To create more than one custom aggregation for the same time interval, then both
aggregations have the same object_name. For development purposes, save the object_id returned
by the CREATE bam_custom_aggr statement.
196
A custom query is written to run every day and count the number of customer orders for each US
state. This script is saved in the repository and must contain three parameters: FROMDATE,
TODATE, and JAVATIME. In addition, ATTR0 is a column that corresponds to the STATE field
in the ORDERS_BY_STATE database table. The relationship between the column name and the
field name is found in the def_sdt_field table. The table name for this particular SDT is found in the
def_sdt_tables table.
The second part of this query creates the custom aggregation object.
INSERT INTO ORDERS_BY_STATE_D(STATE, START_JAVATIME, START_DATETIME,
END_DATETIME, ORDER_COUNT)
SELECT SDT.ATTR0, :JAVATIME, :FROMDATE, :TODATE,
COUNT(EXEC_PROCESS_INSTANCE.ID)
FROM EXEC_PROCESS_INSTANCE, EB_ORDERSBYSTATE SDT
WHERE END_DATETIME >= :FROMDATE
AND END_DATETIME < :TODATE
AND EXEC_PROCESS_INSTANCE.INSTANCEID = SDT.INSTANCEID
GROUP BY SDT.ATTR0
create bam_custom_aggr object set object_name =AggrCustomD,
setfile c:\query.txt with content_format=text;
go
To debug the aggregation runtime query, refer to the bam-engine.log file available with the log folder
of the application server directory.
To run reports against the aggregation table you must create reporting and filter entities in the BAM
database. For more information see Creating custom report entities, page 199 and Configuring PRS
filter entities, page 217.
197
Segment
Meaning
Entity Type
Is Base Entity
199
Segment
Meaning
CAUTION: When reporting on external data it is recommended that you not create the report
entity on a database view that is based on a database link. Instead it is recommended that you
create new tables based on external data and update regularly. You should create the report
entity on the aggregation entity.
To create a custom report entity:
1. Shut down the BAM application server.
2. Launch IDQL 32. It can be found on the system where Content Server is installed, under the
%DM_HOME%\bin directory.
3. Execute the create object DQL statement below. This step creates the Orders By State Daily
report entity.
create bami_rg_entity object
set entity_type=Orders By State Daily,
set is_base=True,
append entity_where=1=1,
set gui_display_data=Orders By State Daily,
set acl_name=BAM Admin ACL,
set acl_domain=dm_dbo,
link /System/BAM/Custom Entities
go
4. Execute the create object DQL statement below. This statement defines a relationship between a
report entity and a custom defined table/view. This relationship is based on the report entity
created in Step 3. The table/view must have already been created. In this example the new report
entity will display data from a single table: ORDERS_BY_STATE_D (table_index=0).
create bami_rg_entity_table object
set entity_id=(select r_object_id from bami_rg_entity where gui_display_data
=Orders By State Daily),
set table_index=0,
set table_name=ORDERS_BY_STATE_D,
set acl_name=BAM Admin ACL,
set acl_domain=dm_dbo,
link /System/BAM/Custom Entities
go
5. Execute the create object DQL statement below. This statement defines a key for the Orders By
State Daily report entity which is used when applying filters to the report entity.
create bami_rg_entity_key object
set entity_table_id=(select et.r_object_id from bami_rg_entity_table
et,bami_rg_entity
e where et.entity_id=e.r_object_id and e.gui_display_data =Orders
200
By State Daily
and et.table_index=0),
set key_index=0,
set field_name=STATE,
set acl_name=BAM Admin ACL,
set acl_domain=dm_dbo,
link /System/BAM/Custom Entities
go
6. Execute the create object statements below. This step defines the columns from each table that
are exposed to the report designer as entity fields. If these statements are not executed, then
no entity fields will be available. In this example, the Started Date and Time, Ended Date
and Time, State, and Number of Orders entity fields are populated with data taken from the
ORDERS_BY_STATE_D table. The relationship between the entity field name and the tables
is defined by way of an index. The entity field can be selected by default within the report
entity. This is specified in set select_as_default (True or False). The example also includes the
convention for each supported database.
This script adds the Start Date and Time field.
create bami_rg_entity_field object
set entity_table_id=(select t.r_object_id from bami_rg_entity_table t,
bami_rg_entity e where t.entity_id=e.r_object_id and e.gui_display_data =
Orders By State Daily and t.table_index=0),
set field_index=0,
append field_db_name=START_DATETIME,
append field_db_name_oracle=START_DATETIME,
append field_db_name_mssql=START_DATETIME,
append field_db_name_db2=START_DATETIME,
set field_gui_name=Start Date and Time,
set field_type=2,
set select_as_default=True,
set select_rep_values_default=False,
set acl_name=BAM Admin ACL,
set acl_domain=dm_dbo,
link /System/BAM/Custom Entities
go
This script adds the End Date and Time field.
create bami_rg_entity_field object
set entity_table_id=(select t.r_object_id from bami_rg_entity_table t,
bami_rg_entity e where t.entity_id=e.r_object_id and e.gui_display_data =
Orders By State Daily and t.table_index=0),
set field_index=1,
append field_db_name=END_DATETIME,
append field_db_name_oracle=END_DATETIME,
append field_db_name_mssql=END_DATETIME,
append field_db_name_db2=END_DATETIME,
set field_gui_name=End Date and Time,
set field_type=2,
set select_as_default=True,
set select_rep_values_default=False,
set acl_name=BAM Admin ACL,
set acl_domain=dm_dbo,
link /System/BAM/Custom Entities
201
go
This script adds the State field.
create bami_rg_entity_field object
set entity_table_id=(select t.r_object_id from bami_rg_entity_table t,
bami_rg_entity e where t.entity_id=e.r_object_id and e.gui_display_data =
Orders By State Daily and t.table_index=0),
set field_index=2,
append field_db_name=STATE,
append field_db_name_oracle=STATE,
append field_db_name_mssql=STATE,
append field_db_name_db2=STATE,
set field_gui_name=State,
set field_type=0,
set select_as_default=True,
set select_rep_values_default=False,
set acl_name=BAM Admin ACL,
set acl_domain=dm_dbo,
link /System/BAM/Custom Entities
go
This script adds the Number of Orders field.
create bami_rg_entity_field object
set entity_table_id=(select t.r_object_id from bami_rg_entity_table t,
bami_rg_entity e where t.entity_id=e.r_object_id and e.gui_display_data =
Orders By State Daily and t.table_index=0),
set field_index=3,
append field_db_name=ORDER_COUNT,
append field_db_name_oracle=ORDER_COUNT,
append field_db_name_mssql=ORDER_COUNT,
append field_db_name_db2=ORDER_COUNT,
set field_gui_name=Number of Orders,
set field_type=1,
set select_as_default=True,
set select_rep_values_default=False,
set acl_name=BAM Admin ACL,
set acl_domain=dm_dbo,
link /System/BAM/Custom Entities
go
7. Restart the BAM application server for changes to take effect. The new report entity will be
available in PRS.
Use the following DQL statement to find the parent entity id and child entity id values:
Select r_object_id, gui_display_data from bami_rg_entity
go
Segment
Meaning
Parent Entity Id
The process entity by which the report entity can be filtered. This affects
the list of filters available for the report entity. Multiple report entities can
have the same entity type, so that filters can be shared.
Where Clause
The SQL Where Clause to relate the parent entity to the child entity.
When referring to a Parent entity, you can only use Keys of the entity. To
relate to any parent key value, you must use the following convention:
parent_entity.ID[Key Index]. You can use any value from the Child entity.
To relate to a child entity table, you should use the EntityTable[table
index] alias. The Parent Keys and Child Keys lists are available while
writing the Relation where clause.
In the following example, a parent-child relationship is defined between two entities. The parent
entity is Orders By State Daily, which was defined in the previous procedure. The child entity
will be a new table that provides more details for every state in the United States. Assume that this
tables structure is the following:
CREATE TABLE US_STATES (
STATE_ABBREVIATION VARCHAR(256), STATE_FULLNAME VARCHAR2(256))
203
set acl_domain=dm_dbo,
link /System/BAM/Custom Entities
go
This script adds the State Abbrevation field.
create bami_rg_entity_field object
set entity_table_id=(select t.r_object_id from bami_rg_entity_table t,
bami_rg_entity e where t.entity_id=e.r_object_id and e.gui_display_data =
US States and t.table_index=0),
set field_index=0,
append field_db_name=STATE_ABBREVIATION,
append field_db_name_oracle=STATE_ABBREVIATION,
append field_db_name_mssql=STATE_ABBREVIATION,
append field_db_name_db2=STATE_ABBREVIATION,
set field_gui_name=State Abbreviation,
set field_type=0,
set select_as_default=True,
set select_rep_values_default=False,
set acl_name=BAM Admin ACL,
set acl_domain=dm_dbo,
link /System/BAM/Custom Entities
go
This script add the State Full Name field.
create bami_rg_entity_field object
set entity_table_id=(select t.r_object_id from bami_rg_entity_table t,
bami_rg_entity e where t.entity_id=e.r_object_id and e.gui_display_data =
US States and t.table_index=0),
set field_index=1,
append field_db_name=STATE_FULLNAME,
append field_db_name_oracle=STATE_FULLNAME,
append field_db_name_mssql=STATE_FULLNAME,
append field_db_name_db2=STATE_FULLNAME,
set field_gui_name=State Full Name,
set field_type=0,
set select_as_default=True,
set select_rep_values_default=False,
set acl_name=BAM Admin ACL,
set acl_domain=dm_dbo,
link /System/BAM/Custom Entities
go
2. Then, a relationship between US States and the Orders By State Daily report entity is defined.
The following DQL statement first creates a new entity key object that is used in defining the
relationship between the two report entities. The entity key object is used in the where clause
in Step 3.
create bami_rg_entity_key object
set entity_table_id=(select et.r_object_id from bami_rg_entity_table et,
bami_rg_entity e where et.entity_id=e.r_object_id and e.gui_display_data =
US States and et.table_index=0),
set key_index=0,
set field_name=STATE_ABBREVIATION,
set acl_name=BAM Admin ACL,
set acl_domain=dm_dbo,
204
3. Execute the create object statement below. This statement defines a relationship between the
US States report entity and Orders By State Daily report entity. The where clause uses the
entity key object created in Step 2.
create bami_rg_relation object
set parent_entity_id=(select r_object_id from bami_rg_entity where
gui_display_data=Orders By State Daily),
set child_entity_id=(select r_object_id from bami_rg_entity where
gui_display_data=US States),
append where_clause=parent_entity.ID0=EntityTable0.STATE_ABBREVIATION,
set distinct_relation=False,
set description_code=,
set acl_name=BAM Admin ACL,
set acl_domain=dm_dbo,
link /System/BAM/Custom Entities
go
205
Note: Entity fields can be used to call standard database functions or custom database functions. The
function must accept at least one input parameter.
206
1. Create a GET_NOW database function. The Now field you create is based on the GET_NOW
function. The query below creates a GET_NOW function in Oracle.
create or replace FUNCTION GET_NOW (START_DATETIME IN TIMESTAMP)
RETURN DATE
AS
v_date DATE;
BEGIN
select SYSDATE INTO v_date from dual;
RETURN v_date;
END GET_NOW;
2. Entity field objects are created by running a DQL script against the BAM database. The create
script:
Includes the report entity to which the field is being added. In this example, the field is added to
the Process Execution report entity.
Assigns a field_index value to the new field. Index values must be unique. In this example, the
index value is 40. Run this script against the BAM database to determine the next available
index value.
Specifies the name of the field as it appears in the user interface. In this example, the field name
is Now. The first two bullet points above are true for any field added to an entity.
create bami_rg_entity_field object
set entity_table_id=(select t.r_object_id from
bami_rg_entity_table t,
bami_rg_entity e where t.entity_id=e.r_object_id and
e.gui_display_data =
Process Execution and t.table_index=0),
set field_index=40,
append field_db_name=,
append field_db_name_oracle=GET_NOW(<@START_DATETIME@>),
append field_db_name_mssql=,
append field_db_name_db2=,
set field_gui_name=Now,
set field_type=2,
set select_as_default=True,
set select_rep_values_default=False,
set acl_name=BAM Admin ACL,
set acl_domain=dm_dbo,
link /System/BAM/Custom Entities
go
207
Note: Using custom filters may require that you optimize the BAM database by creating indexes on
SDT/package tables and custom tables.
The following diagram describes the different Documentum objects required to define a dashboard
filter.
This section describes the user interface component of defining dashboard filters. As a result, only
configuration values in the bami_filter_tree_item type are discussed. You can re-use existing PRS
filter entities. If the PRS filter entities are not available, they must be created and then linked to the
user interface component of the dashboard filter. For instructions on creating PRS filter entities, see
Understanding PRS filters, page 216.
DQL segments
Column name
Definition
object_name
Enter a label for the filter item. If this is a static filter, this will be the value
of the filter tree item.
209
Column name
Definition
filter_id
internal_code
This is an identifier for internal use only. It should be unique for each filter. A
unique internal code is obtained by getting the maximum internal_code value
from the existing filters, and adding 1 to the result.
tree_item_last_level
This value specifies whether the tree item is the lowest level on the tree (leaf).
Enter 1 if the tree item is the last level of the tree. Otherwise, enter 0.
tree_item_type_select
Enter N if the filter values are static. Enter Y when the filter values should be
retrieved by querying the repository. For example, when a filter displays a list
of performers or activities from which to choose, it is considered a dynamic
(and not static) filter.
data_type
The data_type column is used in one of two different ways. First, it is used to
specify that the field is either:
String
Boolean
Date
expression
The expression is displayed when the tree item is selected in PRS. The
expression listed here is a template, with several variables to be substituted for
real values during runtime.
A generic expression can be described as follows:
:FilterTokenName.[Filter Item Name] :Operator :ItemValue
:FilterTokenName is the name of the filter definition tab
[Filter Item Name] must correspond to an existing filter item. During
runtime, the filter engine uses the upper case representation of the filter item
from the expression.
:Operator represents an operator value selected by the user.
:ItemValue is the node value selected from the filter tree. When Type
Select=Y, the software uses the actual value from the select statement rather
than the hard coded item value in the bami_filter_tree_item type. Type
Select can also be set to N.
Note: When creating new filter entities, all custom objects should be linked to the
/System/BAM/Custom Entities folder and all objects should have BAM Admin ACL as the ACL
name.
210
211
Note: You do not have to create the bami_flt_filter_token_items object, because it was already created.
The name can be found by selecting the bami_filter_tree_item type.
select r_object_id,object_name,expression
from bami_filter_tree_item
where filter_id=(select r_object_id from bami_filter_definition
where object_name=Monitored Data Filter Tab)
and any expression is not null
and object_name= Product
go
DQL scripts. The DQL script is divided into two parts. The first part of the DQL script creates the
list of values that appears when a dashboard user enters filter text and clicks Search. The second
part of the DQL script creates the search filter object that appears in the Dashlet Filter tab of a
dashboard. The name of the search filter object is entered in the set object_name= column. The
data_type column is used to specify whether the filter is SINGLE_SELECTION_SEARCH or
MULTI_SELECTION_SEARCH.
The following diagram describes the different Documentum objects required to define dashboard
search filters.
This section describes the user interface component of defining single and multi-select search filters.
As a result, only configuration values in the bami_filter_tree_item type are discussed. You can re-use
existing PRS filter entities. If the PRS filter entities are not available, they must be created and then
linked to the user interface component of the search filter. For instructions on creating PRS filter
entities, see Understanding PRS filters, page 216.
The following DQL examples were used to create the search filter object and list of values in the
example shown in Understanding single and multi-search filters, page 158. For configuring and
using search filters, see Configuring single and multi-search filters in a dashboard, page 159 and
Using single and multi-search filters, page 160.
213
214
set for_web=1,
set acl_name=BAM Admin ACL,
set acl_domain=dm_dbo,
link /System/BAM/Internal
go
create bami_filter_tree_item object
set filter_id=(select r_object_id from bami_filter_definition where
object_name=Invoice),
set internal_code=133,
set tree_item_parent_id=(select fti.r_object_id from bami_filter_definition
fd,bami_filter_tree_item fti where fd.object_name=Invoice and
fd.r_object_id=fti.filter_id and fti.internal_code=132),
set tree_item_type_select=Y,
set tree_item_data[0]=select object_name from states where object_name
like ${user input}% enable(return_top ${display limit}),
set data_type=String,
set tree_item_last_level=1,
set for_web=2,
set expression[0]=STD.State :Operator :ItemValue,
set acl_name=BAM Admin ACL,
set acl_domain=dm_dbo,
link /System/BAM/Internal
go
215
set data_type=String,
set tree_item_last_level=1,
set for_web=2,
set expression[0]=STD.State :Operator :ItemValue,
set acl_name=BAM Admin ACL,
set acl_domain=dm_dbo,
link /System/BAM/Internal
go
Segment
Meaning
Entity Type
The name of the related report entity. When constructing a filter for a
particular report entity, the entity type of the filter should be the same as
that of the report entity.
The from clause of the entity. The tables referenced by this clause should
refer to one or more of the bami_rg_entity_table objects that are part of the
definition of the report entity.
The entity key column is used to join the entity and the filter.
The where clause of the base entity. This typically is non-constricting (where
1=1). The primary use of the Where Clause is to connect the filter query to
the base query.
This is used for internal filters. Leave this empty for new entities.
Built-In
Always enter a 0 when defining a new entity, or leave blank. The value 1 is
reserved for internal entities, and should not be used.
Note: When creating new filter entities, all custom objects should be linked to the
/System/BAM/Custom Entities folder and all objects should have BAM Admin ACL as the ACL
name.
EMC Documentum Business Activity Monitor Version 6.7 Implementation Guide
217
Note: EntityTable0, which is reference in the where clause, is the alias of the ORDERS_BY_STATE_D
table in the Orders by State Daily report entity.
Column name
Definition
object_name
A unique identifier for the filter tab. This object name should be unique
within the entire BAM system. It will be referenced by the DQL scripts for
creation of the tree items. A new filter may reference an existing filter tab.
Usually, there is no need to create a new tab definition.
218
Column name
Definition
Object_name
This is a unique identifier for this filter. It could be equal to the filter item
expression name (in case it is unique for the filter definition).
Filter_id
filter_item_expr_name
Note: The filter item expression name must be capitalized and written
without spaces.
219
Table 27
Column name
Definition
entity_type
filter_id
filter_item_id
The filter item ID represents the token item unique identifier. Refer
to the bami_flt_filter_token_items type.
filter_entity_from_clause
This is the from clause of the filter expression. It defines the table
names that are part of the query.
flt_sql_column_name_oracle
flt_sql_column_name_mssql
flt_sql_column_name_db2
flt_sql_column_name_sybase
flt_sql_column_name_oracle
flt_sql_column_name_mssql
This is the where clause of the filter expression. It defines the filter
condition. There is one field for each database dialect.
flt_sql_column_name_db2
flt_sql_column_name_sybase
filter_entity_token_name
This column represents the alias name assigned when the filter is
used in a filter expression. This value replaces :FilterTokenName
from the filter tree item expressions list.
filentity_token_long_name
This field is shown in the label of the filter tab within PRS.
filter_entity_order_by
This represents the order in which the filter tab is displayed in the list
of tabs for this entity. All items must have the same value per filter.
Note: At runtime, the SQL query generated for each filter item is structured as follows:
[Report Entity Select Statement] AND Entity-Id IN
(Select Entity-Id
FROM [FILTENT_FROM_CLAUSE]
WHERE [FILTENT_WHERE_CLAUSE]
AND [FILTERITEM_SQL_COLUMNNAME] [Selected Operator] [Selected Value])
220
set filter_entity_from_clause=ORDERS_BY_STATE_D e,
append flt_where_clause_oracle=1=1,
append flt_where_clause_mssql=1=1,
append flt_where_clause_db2=1=1,
append flt_where_clause_sybase=1=1,
set flt_sql_column_name_oracle=e.STATE,
set flt_sql_column_name_mssql=e.STATE,
set flt_sql_column_name_db2=e.STATE,
set flt_sql_column_name_sybase=e.STATE,
set filentity_token_long_name=State,
set filter_entity_order_by=20,
set acl_name=BAM Admin ACL,
set acl_domain=dm_dbo,
link /System/BAM/Custom Entities
go
This script creates the filter entity for filtering by the full name of the state.
create bami_flt_filter_entity object
set entity_type=Orders By State Daily,
set filter_id=(select r_object_id from bami_filter_definition where
object_name=State Filter Tab),
set filter_item_id=(select fti.r_object_id from bami_flt_filter_token_items
fti,bami_filter_definition fd where fti.filter_id=fd.r_object_id and
fd.object_name=State Filter Tab and fti.object_name=2),
set filter_entity_token_name=STT,
set filter_entity_from_clause=ORDERS_BY_STATE_D e, US_STATES st,
append flt_where_clause_oracle=e.STATE=st.STATE_ABBREVIATION,
append flt_where_clause_mssql=e.STATE=st.STATE_ABBREVIATION,
append flt_where_clause_db2=e.STATE=st.STATE_ABBREVIATION,
append flt_where_clause_sybase=e.STATE=st.STATE_ABBREVIATION,
set flt_sql_column_name_oracle=st.STATE_FULLNAME,
set flt_sql_column_name_mssql=st.STATE_FULLNAME,
set flt_sql_column_name_db2=st.STATE_FULLNAME,
set flt_sql_column_name_sybase=st.STATE_FULLNAME,
set filentity_token_long_name=State,
set filter_entity_order_by=20,
set acl_name=BAM Admin ACL,
set acl_domain=dm_dbo,
link /System/BAM/Custom Entities
go
221
Table 28
Column name
Definition
filter_id
Internal_code
Identifier for internal use only. It should be unique for each filter tab. A unique
internal code can be obtained by getting the maximum internal_code value
from the existing filters, and adding 1 to the result.
tree_item_parent_id
The r_object_id of the parent item identifier of this item in the tree structure.
This field should be left blank if the filter is a top-level item in the tree.
tree_item_type_select
Enter N if the filter values are static. Enter Y when the filter values should be
retrieved by querying the repository. For example, when a filter displays a list
of performers or activities from which to choose, it is considered a dynamic
filter.
object_name
Enter a label for the filter item. If this is a static filter, this will be the value
of the filter tree item.
tree_item_data
If this is a dynamic filter, tree_item_data is the DQL statement that returns the
dynamic filter values.
tree_item_last_level
This value specifies whether the tree item is the lowest level on the tree (leaf).
Enter 1 if the tree item is the last level of the tree. Otherwise, enter 0.
for_web
data_type
The data_type column is used in one of two different ways. First, it is used to
specify that the field is either:
String
Boolean
Date
The expression is displayed when the tree item is selected in PRS. The
expression listed here is a template, with several variables to be substituted for
real values during runtime.
A generic expression can be described as follows:
:FilterTokenName.[Filter Item Name] :Operator :ItemValue
:FilterTokenName is the name of the filter definition tab
[Filter Item Name] must correspond to an existing filter item. During
runtime, the filter engine uses the upper case representation of the filter item
from the expression.
:Operator represents an operator value selected by the user.
222
Column name
Definition
:ItemValue is the node value selected from the filter tree. When Type
Select=Y, the software uses the actual value from the select statement rather
than the hard coded item value in the bami_filter_tree_item type. Type
Select can also be set to N.
The Processes root level tree item contains the following query:
select object_name,r_object_id from dm_process where r_has_events=1
The following query relates the second entity to the root level:
select r_act_name from dm_process where r_has_events=1 and r_object_id=?
The values returned by the query should not be null. In the example above the r_act_name attribute in
the DQL select statement should not contain null values.
223
set tree_item_last_level=0,
set tree_item_type_select=N,
set data_type=String,
set for_web=0,
set expression[0]=:FilterTokenName.State-Name :Operator ,
set acl_name=BAM Admin ACL,
set acl_domain=dm_dbo,
link /System/BAM/Custom Entities
go
Note: Filter items can be made available within a dashboard. Configuring dashboard filters, page 209
and Configuring business data filters, page 211 provide instructions.
224
225
This script creates the dynamic filter. This filter will select state
names from the state_definition object.
create bami_filter_tree_item object
set filter_id=(select r_object_id from bami_filter_definition where
object_name=State Filter Tab),
set internal_code=10,
226
Note: Filter items can be made available within a dashboard. Configuring dashboard filters, page 209
and Configuring business data filters, page 211 provide instructions.
Note: Make sure to COMMIT after running the command and close your session to avoid locking the
I_BAM_SERVER_CONFIG table.
227
228
229
230
231
232
Chapter 11
Troubleshooting
This chapter discusses the following:
Do not know host name of SMTP server, owner email address, or recipient email address
233
Troubleshooting
234
Troubleshooting
235
Troubleshooting
The output from this query display information about the four different BAM server jobs. The four jobs
include the piping process which is responsible for transferring audit trail data into the BAM database,
and each of three formatting jobs (process, activity, and data). For each job the LAST_PIPE_RUN
value displays the timestamp of the last processed record.
236
Troubleshooting
The result of this query is the host name of the SMTP server.
To change the host name of the SMTP server, run the following DQL command: update
dm_server_config objects set smtp_server=<SMTP Host>
In this command, <SMTP Host> must replaced with the real value.
Owner email address
To look up the owner of an email address, run the following command: select user_address
from dm_user u, dm_server_config cfg where u.user_name=cfg.owner_name
To change the owner of the email address, then run the following command: update
dm_user objects set user_address=<Valid Address> where user_name
in (select user_name from dm_user u, dm_server_config cfg where
u.user_name=cfg.owner_name)
In this command, <Valid Address> must be replaced with the real value.
Recipients email address
To look up a recipients email address, run the following command: select user_address
from dm_user where user_name=<User Name>
In this command, <User Name> must be replaced with the real value.
To change a recipients email address, run the following command: update dm_user objects
set user_address=<Valid Address> where user_name=<User Name>
In this command, both <User Name> and <Valid Address> must be replaced with the real values.
The email tag is located within the app-config preference. The default time is set to 60 seconds.
CAUTION: You should not modify this value unless it is needed.
237
Troubleshooting
3. Update the corresponding database record by running the following command: update
BAM_EMAIL_TASK set EMAIL_CONTENT=<Fixes message content> where ID=<ID
of incorrect message>
238
Appendix A
Entity Relation Diagrams
239
240
241
Appendix B
Report entities
Report entities
Report entities
This appendix contains a list of all report entities available in Process Reporting Services.
Note: Please contact EMC directly for a list of report entities for languages other than English.
Table B.29
Report entities
Type
Entities
Activity
Activity Execution
Activity Events
Incomplete Activity Execution
Process
Process Execution
Process Events
Incomplete Process Execution
Queue
Work Queue
Work Queue Events
Alert
Alert
Activity Aggregation
243
Report entities
Type
Entities
Incomplete Activity Execution Daily
Incomplete Activity Execution Hourly
Process Aggregation
Performer Aggregation
244
Appendix C
Database Views
Database Views
Database Views
This view is used in the Activity Events report entity.
Table C.30
EXEC_ACTIVITY_EVENTS_VIEW
Columns
EVENT_TYPE
QUEUE_NAME
QUEUE_ID
ACTIVITY_NAME
PERFORMER_ID
PERFORMER_NAME
EVENT_TYPE
ID
INSTANCEID
ACTIVITY_ID
This view is used to filter the Work Queue reporting entity according to end date and time.
Table C.31
V_FLT_QUEUE_END
Columns
QUEUE_ID
EVENT_TIME
This view is used to filter the Work Queue reporting entity according to end date and time.
245
V_FLT_QUEUE_START
Table C.32
V_FLT_QUEUE_START
Columns
QUEUE_ID
EVENT_TIME
EXEC_QUEUE_MANAGEMENT_VIEW
Columns
QUEUE_ID
QUEUE_NAME
WORK_ITEMS_IN_QUEUE
QUEUE_THRESHOLD
CAPACITY
ACQUIRED
SUSPENDED
DELEGATED
USERS_ASSIGNED_TO_QUEUE
EXEC_ACTIVITY_INSTANCE
Columns
ID
INSTANCEID
ACTIVITY_ID
START_DATETIME
END_DATETIME
NAME
DURATION
DURATION_MIN
PROCESS_EVENT_ID
PERFORMER_NAME
PERFORMER_ID
QUEUE_ID
RESOURCE_PROC_INSTANCE_ID
ACTIVITY_TYPE
246
Database Views
EXEC_PROCESS_EVENTS_VIEW
Columns
EVENT_TYPE
NAME
PERFORMER_ID
PERFORMER_NAME
EVENT_TIME
ID
INSTANCEID
VERSION_NUMBER
EXEC_QUEUE_EVENTS_VIEW
Columns
EVENT_TYPE
QUEUE_NAME
QUEUE_ID
ACTIVITY_NAME
PERFORMER_ID
PERFORMER_NAME
EVENT_TIME
ID
INSTANCEID
ACTIVITY_ID
V_EXEC_PROCESS_INSTANCE
Columns
ID
NAME
INSTANCEID
START_DATETIME
END_DATETIME
DURATION
247
V_INC_ACTIVITY_INSTANCE
Columns
DURATION_MIN
PERFORMER_ID
STATUS
VERSION_NUMBER
V_INC_ACTIVITY_INSTANCE
Columns
ID
INSTANCEID
ACTIVITY_ID
START_DATETIME
END_DATETIME
DURATION
NAME
PERFORMER_NAME
PERFORMER_ID
V_ACT_EXECUTION
Columns
ID
INSTANCEID
ACTIVITY_ID
START_DATETIME
END_DATETIME
NAME
DURATION
DURATION_MIN
PROCESS_EVENT_ID
PERFORMER_NAME
PERFORMER_ID
QUEUE_ID
248
Database Views
Columns
RESOURCE_PROC_INSTANCE_ID
ACTIVITY_TYPE
249
Index
A
Aggregation
aggregation engine, 14
business data aggregation, 57, 90
Daylight Savings Time, 192
example report, 97, 99
process aggregation, 57
report aggregation, 57, 70
Alert dashboards
alert list dashlet, 132
design, 133
refresh interval configuration, 140
Alerts
activity performer aggregation entities, 115
alert engine, 18
alert entities, 112
alert list dashlet, 146, 173
architecture, 108
business data entities, 117
category creation, 125
data source filtering, 119
design, 126
designed for service level agreement, 130
designed to invoke other processes, 131
designed with SDTs or packages, 128129
designing alerts for aggregated data, 110
editing, 141
email configuration, 123
incomplete process and activity entities, 113
overview, 107
process and activity aggregation entities, 114
process and activity entities, 112
publishing, 132
purging alerts, 123
queue entities, 116
report example, 173174
roles and responsibilities, 109
testing, 131
updating in dashboard, 146, 162
writing alert expressions, 120
Audit trail
configuration, 26
permissions, 27
purge, 191
B
BAM administration
aggregation and system performance, 185
backing up data, 192
complete purge, 188
custom entity migration, 183
data transfer latency configuration, 36
Daylight Savings Time, 192
high volume environments, 184
maximum data transfer latency idle time,
3637
purge Audit Trail database, 191
C
Composer
moving to production, 180
Computed columns
add to report, 72, 75
delete, 75
edit, 75
Crystal Reports
create, 80
delete, 88
drill-down reports, 87
edit, 82
example, 171, 173
export from TaskSpace application, 94
export to another repository, 88
export to CSV or PDF, 93
filter report entities, 76
import, 89
preview, 76
print, 156
publish, 84
synchronize, 80
when to use, 82
Custom entities
filter, 208
search filters, 212
D
Dashboard
add tab, 151
add to dashboard application, 150
alert list dashlet, 146, 149, 162, 173
architecture, 144
create application, 149
dashlet filtering, 147, 155, 157
delete, 157
design, 149
development to production, 180
251
Index
edit, 156
export Crystal Report, 94
multi-drill-down report configuration, 86, 152
permissions, 147, 151
preconfigured dashboard overview, 165
printing, 156
process diagram dashlet, 149, 154
published reports, 84
refresh period scheduling, 155
remove, 157
report dashlet, 145, 149
right to left content, 163
search filter configuration, 159
search filter creation, 212
search filter overview, 158
search filter use, 160
style sheet customization, 162
user interface overview, 148
users, 144
Data source
filter report entities, 76
generating results, 46
preview, 76
records returned configuration, 188
reuse, 83
undo/redo, 90
Drill-down reports
in Crystal Reports, 87
multi-drill-down report configuration, 86, 152
multi-drill-down report overview, 63
single drill-down configuration, 84
single drill-down report overview, 61
E
Excel
export Crystal Report, 9394
export Simple Report, 93
F
Filtering
creating business data filters, 211
custom entities, 208
dashlet, 147, 155, 157
overview, 48
report entities, 76
single drill-down reports, 63
Filters
search filter configuration, 159
search filter creation, 212
search filter use, 160
search filters, 158
G
Gap filler
overview, 14
252
M
Monitoring
audit trail configuration, 26
package types, 29
process variables, 29
structured data types, 28
P
Package object types
configure aggregation, 9091
creating custom filters, 211
modify when used in reports, 83
monitoring configuration, 29
update data definitions, 32
PDF
export Crystal Report, 9394
Permissions
Audit Trail, 27
dashboard, 147, 151
Preconfigured dashboard
alert monitor, 173
alert report examples, 173174
bar+line report examples, 167, 169171
Crystal Report example, 171, 173
gauge report example, 168
overview, 165
pie, bar chart example, 167168
Process monitor, 166
process summary, 169
table chart example, 168
Process Builder
audit trail configuration, 26
create sub-processes, 148
package type monitoring, 29
process variable monitoring, 29
structured data type monitoring, 28
update monitored data, 32
Process diagram
add to dashboard, 154
Process Reporting Services
architecture, 40
business data aggregation, 9091
calculating inter-activity duration, 101
display in enterprise portal, 92
filtering, 48
logging in, 64
multi-drill-down report configuration, 86, 152
multi-drill-down report overview, 63
palette, 41
personas, 40
report aggregation example, 97, 99
reporting entities, 41
simple reports, 51
single drill-down report configuration, 84
Index
Q
Queue monitoring, 34
Quick Start
designing a dashboard, 22
designing a report, 20
enabling audit trail, 19
overview, 19
R
Report manager
creating categories, 65
deleting reports, 88
editing reports, 88
exporting reports, 88
importing reports, 89
Reporting entities
activity and process, 41
aggregated entities, 41, 57
alert, 41
business data, 41
edit field captions, 89
entity field captions, 47
entity fields, 47
filtering, 48
incomplete execution, 41
reports
calculating inter-activity duration, 101
continuous aggregation, 104
generating data source results, 46
modify report time-out parameter, 37
modify SDTs and packages, 83
performance, 55
security, 77
computed columns, 72
creating, 66
delete, 88
dial gauge reports, 52
edit, 88
export to another repository, 88
export to CSV, 93
filter report entities, 76
gauge reports, 168
import, 89
modify chart labels, 69
multi-drill-down configuration, 86, 152
overview, 51
pie and bar charts, 51, 167168
preview, 76
print, 156
publish, 84
single drill-down configuration, 84
sort columns, 68
table charts, 55, 166, 168
when to use, 82
Structured data types
configure aggregation, 9091
creating custom filters, 211
modify when used in reports, 83
monitoring configuration, 28
update data definitions, 32
used in reports, 97, 99
system performance
aggregation, 185
data transfer latency, 184
generating data source results, 46
modify report time-out parameter, 37
T
TaskSpace
add dashboard to application, 150
add tab, 151
create dashboard application, 149
delete dashboard, 157
design dashboard, 149
edit dashboard, 156
export Crystal Report, 94
logging in, 30
remove dashboard, 157
Troubleshooting
modify report time-out parameter, 37
S
Security
reports, 77
Simple reports
aggregation, 57, 70
auto-refresh, 84
bar+line charts, 54, 167, 169171
chart properties, 55
color palette, 69
253