Upon adding a case management component to your composite you get an external SOAP interface for free. This interface is composed of a couple of operations that can be split in two categories. The first set of operations (i.e. startCase, abortCase, closeCase, etc.) act directly upon the case lifecycle while the second set (i.e. attainMilestone, revokeMilestone) is used for setting milestones.
This interface makes it possible to influence the case externally. You can for one start a new case with it. The different operations also enable the addition of (structured) data and (unstructured) documents to the case. For the latter you need to couple your soa server to a WebCenter Content server.
These operations all trigger default case events, lifecycle events for the case operations and milestone events for the milestone operations. These events can be used to act upon the case internally by making use of business rules.
With data you can define custom business elements to a case and thereby extend the case. Data plays thus an important role in the adaptivity of ACM. You can pack your custom data in a <case:data> element in the messages that are part of the SOAP API.
In the same messages one can also include unstructured documents to add to a case. These can be e.g. pdf or word documents. You have to make a connection to WCC for this (which is beyond the scope of this series).
Another important part of a case are it’s activities. Activities are processes that can be manual or automatic. ACM support 3 types of activities:
- BPM Process
- Human Task
- Custom Java
A BPM process is a (semi-)automated process containing predefined steps, which are called (confusingly) BPM activities (see Oracle® Fusion Middleware Modeling and Implementation Guide for Oracle Business Process Management 11g Release 1 (220.127.116.11) for in-depth information). In WABO you can model the building permit process in BPM. Parts of this process can be automated, while parts that require human intervention, can be modelled as human tasks. Human tasks can be used to add information to a case. In WABO this could e.g. be a specialist deciding on a permit application and adding comments and outcome to the case at hand via a human task.
A human task, when promoted to an ACM activity, can also be spawned directly from a case via a business rule. A human task activity can be started e.g. when extra information needs to be supplied by the applicant.
Lastly, you can also add your own custom java activity (out of scope here) to a case. All these activites combined make it possible to model a plethora of functionalities.
To promote a component to an activity it first has to be part of the case composite. A BPM process or a Human Task need therefore be defined inside the composite. For a custom java class to be promoted it also has to be visible in the case project, but this is beyond the scope of this series.
It’s not possible to promote a BPEL process or an external reference (e.g. a webservice) to an activity. Although you could wrap a service call in a BPM process, directly promoting a webservice to an activity would be a welcome addition to ACM.
Furthermore a BPM process needs an interface to be promoted to an activity. BPM processes without a WSDL, like a process with a timer or a human task as the initiator, cannot be promoted.
<- Adaptive Case Management series – in action – part 1