Showing posts with label Case Management. Show all posts
Showing posts with label Case Management. Show all posts

Saturday, August 27, 2016

New Book: Best Practices for Knowledge Workers (digital edition)

A couple of weeks ago the book "Best Practices for Knowledge Workers" has been published by Future Strategies Inc. in association with the Workflow Management Coalition (WfMC).


The authors Nathaniel Palmer, Keith Swenson, Jim Sinur, Dr Setrag Khoshafian, Linus Chow, et al describe Adaptive Case Management (ACM) in the current era of digitization, Internet of Things (IoT), artificial intelligence (AI), intelligent BPMS and BPM Everywhere.

We (Juergen Kress, Ricardo Puttini and myself) are very proud contributers in the digital edition of this book. With our chapter „ACM Methodology: Best practices to design and implement solutions for knowledge workers“ we are sharing our experiences from multiple ACM implementations.

ACM Methodology Chapter 

BPM-based solutions have brought major advances to work organization and automation. However, given BPM’s strong basis on formal workflow definition, oftentimes BPM solutions are not well suited for work scenarios where a precise workflow cannot be strictly defined. Work in such scenarios is highly dependent on knowledge-based decisions about activities and outcomes, leading to multiple work paths and business rules that can become quite complex or even unfeasible to model and completely automate. In these cases, a different technology support approach is required. The focus is not to isolate and automate decisions and rules, but rather to deliver opportunistic information support to the knowledge worker to accomplish them. Adaptive Case Management (ACM) rises as a successful design pattern for this.

The ACM methodology described in our chapter covers typical software engineering disciplines: business modeling, analysis, design and implementation. This approach provides well-understood separation of interest criteria, which aims at making it easier for business analysts and software architects to understand and incorporate ACM design practices into their current professional skills. Additionally, specialized business models and software artifacts required for the successful realization of ACM design pattern are presented and developed in details in the following sections.

In order to make the concepts and the development activities more clear, each section within this chapter includes a case study example. Therefore, the reader is able to practice each exercise and to template the deliverables of each phase of the development. The ACM methodology was developed over the past years during execution of actual ACM projects in different customers and industry areas. Therefore, it brings together practical experience and real use of existing ACM software platforms.

Visit the Future Strategies bookstore here.

  

ACM Methodology Kit

As part of the book Best Practices for Knowledge Workers (digital edition) we published an Adaptive Case Management Methodology. The proposed ACM Methodology is based on the five phases, which covers typical software engineering disciplines: Business Modeling, Visualization, Analysis, Design and Implementation. New software artifact models for ACM user interfaces (ACM Workspace) and ACM solution analysis and design (ACM Canvas) are also among the contributions of this work. ACM design leverages the recently established Case Management Modeling Notation (CMMN v1.1). Templates of software artifacts, developed for each methodology phase, are also presented. These support a guided outcome and ensure projects progress and success.


Friday, June 13, 2014

OMG released formal version of CMMN 1.0

In May 2014 the OMG released version 1.0 of the Case Management Model and Notation (CMMN). You can access the documents associated with it under http://www.omg.org/spec/CMMN/1.0/.
Great to see that the specification also includes the “CMMN – Claims Management Example” (page 78) from our "Adaptive Case Management (ACM) in Practice" poster.


Tuesday, January 21, 2014

Install the new User Interface for Oracle Case Management 11.1.1.7

For all Oracle BPM & Case Management users a new User Interface is available (see SOA Community Blog). Below I describe briefly how to install it on a BPM 11.1.1.7 environment.

To access the software please login to support.oracle.com and search for the following Patches:
  • Patch 17014142: SOA BUNDLE PATCH 11.1.1.7.1
  • Patch 17767877: CASE UI IN WORKSPACE

1) Read the README-files carefully and perform the following steps for both patches:

2) Set the ORACLE_HOME environment variable to SOA Home, eg:
export ORACLE_HOME=/u01/app/oracle/middleware/Oracle_SOA1/
Validate the result with => echo $ORACLE_HOME
 

3) Add the appropriate OPatch to the system path, eg::
export PATH=$PATH:/u01/app/oracle/middleware/Oracle_SOA1/OPatch
Validate the result with => which opatch
 

