May 26 2015


Oracle Business Activity Monitoring (BAM) dashboards provide highly graphical summaries of what's going on in a process.  They can also help identify when bottlenecks arise in a process. Process metrics are not an afterthought, however.  A process' key performance indicators should be identified earlier, rather than later, in process design as the business indicators take the form of project variables that must be assigned at points in the process.  When BPM process metrics are enabled in BAM, a rich set of data objects are created for the BPM application and for use in the BAM Composer user interface. This makes it is easy to "slice & dice" most of the process metrics.  

There are a number of metrics take a little more discovery, to understand what data reside where in BAM.  For example, how much time does it take for certain human tasks to complete or how long does it take for certain key participants in the process to complete their tasks?  These specific metrics require a better understanding of BAM data object calculated fields, BAM functions and the use of the Human Workflow data objects and are the subject of these recipes.  All content in this topic is in the conext of Oracle BAM 12c.

Process Example

The sample process behind the BAM dashboard metrics is an Employe Onboarding process where candidate resumes are reviewed and approved by various application roles. There are two sources of input: one from an internal activity in the company and one via a web service posting from the company web site.  Once in the process, there may be a special review that is performed on the job posting to help identify highly needed candidates. Email notifications are sent at the end of the process to reflect the decision reached by the company for the job posting.

As shown above, there were Business Indicators (see #1 above) and measurement marks (#2) defined at various stages in the process to identify how long it takes to approve a candidate after the process is initiated.  Counts of special reviews, approvals, and declined job posting responses were also defined in the metrics.

Dashboard Example

Basic slice & dice capabilities of the process metrics were easily provided on many of the dashboard graphs below. The posted and requested salaries were defined as business indicator measures and can be graphed by position and city as the latter is defined as business indicator dimensions.  Data attributes provide the ability then to render tabular data as shown in the lower right.

The three highlighted charts above Counts by Activity, Time by Activity and Time by Participant will be covered separately in the remainder of this topic. All three charts reflect the time as Minutes on the X axis.

Counts By Activity Chart

The business query associated with the BPM process is the logical Activity data object EmployeeOnBoardingProject Activity (found in the oracle/processanalytics folder), as shown in #1 below. This data object is created when BPM metrics are enabled in BAM.

The interesting aspect of the business query shown above is the filter criteria (#2 above) necessary to limit the activities that appear on the chart to only those we care about in the process. Typically, those are only the human tasks.  Left unfiltered, the chart would reflect counts of all activities for which sampling points have been defined.    

As shown below, the Add/Edit Filter dialog provides an intuitive way to define the list of activities to be filtered.

Time By Activity Chart

The second chart in the dashboard is a bar chart showing how many minutes were spent on a select (filtered) list of activities.  It uses the same data object as the previous chart. The difference however, is the use of a calculated field (CUSTOM_ACTIVITY_TM) for the measure of task time.

TIP: By convention, use a consistent naming standard to identify custom fields created for the BAM Designer. Prepending with CUSTOM is a usage as well as using all upper cases and underscores between words.

The oracle/processanalytics/EmployeeOnBoardingProject_Activity data object was edited by the Designer to add the calculated field CUSTOM_ACTIVITY_TM as shown below.  


TIP: BAM provides the DATEDIFF function to calculate the difference between dates (and times).  The first argument defines the unit of time interval (seconds) to be returned.  Interestingly the entire result was divided by 60 to render it in minutes.  (SQL_TSI_MINUTE could have been used to make the expression a little easier.)  There is a list of documented functions available within the Expression editor. 

Time By Participant Chart

So far the previous two charts reviewed used the BPM generated data objects for the BPM process. In this next chart and business query the data needed to display the time spent in human workflow (user tasks) is found in the HWF Task Assignment data object. This data object must be imported into the BPM Dashboard project will be described next.

To import this data object, simply click on the BPM project's Data Objects folder (as shown in #1 below). This will open a list of Data Objects that can be added. Select the HWF Task Assignment data object (already added so it is not in the list).

The next step requires a BAM Administrator to create a new calculated field (CUSTOM_PROCESSING_IN_MINUTES) in the HWF Task Assignment data object, highlighted below.

The calculated field will have an interesting expression defined in which the calculation will be performed in the task has been completed. Only THEN, if the task has been completed will the DATEDIFF calculation will be performed, ELSE return -1. This predicate is essential to avoid including tasks still in progress, for which there in no Task End Date yet.

IF({Assignment State}=="COMPLETED")
    THEN(DATEDIFF(SQL_TSI_SECOND,{Task Start Date},{Task End Date})/3600)ELSE(-1)


BAM 12c Composer is much more usable for the dashboard designer than the previous release.  It provides a more intuitive, user friendly interface that will spur more business process dashboard developments than in the past. Particularly, when coupled with many of the out-of-the-box data objects that are inherited from enabling BPM metrics collection in BAM. Any gaps missing in the metrics can be filled in via other data objects like HWF Task Assignment and additional calculated fields.

As a BAM Designer, you should be familiar with the various data objects available for process analytics. As shown below in the Administrator view there are many available data objects with already defined calculated fields that you can leverage in the process dashboards. Highlighted below is an example of calculated fields for Adaptive Case Management analytics:


An archive of the 12.1.3. JDeveloper application is available upon request.

About the Author

Greg Hughlett

Greg has more than twenty-five years of experience in all phases of design, development, and implementation of software applications.  He has developed and architected BPM/SOA technologies for more than ten of those years from Fuego BPM to BEA AquaLogic BPM to Oracle BPM/SOA 11g.  He has worked for clients within banking, financial services, Life Insurance,  Health Care, public sector and telecommunications industries.  His areas of expertise include Oracle SOA and Oracle BPM (formerly AquaLo

Join the Conversation

May 28, 2015

Nice Articles. Can you share the code for quick evalution.



Enter your first name. It will only be used to display with your comment.
Enter your email. This will be used to validate you as a real user but will NOT be displayed with the comment.
By submitting this form, you accept the Mollom privacy policy.