Recently I have worked on a number of issues where customers have had questions about the way My Team Performance displays results. In particular, how are they displayed when you use additional configuration settings that are present in IBM Business Process Manager V7.5.1.x and 8.0.x and can you customize them.
IBM Business Process Manager has at least two settings that can control what results are displayed in My Team Performance Scoreboard.
The Boolean settings in question are:
There is a basic explanation of these settings in the Configuring the My Team Performance dashboard topic in the information center. However, in this blog article, I will provide a more detailed explanation as well as examples as I feel like it is often misunderstood.
Let me start with some background on these two settings.
With the my-team-performance-task-visibility-for-related-groups=true value, you see the following behavior:
- Tasks that are assigned with members of any group that are in common with managed groups are returned. For more information, see the example that follows this unordered list.
- The process filter list shows the additional related processes.
- When a participant group filter is selected, it filters based on any group with members in common with the selected group.
For example, let us assume Group1 has 10 users. Each of those 10 users is in one other group and they are all different. My Team Performance pulls in tasks and other processes related to all 11 groups. This approach is an aggressive way to pull in ad hoc and dynamic groups when you know of a team that has users in common with the ad hoc groups. However, the downside is you also pull in some unintended related groups. On the query side, we cannot distinguish between the related groups you want pulled in and the related groups that you do not want pulled in. We cannot change the behavior of related groups. Each client might have different requirements for this, so it is impossible to meet everyone's expectations. As a result, IBM Business Process Manager has a lot of custom reporting capabilities that you can use to implement your own custom reporting and fulfill all your requirements.
Get the membership of a specific group:
INNER JOIN "LSW_USR_GRP_MEM_XREF"
ON "LSW_USR_GRP_XREF"."GROUP_ID" = "LSW_USR_GRP_MEM_XREF"."GROUP_ID"
INNER JOIN "LSW_USR_XREF"
ON "LSW_USR_GRP_MEM_XREF"."USER_ID" = "LSW_USR_XREF"."USER_ID"
"LSW_USR_GRP_XREF"."GROUP_NAME" = 'GroupName'
Get the groups for which a specific user is a member:
INNER JOIN "LSW_USR_GRP_MEM_XREF"
ON "LSW_USR_XREF"."USER_ID" = "LSW_USR_GRP_MEM_XREF"."USER_ID"
INNER JOIN "LSW_USR_GRP_XREF"
ON "LSW_USR_GRP_MEM_XREF"."GROUP_ID" = "LSW_USR_GRP_XREF"."GROUP_ID"
"LSW_USR_XREF"."USER_NAME" = 'UserName'
To explain this behavior, let us look at the following example. Let us assume that you have a business process definition (BPD) with one activity and the activity is assigned to a UserA directly. It is not assigned to the Participant Group and the Security Group. UserA is a member of GroupA and, in turn, GroupA has a Team Manager group called ManagerGroup. GroupA has two users called UserA and UserB. ManagerGroup has one user called Manager.
If you start a BPD instance, it generates a task for our activity and it is assigned to UserA. When you have the my-team-performance-task-visibility-for-user-assigned-tasks property set to true, the task is visible in My Team Performance when you are logged in as a Manager user even though it is not assigned to a GroupA, who reports to ManagerGroup. Now, if the setting is set to False, then you only see the tasks in My Team Performance that were initially assigned to GroupA or to a Participant Group that has GroupA added as a member.
You have configured the flags. However, you still get a lot of information or you get information that you do not want. What are your options? Here are the options:
Build a custom report that is similar to My Team Performance. Expose it in the Portal. The data that is in the task list table is being populated through the queries primarily. It uses a couple of queries. The main query that populates the records in the main My Team Performance table is <task-details-query> in the 60Database.xml file. The way it calls the queries is from the report transformation that can be found within the Process Portal application in Process Designer. If you open this application, search for PM Process Analysis, and open it in Process designer, you can see the following information:
- You see the Pages and Charts and Datasource tab,
In every tab you see pages, charts, and data sources that are related to My Team Performance and the corresponding code and calls. There is an example on the IBM BPM Community Wiki at the following URL: http://bpmwiki.blueworkslive.com/display/commwiki/Example+Customization+to+My+Team+Perf+Report+%28Adding+a+column+of+business+data%29
Note: Because it is a community wiki this solution has not been tested.
Build a custom report. There are a lot of capabilities in IBM Business Process Manager to build custom reports that can meet your requirements. For example: http://bpmwiki.blueworkslive.com/display/wle72/Creating+a+more+advanced+custom+report
- Upgrade to the IBM Business Process Manager 8.5 release. In this release, the My Team performance report has been completely re-written and redesigned. Now, it uses only new Business Process Manager coaches and human services; not report transformation or scoreboards. So, it can be cloned easily and modified to meet your requirements.