Jarvis Pizzeria: Setting up the Dynamic Process

In this blog we will implement a first version of the preparation of an order using a dynamic process. We continue where blog one stopped. The imported order process is extended with an example dynamic process.

We open the DynamicOrderProcess, which should still contains the example. We will build this so that it contains the Pizza ordering process. However, when opening the Process, we can see that the example is no longer there. Apparently, the example is not saved, maybe because we did not make any changes to it? Let’s create the example again, and then change it immediately. Continue reading


Jarvis Pizzeria: Getting Started with Dynamic Processes (ACM)

Getting started with the new integration cloud, the cloud that brings ICS, VBCS and PCS together. But it also includes the introduction of dynamic processes, Oracle’s new approach for adaptive case management. This introductory blog consists mainly of an overview of the different parts of dynamic processes. In addition, some differences between PCS and the Integration Cloud are discussed.

First step: import the Jarvis Pizza Preparation application. The location of this menu option is changed but the functionality is not. So we do this in two quick steps.

Continue reading

Jarvis Pizzeria in Case Management Style

As our business grows and our digitalization kicks in, it is time to reevaluate our process setup. We are happy with our processes in Process Cloud, they are easy to set up and we can manage our process from Ordering a Pizza al the way through to delivery.

However as with any BPMN, this a very structured process. Sometimes we require a bit more flexibility.

We had a good chat with our friends from Oracle and we were very pleased to hear that our wish to become more flexible aligned with their plans for PCS. We were thinking towards a Case Management solution for our pizzas and got a very satisfying answer.

In October 2017, Oracle released the Oracle Integration Cloud (OIC), not to be confused with the Integration Cloud Service (ICS). The Integration Cloud brings together several Low Code products. VBCS, Visual Builder Cloud Service, for developing user interfaces, ICS, Integration Cloud Service, for creating your integrations in the Oracle Cloud. Stream Analytics, for smart analytics on your integrations & processes. And last, but certainly not least PCS, Process Cloud Service, that in their new release includes Dynamic Processes. These Dynamic Processes have a lot of Case Management features and have a notation that feels a lot and reminds us of CMMN.

For our Pizzeria business, this means a little redesign of our Structured Process into a CMMN like notation, that is more dynamic. This is helpful since it will make it easier for us to implement features such as ‘Requesting the Order Status’, ‘Changing the Order, ‘Support Payment later in the Order process’ and more.

In the blog posts to come, we will transform our structured pizzeria in a more dynamic design. Along the way we will highlight the core features of the Dynamic Process structure within PCS and help you get acquainted with them.

Jarvis Pizzeria: Third step in Implementing the Order Processing, Correlation

In blog First step in Implementing the Order Processing, Interface Definition and Second step in Implementing the Order Processing, Multi Instance Subprocess there was described how multiple pizza’s could be prepared using a multi-instance subprocess. Although we saw this working correctly, the subprocess was configured to prepare pizzas sequentially, see the screenshot below:

Continue reading

Jarvis Pizzeria: Creating a Custom Tasklist for PCS

So within Process Cloud Service (PCS) we have already shown the tasklist a couple of times. This is the default tasklist that comes with the product. You can use the left hand side filters and handle the actions in the tasks within the task screens.

However, as with all of the ‘one-size-fits-all’ solutions, the tasklist might not be exactly what you need for your organisation or use-case. In this case it is good to know, that you can create your own custom tasklist.

This compares to what we see at customers using BPM Suite on premises. We use a lot of features from BPM, but usually not the Worklist/Workspace that comes out of the box with BPM. Since there is an SOAP API to call your tasks, it is quite easy to talk to this API and create your custom tasklist in the on-premises world.

For PCS, we do not have SOAP APIs, but we do have REST APIs, if there is any need to create a custom tasklist, you can use these APIs to; Start an application, query for tasks, query for task details, handle the payload or outcome and much more.

Continue reading

Jarvis Pizzeria: Second step in Implementing the Order Processing, Multi Instance Subprocess

In the post ‘First step in Implementing the Order Processing, Interface Definition‘ we introduced the Pizza Order process. In this blog we will implement the next part of the Order Preparation process. We will add the call out to the Pizza Preparation process from the multi instance subprocess.

The first thing we need to do is feed every instance of the subprocess with the details of one pizza. For the outcome of the subprocesses we also need a storage location.

As a recap, an order consists of customer details and a list of pizzas to be made:

The order outcome is a list of status outcomes for each pizza.

We had already defined the data objects (DO’s) for these BO’s. Now we are going to associate them with the subprocess. For this we open the properties of the subprocess. Associated the DO’s to the consume and result of the subprocess (as shown on the right side of the image below). Now also make sure that the subprocess instantiates sequentially.

Continue reading

Jarvis Pizzeria: Send Task vs Throw Message Event

Now that many of you are acquainted implementing BPM(N) processes, one should have noticed that there are multiple roads leading to the same goal while implementing a business process. One example is the invocation of an asynchronous service. This can either be done with a Send Task or a Message Throw Event. This blog tells about the difference between those two activities within PCS and when you should pick one over the other.

Continue reading