4) Run OPatch to apply the patch
opatch apply

Repeat the steps for the oracle_common-Home. Patch 17767877 needs to be applied on the Jdeveloper ORACLE_HOME as well.

NOTE: YOU MUST APPLY THE SAME PATCH TO SOA AND oracle_common HOMEs AT THE SAME TIME. YOU CANNOT APPLY JUST ONE AS THIS WILL CAUSE UNPREDICTABLE BEHAVIOR.

Additionally make sure that you installed:
  • Patch 14526899
  • Patch 14791221

These two patches can be installed via Smart Update Utility. Start the tool under [MW_HOME]/utils/bsu, copy the extracted patches into [MW_HOME]/utils/bsu/cache_dir and apply the patches.

If you performed all steps successfully, you should now be able to access your case instances from BPM workspace. Have fun with it!



Tuesday, December 10, 2013

Create a custom Case Activity in Oracle BPM Case Management

In one of my previous posts I highlighted the new case management functionalites in Oracle BPM Suite. Case management enables you to define the different activities - a user can perform to achieve a goal - without defining the workflow process. For more details about ACM I recommend to download our "Adaptive Case Management in Practice" poster and to read the following articles:


A case is always associated with activities which are performed as part of a particular case. Among milestones, data, events, stakeholders and documents the activities are a key element in Oracle BPM 11g Case Management. In the current release you can create case activities based on a BPM process, or a Human Task, or you can create a custom case activity based on a Java class. In this post I will explain the steps to create a custom case activity.

Create a Custom Case Activity


1. Create a new "BPM Application"
2. Create a new "BPM Project"
3. Create a "Composite with Case Management" component

The above steps will result in a composite with the case and its exposed service and case rules. Now you can open the case definition and define your milestones, stakeholders, permissions, data, user events and so on. See the step-by-step "Hello World" example for more details. The Custom Activity Java class must implement the oracle.bpm.casemgmt.caseactivity.ICaseActivityCallback interface. The callback class must be part of the composite (as explained below), or must add it to the workflow customization classpath.

4. Import the oracle.bpm.casemgmt.interface.jar from
<MW_HOME>/Oracle_SOA1/soa/modules/oracle.bpm.runtime_11.1.1/


5. Import the bpm-services.jar from
<MW_HOME>/Oracle_SOA1/soa/modules/oracle.soa.workflow_11.1.1/

6. Select File => New => Java Class and create the CustomCaseActivity Java class.


7. Organize imports and add your custom logic in the "initiate" operation.

package com.cattlecrew.acm.caseactivities;

import java.util.Map;

import oracle.bpm.casemgmt.CaseIdentifier;
import oracle.bpm.casemgmt.caseactivity.ICaseActivityCallback;
import oracle.bpel.services.bpm.common.IBPMContext;

public class CustomCaseActivity implements ICaseActivityCallback {
    public CustomCaseActivity() {
        super();
    }

    public String initiate(IBPMContext iBPMContext,
                           CaseIdentifier caseIdentifier, String string,
                           Map<String, Object> map) {
       
        // Add activity logic here
       
        return "Called class CustomCaseActivity for activity => " + string;
    }
}

8. Create the case activity based on the Java class. See chapter 31 of the Oracle Fusion Middleware Modeling and Implementation Guide for Oracle Business Process Management for more details about config options and guidelines.



9. Define your Business Rules.

10. Deploy and test the Case composite. 

Friday, November 15, 2013

New SOA material available on OTN

Listen to our 3-part podcast about "the state of SOA" and read our 13-part article series "Industrial SOA" on OTN


Today I'd like to highlight some SOA material that has recently been published.

1) Podcast Show Notes: Old Habits Die Hard in the New SOA World

During Oracle OpenWorld 2013 in San Francisco Bob Rhubart from the OTN Architect Community invited Lonneke Dikmans, Ronald van Luttikhuizen, Hajo Normann, Torsten Winterberg, Guido Schmutz and me to participate in an informal roundtable discussion of what's happening in Service Oriented Architecture today. I really enjoyed it! You can download the conversation directly from OTN ArchBeat.  

