Hi and welcome to a new article on Oracle Process Cloud Service (PCS).
This time, we’re going to address some use patterns that may seem difficult to implement using PCS, and tackle the need for unstructured parts of the process, which is to say, parts of the process that can’t be previously modelled because, well… we don’t know how they’ll turn out.
Take for instance a complaint to your customer service department. You’ll never know, in advance, what kind of complain it will be, or if you need one, two, five or fifty interactions with the customer, or if you need to get approval from department A or B to try and compensate the customer, or even if any legal action will be needed with a supplier of yours, after they failed to compensate the complainer in due time.
So, you see, there are some elements that may render part of your process impossible to predict, at least in terms of activity sequence. You know that these may take place at some point in time in the process, but you can’t plan ahead and model the exact activity sequence (“A” will happen after “B”).
To handle this type of less structured processes (I don’t like the term “Unstructured”, because they have a structure), there’s a discipline called “Case Management” (CM). CM handles the choreography of this type of processes, called Cases, guaranteeing that the activities that are part of the process are executed at the right time and when conditions permit it.
For the remainder of the article, please consider the terms “Case” and “Process” as interchangeable, the term “Less structured Process” as equivalent to Case, and the term “Structured Process” as equivalent to a predefined flow-controlled Process (BPMN process or equivalent).
The main idea behind CM is that instead of the process model determining the next action to be taken, it’s the worker who, actually decides what should be the next best action to perform in each situation, using his experience.
This is not to say that the worker can just do any activity at any time. Typically, there are specific business rules that enable or disable a given activity based on the current data and events associated with a specific process. However, these rules can be as tight or as flexible as we may need.
Case Management Patterns
The idea of the article is to give you the tools you need to implement Case Management patterns using Oracle PCS. This is not to implement Case Management in PCS, but just some case management behavioral patterns. Parts of what is “Case Management” will not be addressed in any way, but things like Ad-hoc process/task calls will, and this is sufficient for most needs.
Short Summary of Case Management Modelling Notation (CMMN)
Just as we have BPMN as a standard way to model structured business processes, OMG (Object Management Group) also defined a standard to model Cases, called Case Management Modelling Notation, or CMMN.
In a short summary, the most meaningful objects are:
- Case – It’s our main object process all other objects are inside this one.
- Stages – You can see it as a group of activities that represent a business concept.
- Tasks – represents work to be done. Can be Human tasks, Process Tasks (call a structured process) or Case Tasks (call other cases). These can be mandatory or optional.
- Events – Represents something that happens that is significant for the case: e.g. a new file is added to the case, or someone who applied for a loan at the bank suddenly dies.
- Sentries – Criteria that need to be verified in order to instantiate or complete a task.
As with BPMN, you combine these objects to model the case behavior graphically.
For an introduction to CMMN, I suggest the following references:
- Case Management Modeling and Notation – Knut Hinkelmann
- Introduction to the Case Management Model and Notation (CMMN) – Mike Marin
- There’s an excellent book in the subject. You can find it in the link below.
- Oracle Case Management Solutions – Léon Smiers, Manas Deb, Joop Koster, Prasen Palvankar
The first rule is that we need to be able to start/invoke cases whenever we want, from whichever channel we want.
As we’re going to use PCS for this, we first need to create a new Application
Let’s call it “Complaint Case”.
Now, we create a new process in it. The process needs to start and end with a message event. This is what will allow us to reuse this when we want. Please, do not use None or Form events to start it.
In the next article
In the next article, we’ll address specific implementation patterns in Process Cloud Service and the setup of the data structure that facilitates Case behavior.
Until then, have a great week!
Maverick (José Rodrigues)
Post Header photo by doug rattray