Business process management (BPM) and case management are the two leading ways to manage business processes and documents. Together they form a complementary and complete way of managing most complex, enterprise-level business transactions. With IBM Business Process Manager Advanced V7.5.1 (hereafter Business Process Manager), you can access case management cases through services in a business process. The reverse is also true. IBM Case Manager V5.1 (hereafter Case Manager) can also interact with business processes created in Business Process Manager.
In this article we'll show you how to access a case from a business process by creating Case Manager Integration services. We'll then build a business process that includes a user interface along with these services. Finally, we'll look at the business process at run-time as a user would work with it. The application is available with this article as a download.
The case used in this article is from the Credit Card Dispute Management sample, a well-known Case Manager sample (see Acknowledgments).
Business Process Manager Advanced provides a new integration service editor. This editor has four operations you can use to build services that work with case management cases. In this article, we'll use all four of the following operations:
- Create case: A case is an instance of a case type in IBM Case Manager. The case type we use is ManageDisputeItem. Using the create case operation creates an instance of the ManageDisputeItem case type. From a user’s perspective a user can register a dispute over a credit card bill with this create case operation.
- Search case: This operation searches for a case using a Content Management Interoperability Services (CMIS) query. From a user’s perspective a search case operation lets him find his disputed claim at a later date.
- Retrieve case: Once a case has been found, the retrieve case operation retrieves it. A user can browse the status of his disputed claim with a retrieve case operation.
- Update case: The update case operation lets a user add additional comments to the credit card dispute created earlier.
As mentioned, we used the Credit Card Dispute Management sample from IBM Case Manager for this article. Because the sample on the IBM Case Manager server has a solution name of Credit Card Dispute Management, we used that same name for the process application developed in this article. The reason for this is that the name of a process application containing IBM Case Manager Integration services must match the name of the case management solution with which the services interact.
To use the editor operations, you must connect the process application in which you are developing your business process to an IBM Case Manager server. You can configure that connection in the Servers section of the Process App Settings page, which is the first page you encounter when opening a process application. It takes only a few minutes to add the hostname, port, target object store, and other information to connect to an IBM Case Manager server. We created a connection called ICM_SERVER.
In this section, we'll build the first service, which creates a case instance using the Create case operation.
- Open the IBM Case Manager Integration Service editor and drag an IBM Case Manager Integration icon from the palette to the canvas to create the basic service.
- To select a case operation, open the Properties view, select the
Implementation tab and choose the operation from a drop-down list.
These operations are available only when you've connected to the IBM
Case Manager server, as described earlier. In our example application,
we specified ICM_SERVER, as shown in Figure 1.
Figure 1. Select the Create case operation
- Next you need to decide which case type do you want to instantiate.
There may be many case types available to you. Click Select to
see the available types. In our example, we chose
CCDM_ManageDisputeItem. Then click Generate Types to
generate business objects (complex types) for the case, as shown in
Figure 2. These business objects are used as data types for variables
that pass data between the business process and the case.
Figure 2. Select a case type
- The final part of creating our service is data mapping; that is,
mapping input and output parameters of the service to variables.
Variables are needed to pass the data between the business process and
the case. Select the Data Mapping tab in the Properties view. You can
generate private variables automatically by clicking an auto-map
function. Alternatively, you can manually create your own variables
and map the input and output to them, as shown in Figure 3.
Figure 3. Generate variables
Our new service creates a case instance. From a user's perspective, this new service at run-time becomes a claim that disputes a credit card charge. However, a user might also want to return to that claim at a later time to check its progress. Next we'll create a service to provide that function by searching and retrieving cases.
Creating a service with a search operation is similar to the first service you created: select the search operation, choose a case type, generate types and map the variables. However, the search operation involves a search. Remember that the IBM Case Manager server will likely have many cases available but you are looking for just one.
You can build a query to find your case in two ways. For the average business user, a graphical interface is provided under the Case Filters tab when you select a search operation. The user makes choices from some controls and fields and a Content Management Interoperability Services (CMIS) query is built. Users familiar with CMIS, can write their own query for the CMIS query field. In our example, we wrote a CMIS query, as shown in Figure 4.
Figure 4. Create a CMIS query
After the CMIS query runs we take the first reference returned and use the retrieve operation to get its properties. Users can now use the search and retrieve operations to view the status of a credit card dispute.
Our first service let a user open a credit card dispute item online. Our second service let a user view the status of his dispute. Our final service lets a user add additional comments to update his credit card dispute.
You can create a service with an update operation in a similar manner to the previous two services: select the update operation, choose a case type, generate types and map the variables. The properties of the case, however, are now editable. Figure 5 shows some of these properties.
Figure 5. Case properties used in update operation
We've now created three IBM Case Manager Integration services. Next we need to incorporate these services into a business process that includes these services and a user interface. Using IBM Business Process Manager Advanced you can drag services onto the canvas of the human services editor, in which you can create the user interface.
In our example, we started our business process with a user interface that lets the user choose to create a new credit card dispute, check the status of a dispute or update an existing dispute, as shown in Figure 6. The user's choice determines which service is invoked.
Figure 6. Start of the business process
The second half of the business process completes the decision of the user. If the user opens a new credit card dispute, a new case instance is created. The user is given a response that includes the number of the new dispute. This number is a key that the user can use later to view the status of the dispute or update the dispute claim.
If the user wants to check the status of a credit card dispute, then the status is returned. This path uses the search and retrieve operations.
If the user wants to add comments to the claim, the update operation presents the editable fields. See Figure 7 for the outcome of the user's selections.
Figure 7. Completion of the business process
You can quickly create a user interface IBM Business Process Manager Advanced using a feature known as the Coach. The Coach examines the variables, the activities, and the relationships of the activities in a business process and produces forms for the user. If you use the Coach, all you need to do is modify the forms to suit your own preferences for the user interface. Figure 8 shows a user interface we created with the help of the Coach.
Figure 8. Coach-assisted user interface
We've built the IBM Case Manager Integration services, created a business process with them and added a user interface. Now it's time to look at what someone using the application would see at run-time. This user is one who never works directly with IBM Business Process Manager Advanced or IBM Case Manager. If we look at the three kinds of users, as shown in Figure 9, the business process developer and administrator are the ones who build an application. The business worker, who is often a customer, is the one who uses the application each day by filling in forms.
Figure 9. IBM Business Process Manager users
When a business user or customer launches our sample application over the internet and opens a credit card dispute, the interface shown in Figure 10 displays. The user fills in his or her name, some details and the nature of the dispute.
Figure 10. Opening a credit card dispute
When the user clicks OK, he or she receives a number to use to reference the dispute, as shown in Figure 11. This number is a reference to the case instance. Later, when the user wants to see the status or add comments about the dispute, this reference number is the way to access the credit card dispute.
Figure 11. Reference number for the dispute
For example, using this number, the user can update the dispute, as shown in Figure 12. This update is running search, retrieve and update operations behind the scenes.
Figure 12. Updating a credit card dispute claim
We have focused on how a customer would work with our application, which is using Business Process Manager Advanced and IBM Case Manager in the background. However there is another user: the credit card dispute administrator. This person tracks the credit card disputes and their resolution.
This person uses the IBM Case Manager in-basket to track the disputes, as shown in Figure 13. Essentially, he or she is monitoring the cases on the IBM Case Manager server.
There are two ways to use the in-basket: log on to the IBM Case Manager Client and use the available in-basket to monitor items like the credit card disputes, as in Figure 13, or configure an in-basket Business Space application using IBM Business Process Manager Advanced. Configuration is covered in the product information.
Figure 13. Credit Card Dispute Management in-basket
You can use the accompanying sample to understand how to integrate business processes and case management cases. To use the sample, complete the following steps.
- Import the sample into the Business Process Manager Process Center.
- In the Process Center, beside the Credit Card Dispute Management process application, click Open in Designer. In the Process App Settings Servers page, select ICM_SERVER and change the Server Location values to the correct ones for your own Case Manager server.
- Import the IBM Case Manager Credit Card Dispute Management sample into the IBM Case Manager Builder page of your Case Manager server. You must use the V5.1 version of the sample. Refer to the Resources section for a link to the developerWorks article containing the sample.
In this article, you've learned how to develop an application that uses both IBM Business Process Manager Advanced V7.5.1 and IBM Case Manager V5.1. From a business process perspective, the key component is the IBM Case Manager Integration service editor, which can access case management cases in several ways through operations. Other functions shown in the article, such as generating types, simplify the creation of applications that integrate IBM Case Manager and Business Process Manager to manage business processes and documents.
The authors are grateful to the following people who gave us permission to use the IBM Case Manager V5.1 Credit Card Dispute Management sample: Jeff Douglas, Mike Marin and Jake Levirne. This well-known IBM Case Manager sample is used in both a developerWorks article and an IBM Redbook (see Resources).
|Dispute Management sample||Credit_Card_Dispute_Management.twx||483KB||HTTP|
IBM Business Process Manager V7.5.1 Information Center. See Building an IBM Case Manager Integration service.
IBM Case Manager V5.1 Information Center. See Integrating with IBM Business Process Manager.
Use industry templates for advanced case management, Part 1:
Introducing the Credit Card Dispute Management sample solution
template for IBM Case Manager. This developerWorks article
contains the sample required for your IBM Case Manager V5.1 server. It
must be the V5.1 version of the sample. This sample is also used in the Advanced
Case Management with IBM Case Manager (Redbook)
Content Management Interoperability Services (CMIS) Version 1.0
developerWorks BPM zone: Get the latest technical resources on
IBM BPM solutions, including downloads, demos, articles, tutorials,
events, webcasts, and more.
Journal: Get the latest articles and columns on BPM solutions in
this quarterly journal, also available in both Kindle and PDF versions.
Gary Bist has worked as a technical writer on several WebSphere products at IBM’s Canada Lab. Gary contributed the information for the IBM Case Manager Integration service in IBM Business Process Manager V7.5.1.
Sebastian Carbajales is a senior developer at the IBM Canada Lab who has worked on several WebSphere products. Sebastian led the development of the IBM Case Manager Integration service addition to IBM Business Process Manager V7.5.1.
Tony Chau has worked with several teams on product integration. He was a key developer of the IBM Case Manager Integration service editor in IBM Business Process Manager V7.5.1, and previously helped integrate IBM Process Designer and IBM Integration Designer.