Making Developers and Business Users Happy with IBM BPM and Case Management
The introduction of Case Management in IBM BPM 8.5.5 marked a leap forward for the platform by introducing support for unstructured workflow, along side Business Process Definitions. This post will present a client implementation where the feature proved valuable and introduce Brazos for Case.
Case Management is not a novel concept. Many great products have existed for years that just focus on case work and knowledge workers. Moreover, it is important to note that building a case management solution in IBM BPM has been possible prior to this new feature. In fact, the vast majority of IBM BPM applications out there have some ad-hoc or case-type functionality.
Take a look at the following process definition from an insurance fraud investigation solution we built a few years back. At a certain point in the process the field investigator needs to complete site visits, get on-demand expert reviews of patient records, and request statisticians to complete data extrapolations. The activity and two linked processes have various interdependent pre-conditions and could occur in parallel, making this a Case Management problem. That said, the Expert Review and Extrapolation linked processes are defined by a strict sequence of events, requiring the participation of different QA groups and a set of managerial approvals, making this a Business Process Management problem.
Since this solution was first implemented prior to the release of BPM 8.5.5, a common pattern for providing case management capability inside of a process definition was followed. The three message events on the Coordinate Field Investigation activity were triggered from inside the task by the field investigator, thereby starting a site visit, expert review, or an extrapolation. While this fulfilled the requirements, it created a less than ideal implementation. The business rules (pre-conditions) for when each start-able activity or subprocess is available to the user were spread across server scripts, UI visibility rules, and the process definition. This complicated maintenance and made any change in business logic a technical activity, requiring a developer closely familiar with the implementation.
Using the 8.5.5 Case Management feature, the same behavior is accomplished in a more structured and maintainable implementation.
The Coordinate Field Investigation activity, which took the most time to build and contained difficult to maintain business logic, is entirely unnecessary. Activity preconditions and other said business logic now resides inside of the Case Definition, where the rules are business readable and significantly easier to maintain. The running activities are completed and new ones are started from a case details interface.
The out of the box case details interface is built entirely out of CoachViews and provides a template for exposing the rich case management capability of the product to end users. Much like we did with Brazos UI, we examined this implementation closely, refined it through a couple implementations, and came up with a set of alternate CoachViews based on solution and business user demand.
The result is Brazos for Case.
This CoachView toolkit provides a complete replacement for all controls used in the out of the box case details screen. The toolkit improves on the out of the box controls by introducing features and functionality we’ve needed on our implementations.
From a design time perspective, each tab is an indipendent CoachView, allowing the BPM Developer to define any order or combination of tabs required by a given case definition.
Each tab can be one of five CoachViews.
1. Task List, offering an improved user experience and quick reassignment
2. Activities List, surfacing activity preconditions and dependencies
3. Document Management, offering drag and drop and an improved cache system
4. Comments and Activity Stream, adding rich text capabilities
5. Data View, able to display thousands of case properties consisting of lists and complex data
Regardless of the individual tab types used in a given set, a global search option allows end users to search across all data in all tabs. In the following example the tab is automatically changed because the one in focus does not contain any results, an activity is returned because the document it requires to start contains the search substring, and a specific piece of business data is returned because it’s label contains the search string.