As you'll hear, the conversation ranged from the maturity of Service Oriented Architecture technology and tools, to the the lingering and typically self-imposed problems that can prevent organizations from realizing the full potential of SOA, to what SOA means in the era of *aaS, mobile computing, and big data.  

After the recording we discussed our ACM poster
[Hajo Normann, Torsten Winterberg, me and Lonneke Dikmans (L-R)]

2) Article Series "Industrial SOA" - 9 from 13 articles already published

In the last months already 9 from 13 "Industrial SOA" articles have been published on OTN and the Service Technology Magazine. The articles are covering topics like Service Categories, SOA Security, SOA and User Interfaces, Mobile Solutions and many more. The next upcoming article will be about SOA and Events. 

Download them and share your comments e.g. via twitter by using the hashtag #industrialsoa.

Wednesday, October 9, 2013

Poster: Adaptive Case Management (ACM) in Practice

Knowledge-driven processes are typically unpredictable in their execution. Experts working on them decide what’s the next best action to take. This is in contrast to traditional BPM, in which all possible paths of a process are predetermined and modeled into the process. Case management is a way to control and implement these unstructured processes. With the poster below we'd like to bring some of the key aspects of Adaptive Case Management (ACM) on one page.




Feel free to download the PDF-version if you are interested in (login required):
  • What is ACM?
  • Why should I use ACM?
  • How can ACM user interfaces look like?
  • What are the main building blocks of an ACM solution?
  • How to visualize ACM cases with CMMN 1.0? 


Send your feedback with #acmposter:

Jürgen Kress
Fusion Middleware Partner Adoption
Oracle EMEA
twitter.com/soacommunity
Berthold Maier
Enterprise Architect
T-Systems International GmbH
twitter.com/bmaier
Hajo Normann
SOA & BPM Lead ASG
Accenture
twitter.com/HajoNormann
Danilo Schmiedel
Solution Architect
OPITZ CONSULTING Deutschland GmbH
twitter.com/dschmied
Guido Schmutz
Technology Manager
Trivadis
twitter.com/gschmutz
Bernd Trops
Principal Solution Architect
Talend GmbH
twitter.com/berndtrops
Clemens Utschig-Utschig
Chief Architect Global Business Services
Boehringer Ingelheim Pharma GmbH & Co. KG
Torsten Winterberg
Business Development & Innovation
OPITZ CONSULTING Deutschland GmbH
twitter.com/t_winterberg

Monday, April 1, 2013

New case management functionalities in Oracle BPM Suite 11.1.1.7

Today I’d like to highlight a nice feature of the newest Oracle BPM Suite Release. I am very happy that Oracle enriched the Suite with certain Case Management functionalities that fit into the existing Service Component Architecture (SCA). In the past month I already had the chance to play a bit with the beta software. With this post I’d like to share some of my experiences. 

Why Case Management?
Business Process Management becomes more and more important. With BPM Suite processes can be modeled, implemented, simulated and executed in a multi-user environment. There are also a lot of different reports available to monitor processes during runtime. We see in our projects, that this kind of automation is especially valuable for processes which are based on routine work. Some examples are “Hiring”, “Order-to-Cash”, “Order Management”, “Travel Request Management” and so on.

However - we also notice quite a high amount of processes, which are too complex and too flexible to model them in BPMN. We call it knowledge-intensive work. Of course if you have a lot of time you might be able to model almost everything but is it a benefit to have processes which are not readable anymore? How fast is your time-to-market? How easy is it to implement process changes? How can you support the job of the knowledge worker? Some typical domains with a high amount of knowledge-intensive work are Insurances, Banks, Healthcare, Civil Services and Government Agencies.

Let me try to explain the need of case management with our RYLC example. RYLC stands for “Rent your legacy car” and it was introduced in a series of articles as an overall solution example. The main target of RYLC was to explain concepts like service categories, loose coupling, canonical data model, service security and much more (see SOA Spezial magazine for details). The graphic below shows the complete End-to-End RYLC process in BPMN notation from receiving the request, selection of the car, checkout of the vehicle, returning it, creation of the invoice and cash clearance. I highlighted the checkin-part of the process, which covers the return of the car. It is based on an asynchronous message exchange pattern - the process execution stops until the checkin is completed or canceled. In this stage several things can happen.

