BPM, Workflow, and Case

All In the Family Brings Parent Case Awareness to Business Automation Workflow Processes

By DAVE PERMAN posted Fri May 10, 2019 04:18 PM

  

A long time ago, IBM Case Manager (ICM) was known to peek over the back fence into the yard of his neighbour, IBM Business Process Manager (IBPM), and gaze longingly at the advanced process capabilities that lived there. Sometimes, ICM would see IBPM doing the same, admiring ICM's powerful case modelling, persistence and process orchestration.

One day, the two decided it would be really cool if clients who had both offering could more easily build solutions where one could call the other; a process could create an ICM case if a more collaborate exception step was required or a case could launch a IBPM that might already be available as a service.

For the latter use case, a feature was added to Case Builder where a case activity (known as a case task back then) could be linked to an existing IBPM process using the "Task with existing BPM Process" command. This command, only visible if an IBPM was pointed to during installation, allowed the selection of a process from a specially named Process App and the mapping of case properties to process variables on launch (inputs) and completion (outputs).

Although this was a very useful capability for our clients, it was still a very arm's length integration, with the process not really knowing much about the case that launched it other than through the case properties that were passed in.

Fast forward to today! That fence has been torn down. Case and Process have moved into a nice new home called Business Automation Workflow (BAW) on a street called Digital Business Automation with their fantastic neighbours Tasks (RPA), Decisions (OBM), Content (ECM) and Capture (Datacap).

With BAW, Case and Process are much more tightly integrated with (IBPM) Processes on their way to becoming the primary method of automating a structured case orchestrated activity. This enhanced integration can be seen in the updated Activity features of BAW 19.0.0.1.

BAW Case Activities Menu
The Activity with Existing Process feature has been enhanced to allow the selection of any process from any exposed Process App.

Activity with Existing Process Setup
The Activity with New Process command is a new command available when you create a new BAW Project or promote and existing ICM 533 solution to a BAW Project (your case solution will work exactly as it did before and you will see these new features).

Instead of selecting an existing process that you or someone else has already created and made available, this command lets you create new process and store and manage it as part of your BAW Project. One big happy family!

But wait, there's more!

New system properties and methods have been added to processes that are launched from case activities.

Note! In BAW 19.0.0.3 we improved the way you find and access the case specific methods by adding a parentCase object to currentProcessInstance and moving all the individual case methods into it. Existing use of 19.0.0.1 API is still supported but has been removed from the auto-complete helper.

tw.system.currentProcessInstance.parentCaseId;
tw.system.currentProcessInstance.parentActivityId;

tw.system.currentProcessInstance.parentCaseServerName;

These properties on the currentProcessInstance object contain the case folder ID (FileNet GUID) and the name of the FileNet server. These values can be used with the handy Content Management Toolkit that can be added to your projects since many of services require those values as inputs to identify the content object that the service is interacting with.

Screen_Shot_2019-05-10_at_11_59_41_AM.png
These content management services and can be performed on any content management object including a BAW Case Folder instance where all the case property values are persisted as folder meta data.

But what about other operations a process might want to perform on its parent case? For that, we have made it even easier with a new set of parent case related methods you can call on the currentProcessInstance object. These include operations like:

tw.system.currentProcessInstance.addCommentToParentCase("Here we go!", true);
tw.system.currentProcessInstance.completeParentCaseStage(true);

The full set of currently available case related methods can be viewed here:

https://www.ibm.com/support/knowledgecenter/en/SS8JB4/com.ibm.wbpm.workflow.main.doc/topics/rcase_interactproc.html

Although this is a great start, we are busy working on our next update that will make interacting with case properties even easier. We are also working on new integrations with our other family members and neighbours.

Maybe we should plan a block party!

2 comments
89 views

Permalink

Comments

Tue June 09, 2020 02:56 PM

​These both are good systems in their own markets however I believe IBM BPM got an edge over ICM when it comes to automation and DevOps. Hopefully this marrying will enable BAW customers, who got huge applications developed on ICM, use some cool DevOps feature of IBM BPM into their ICM solutions without re-writing their whole application on IBM BPM.​

Tue September 10, 2019 04:09 AM

What about "a process could create an ICM case if a more collaborate exception step was required"? Since ICM is not really (visually) model-driven, a desirable starting point is a BPMN diagram. BPMN is WYSIWYG and can normally describe both process and case flows (let's skip the dud that is CMMN). Although the implementation of ad-hoc tasks (and event subprocesses ... ) in IBPM was perhaps troublesome, it was very nice from a logical point of view.