Part 1 of this series gave you an overview of the features and architecture of WebSphere Lombardi V7.1 (hereafter called Lombardi). In Part 2 you learned how to use the most common features of Lombardi, including business process definition (BPD), and integration, human and rule services, to model the sample process. In Part 3 you learned how to use some advanced features of Lombardi to enrich to meet more complex requirements, including nested processes, milestones, event mechanisms, exception handling and Lombardi web services exposure. Part 4 covered how to use Lombardi Coaches to build human services. In Part 5, you learned about advanced Coach features, such as dynamic data binding and the runtime rendering mechanism, as well as how to customize the Coach.
In Part 6, you'll learn how to use KPIs and and reports to do monitoring and performance analysis. The data that Lombardi tracks and stores for KPIs enables you to analyze process performance, as well as create service level agreements (SLAs). When you run instances of a BPD, Lombardi tracks and stores data for configured KPIs in the Performance Data Warehouse. Lombardi uses the stored KPI data to run certain types of historical analyses in the Optimizer.
You can import and unzip the Lombardi export file provided in the Downloads section to quickly go through the whole scenario for KPI, SLA and reporting.
This section describes some of the key concepts with which you should be familiar before proceeding with this article.
A metric is a holder for information, usually a business performance measurement. A metric can be used alone or with other metrics to define the calculation for a KPI, which measures performance against a business objective. Examples of metrics are the working duration of a process, the name of the assigned user, a supplier's response time, and the cost of the risk assessment step in an insurance process. As a unit of measure, the metric is often expressed as a quantity, time, or value.
A KPI is a metric that is essential to indicate progress towards a goal, or to indicate a positive or negative situation. KPIs are the significant measurements used to track performance against business objectives. A KPI has a target or ranges, or both, to measure the improvement or deterioration in the performance of an activity critical to the business. KPIs differ depending on the business and its objectives.
KPIs are based on business objectives. The business objective is a high-level goal that is quantifiable, measurable, and results-oriented. An objective translates into a KPI that enables the organization to measure an aspect of the process against a defined target.
A KPI generally describes the measurements that Lombardi tracks at process runtime, storing results that you can use to analyze process and task performance in the Optimizer. WebSphere Lombardi V7.1 includes the following types of KPIs:
- Standard KPIs
Standard KPIs reside in the Lombardi System Data toolkit. By default, most of the standard KPIs are associated with each activity that you add to a BPD diagram. Click the KPIs option in the properties for an activity to see the associated KPIs. Each of these KPIs has default settings that you can change.
- Custom KPIs
You can develop custom KPIs for custom metrics to measure the performance of activities.
Service Level Agreements (SLA)
A service level agreement (SLA) is the part of a service contract in which the level of service is formally defined. In practice, an SLA is a contract that requires metrics to meet specific targets within a timeframe. It is a commitment to complete a task within a specific timeframe.
You can create SLAs based on standard and custom KPIs. SLAs enable you to establish a condition for one or more activities that triggers a consequence. For example, you can create an SLA that causes Lombardi to send an email notification when a particular activity takes longer than expected to execute.
When you run instances of your processes, SLA consequences do not trigger until the associated activity starts or completes. For example, if you configure an SLA to send an email notification when a particular activity takes longer than two days to execute, Lombardi does not send the notification at the time that the violation occurs. Instead, it sends the notification at the time that the activity is complete. So, if the activity takes three days to complete, Lombardi sends the notification at that time, informing users of the violation. SLAs enable you to easily report on violations, as well as understand the trend in violations over time.
Building custom KPIs
In general, KPI data comes from two different sources: one is based on business data, such as existing order status information; the other is the additional basic data specifically for the calculation of KPI, such as the issued time and the effective time of the order. A KPI user interface page is used to display the KPI data, usually in different formats, such as pie charts, histograms, and so on.
The sample of purchase order process used in this series uses the following KPIs to illustrate how you can build custom KPIs and report them in UI pages.
Create an Order Processing Time KPI
In the purchase order scenario, The order processing time KPI is used to analyze the average processing time of each order. In order to calculate the average processing time of each purchase order, the following two fields are required:
- Order Creation Time
- Order Delivery Time
To create the custom Order Processing Time KPI, complete the following steps:
- Start the Lombardi Authoring Environment and open the process application developed in previous parts of this series.
- Click the plus sign (+) next to the Rules category and select Key Performance Indicator from the list.
- In the New Key Performance Indicator dialog, specify a descriptive
name for the new KPI, such as
Order Processing Time KPI, and click Finish.
- In the Details section of the dialog, select Time as the Unit for the KPI, as shown in Figure 1.
- Click Select to choose a KPI in order to roll the selected unit up into a higher level KPI.
- Specify the value by which to multiply the unit that you are tracking before the data is collected in the roll-up KPI.
Figure 1. Create Order Processing Time KPI
Create an Order Submission Resource KPI
An order submission can have the following sources:
- Order Submission by UI - submitting the order using a web-based user interface.
- Order Submission by ERP - submitting the order from the external ERP system.
Follow the steps in Create an Order Processing Time KPI to an Order Submission Resource KPI.
Verify that the newly created KPIs are listed in KPI types, by clicking the Performance category, as shown in Figure 2.
Figure 2. Performance KPI types
Tracking Lombardi performance data
In Lombardi, tracking requirements are called definitions because they establish a database schema in the Performance Data Warehouse to accommodate the tracked data generated by the Process Server. Definitions must be sent to the Performance Data Warehouse when you make any changes to your tracking requirements in the Lombardi Designer.
To create customized and third-party reports in Lombardi V7.1, you need to identify the data to track and send that data to the Performance Data Warehouse. Lombardi provides two tracking methods: autotracking and tracking groups.
When you use autotracking to track the data, the following KPIs are tracked:
- Custom KPIs associated with your BPD
- Custom KPIs associated with the activities in your BPD
- The Total Time KPI associated with each BPD by default
The supported data types are String, Integer, Decimal, Boolean, and Date.
If you want to explicitly control your tracked data and tracking points for more advanced custom reports, you should use tracking groups to track the data. For example, you can group the variables that you want to track by type, strategically place tracking points in your BPD, and track variables across multiple BPDs. With tracking groups, your tracking points can also span multiple BPDs.
The supported data types are String, Number, and Date.
If you want to create reports to analyze the amount of time that elapses between certain steps in your process, you can add tracking points to your BPD and then create a timing interval to capture the duration between a starting point and an ending point. When using timing intervals, you should auto-track the process variables that you want to capture and then create a tracking group to hold the timing interval data.
Building customized reports
Lombardi reporting options provide a powerful way to collect, publish, and consume process performance information. They can enable you to easily define the data that will help you analyze process performance, configure the product components to collect this data, and create the reports that consume the collected process performance data.
Lombardi provides the following reporting capabilities:
- Out-of-the-box scoreboards: The out-of-the-box scoreboards provided by Lombardi can help you to analyze personal performance, team performance, business process performance, and SLA violations with minimal configuration. Default scoreboards are available by default in the Lombardi Process Portal.
- Customized reports: Customized reports enable you to analyze business data specific to your processes. You can define the variables to track and create customized reports to query your tracked data in the Lombardi Designer. You can view the resulting report scoreboards in the Lombardi Process Portal or any browser.
- Third-party report tool: Lombardi provides the capabilities to support a third-party report tool, such as Cognos, to query and view the Lombardi Performance Data Warehouse and extract data.
How reports work in Lombardi
After you send tracking definitions to the Performance Data Warehouse from the Lombardi Authoring Environment and then start to run instances of your process, the Performance Data Warehouse retrieves tracked data from the Process Center Server or Process Server at regular intervals. As shown in Figure 3, the reports work with Lombardi as follows:
- In the Lombardi Designer view, define the variables that you want to track and then send tracking definitions to the Performance Data Warehouse. The Performance Data Warehouse creates a database table to hold the tracked data.
- Run instances of your processes on the Process Center Server or a Process Server in a runtime environment.
- The Performance Data Warehouse retrieves tracked data for each
variable from the Process Center Server or Process Server at regular
When a process participant accesses a task that is part of the process or a system involved in the process generates an event, the Process Server creates the tracked data. The tracked data can include runtime values for the fields in a Tracking Group, values for a Timing Interval, or variables whose values are auto-tracked. The Process Server writes the tracked data to the Process Server database.
The Performance Data Warehouse polls the Process Server database at configurable intervals, checking for a batch of data that is ready to be transferred. In a single transaction, the Performance Data Warehouse marks the data in the Process Server database as transferred (locking it to prevent any further updates), loads the data from the Process Server database to the Performance Data Warehouse database, and then deletes the transfer records from the Process Server database.
- Create reports in the Designer that query the Performance Data Warehouse to retrieve the required data.
- Reports that you define in the Designer display as scoreboards in the Lombardi Process Portal or a customized portal. You can also query the Performance Data Warehouse from third-party tools such as Cognos to build the more specific reports.
Figure 3. Lombardi reporting process
Create a simple custom report
The following sections explain how to enable autotracking capabilities to track data and generate a custom report of order submission source using the Ad-Hoc wizard.
- To use autotracking, open the BPD diagram in the Designer view. Click
the pool, and make sure Enable Autotracking is checked, as
shown in Figure 4. When autotracking is enabled for a BPD, data for
any nested processes of that BPD will also be tracked. Subprocesses
and services inherit the setting of the parent process. Change the
default autotracking name to
Figure 4. Enable autotracking
- If you want to analyze process data according to particular business
variable values, go to the Variables tab for your BPD and
right-click each variable that you want to track, such as
orderID, status, or orderSubmissionSource,
and select Track this Variable, as shown in Figure 5.
Figure 5. Select variables to track
- Save the BPD and then send the newly defined tracking requirements to
the Performance Data Warehouse by selecting File => Send
Definitions to Performance Data Warehouse. Then you can go to
the Performance Data Warehouse database in the Process Center and
verify that a PurchaseOrderProcessTG view has been created that
includes a column for each variable that you tracked, as shown in
Figure 6. Verify variables in PurchaseOrderProcessTG view
- The Ad-Hoc wizard in the Designer view enables you to quickly
generate and publish reports. Using autotracked data with the wizard,
you can easily create custom reports to analyze various aspects of
In the Designer view, open the diagram of the BPD by selecting File => Ad-Hoc Report Analysis from the main menu. Choose the settings that you want for the report from the wizard. For example, as shown in Figure 7, select the orderSubmissionSource variable for the X-axis binding and the orderId variable for the Y-axis binding with the function of COUNT (#), because we want to show the sum number for each type of purchase order. Leave the default chart layout (Stock Bar Chart), and then click the Refresh icon in the upper right to preview the chart in the wizard.
Figure 7. Ad-Hoc Report
- Once you're satisfied with the chart's appearance and data, click the
Create Report icon in the upper right. In the Create Report dialog,
Order Submission Sourceas the name of the report and click Finish.
- To create a scoreboard so that you can display the report in the Process Portal, click the plus sign (+) next to the Performance category in the library and select Scoreboard from the list of components.
- In the New Scoreboard dialog, specify
Order Submission Sourceas the scoreboard name, leave the default layout setting (Default Scoreboard Layout), and click Finish.
- In the new scoreboard, under Reports, click
Add, find the report, and click it to add it to the
Under Layout, check Enabled and specify a title for the scoreboard, such as
Order Submission Source. Click Select next to Exposed to option and select the participant group whose members can view this scoreboard in the Process Portal, as shown in Figure 8.
Figure 8. Specify Scoreboard options
Now when you log in to Lombardi Process Portal as a member of the participant group to whom the scoreboard is exposed, you can see the title of the Scoreboard (Order Submission Source) under My Scoreboards on the left of the portal. When you click it, the Process Portal displays the report as shown in the following Figure 9.
Figure 9. Resulting scoreboard
Create a basic custom report
In this section you'll learn how to use the Ad-Hoc wizard to leverage data captured using tracking groups, so that you can compare the duration of a set of tasks for different process variables.
- In order to calculate the processing time for each purchase order,
add the Submit and Completed
tracking points to the BPD diagram as shown in Figure 10.
Figure 10. Add tracking points
- Create a tracking group to hold the timing interval data. In the
Designer view library, click the plus sign next to the
Performance category and select Tracking
Group from the list of components. For our sample,
OrderProcessingTimeTGas the name of the newly created tracking group and click Finish.
- Select the icon for each tracking point in the BPD diagram, select
the Implementation option in the properties, select
the OrderProcessingTimeTG tracking group and then
specify the tracked fields, as shown in Figure 11.
Figure 11. Specify tracked fields
- Now you need to create the timing interval. In the Designer library,
click the plus sign next to the Performance category
and select Timing Interval from the list of
Order_Processing_Timing_Intervalas the name of the newly created timing interval and click Finish.
- Open the new timing interval (Order_Processing_Timing_Interval) and
add the start and end tracking points, as shown in Figure 12. Select
the Submit tracking point for the Start Points of the
interval with Calculate from earliest point, and the
Completed tracking point for the End Points of
the interval with Calculate from latest point, as
shown in Figure 12.
Figure 12. Configure Order Processing Timing Interval
- Follow the steps in Create a simple custom report to create a report, selecting the OrderProcessingTimeTG.supplier variable for the X-axis binding and the Order_Processing_Timing_Interval.duration variable for the Y-axis binding with the function of AVG (average), since you want to show the average processing time of each purchase order per supplier.
- After you finish creating the report and score card, you can log in
to Lombardi Process Portal as a member of the participant group to
which the scoreboard is exposed. You should see Order Processing Time
scoreboard under My Scoreboards. Click it to display the Order
Processing Time report, as shown in Figure 13.
Figure 13. Order Processing Time Report
In this paper, you learned how to use WebSphere Lombardi KPIs and reports for monitoring and performance analysis. Lombardi reporting options provide a powerful way to collect, publish, and consume process performance information. Specifically, Lombardi enables you to easily define the data that will help you analyze process performance, configure the product components to collect this data, and create the reports that consume the collected process performance data.
|Purchase Order Process file||PurchaseOrderProcess_v6.zip||466KB|
- IBM WebSphere Lombardi Edition 7.1.0 Information Center
- WebSphere Lombardi edition
- Business Process Modeling Notation (BPMN) web site
- Introduction to BPMN (PDF)
- BPMN and Business Process Management
- developerWorks BPM zone
- IBM BPM Journal