BPMN Example - Rent your legacy car (RYLC)
The happy path of the process would be that everything goes well and the customer returns the car at the date that has been agreed during the reservation. The extension of the rental period can trigger other actions which are necessary to satisfy the customer. In worst-case the customer might have an accident or somebody steals the car.   

A lot of effort and time is necessary to bring all the mentioned varieties into the process. Examples like an accident will result in claim notifications and extended communication with the appropriate insurances. It is difficult to model each potential option. This is where Case Management comes into the game. It helps us to combine different milestones with the appropriate task actions, business rules, stakeholders, resulting events as well as data and documents (see the image below). During the car-checkin different milestones like “In Rental”, “Accident” (optional), “Stolen” (optional), “Returned” and “Approved” might occur. Each milestone consists of mandatory and optional task actions. Their execution order is defined by business rules. The task actions can be system driven (implemented as services) or user driven. Of course similar to BPMN some data and documents are exchanged in each step. Case Management is mainly controlled by the knowledge worker, which means that they affect the “flow” of the case. Therefore the definition of stakeholders and their permissions is another important aspect. Some example stakeholders in RYLC are the insurance holder, driver, car park assistant, front desk clerk and the rental manager. Based on the milestones and the task actions different events can occur that trigger new situations. Case management can support the knowledge worker with the right information (but the knowledge worker keeps the decision & process authority). Better and faster process decisions are the benefits of it.

Key aspects in Case Management
To conclude: Case Management covers complex and unstructured knowledge-intensive scenarios where modeling is too expensive and time consuming. It is non-deterministic, which means that the case flow is dynamically determined at run-time. The case participants choose actions to meet goals. It can be used to enrich existing processes (like in the RYLC example above) or as separate and independent solutions. 

How-to define a Case in Oracle BPM Suite?
In Oracle BPM Suite 11.1.1.7 the Case component is introduced as a first class artifact with support for milestones, events, adhoc activities stakeholders and so on. Like BPMN, BPEL, Human Task, Rules, etc. a Case can be created by just dropping it on the composite level. After completing the wizard a case component, a business rule component and an interface (exposed service) is visible (as illustrated in the image below).

Composite.xml with Case component
For now a composite can have only one Case component. Double-clicking on the case directs you to the definition of the component. Here you can define the milestones, case outcomes, data & documents, stakeholders & permissions, user events and translations. The image below shows how milestones and case outcomes can be defined.

Definition of a Case
Furthermore it is necessary to define and implement the case activities. I noticed two ways of creating them. Option 1 is to open the wizard under “New > BPM Tier” and select “Custom Case Activity”. Option 2 is to promote an existing component as a case activity. For the article I decided to go for option 2 – so I promoted the Human Task “Evaluate Claim Notification”. A case activity does have its own definition – a file with a *.caseactivity extension. You can find an example with some of the parameters available for customization on the bottom of the next screenshot.

Definition of a Case Activity
Additionally the business rule created along with the case component needs to be configured. It comes with a set of predefined functions (e.g. activateActivity, withdrawActivity, reachMilestone and revokeMilestone), Facts and Bucketsets (e.g. TEventType, TMilestoneEvent, etc.). The definition of rules is necessary to handle all the different situations of the case. Typical examples are ACTIVITY_EVENTS which trigger new activities or milestones, USER_DEFINED_EVENTS which have been specified in the case definition file or MILESTONE_EVENTS which trigger the appropriate case activities (see the screenshot below). There are many different options and I hope that some documentation material is going to be published soon.

Definition of a Case Rule
During runtime you can take advantage of the monitoring capabilities from the Enterprise Manager – as you might already know from BPMN or BPEL processes. How many case-instances have been started in which time frame?  Which milestones have been reached? Did there a fault occur? Which rules and which activities have been activated? The screenshot below shows the instance information of Oracle’s "EURent" Case Management example.

Monitoring of Case instances in EM
With the new Case Management functionalities BPM Suite confirms its outstanding position. I couldn’t wait to play with the software and I am really happy to demonstrate the new product capabilities to our customers. What I didn’t mention so far is the importance of user interfaces and tight integration with content management systems like WebCenter. So there is more to come :-)