Jarvis Pizzeria: Notification Task in PCS

Uncategorized
| Nov 19, 2017
So far we have covered most standard components of the PCS suite. However, we haven’t looked at the “Notification Task” in-depth yet. We have used the on-premises variant at various projects but it was the hassle of setting up the User Messaging Service (UMS) that made you reluctant to use this feature on beforehand. Will the PCS variant be a gamechanger? Let’s find out!
We implemented a basic process with a standard notification task and (more...)

Jarvis Pizzeria: Workaround for XSD list-element issue in WebForm

Uncategorized
| Nov 12, 2017
In a previous blog we have made notices that it is not possible to create a Webform based on a xsd-type that contains a list elements. In our case a list of pizza ingredients.
In this post we will give an alternative way to create a webform that displays the data, including the list of ingredients. For this we have created a new form IngredientsWebForm.
As we tried before, It does not work to drop (more...)

Jarvis Pizzeria: Human Tasks: Design First WebForms in PCS

Uncategorized
| Nov 5, 2017
To create simple Human Tasks we use web forms in Process Cloud Service (PCS). Within the Delivery Process of the Jarvis Pizzeria, we are going to implement the HT for ‘Try Contacting the Customer’. This human task should become available after we have checked that the Customer is not a member and we do not know his email address.  
Try contacting the non-regular / member from Jarvis Pizzeria, in the swimlane of the CallCenter.


Mediator throwing incomplete BusinessFaultException

A while ago I ran into the issue that business fault information was not returned to the calling system by the Mediator component in the SOA composite. Instead, only a message that a business fault occurred was responded to the calling system. The response would look something like the below example:

<env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope">
	<env:Header/>
	<env:Body>
		<env:Fault>
			<env:Code>
				<env:Value>env:Receiver</env:Value>
			</env:Code>
			<env:Reason>
				<env:Text xml:lang="en-US">oracle.fabric.common.BusinessFaultException</env:Text>
			</env:Reason>
			<env:Role/>
			<env:Detail>
				<exception/>
			</env:Detail>
		</env:Fault>
	</env:Body>
</env:Envelope>

(more...)

Jarvis Pizzeria: Handle SOAP Faults within PCS

Uncategorized
| Oct 29, 2017
As we are very optimistic developer we started out with modeling and testing the happy flow of our Jarvis pizzeria. But as experience learns it is the big bad world that obliges us to deal with both expected and unexpected failures. This blog post we will look into the handling of SOAP faults that PCS has to offer out-of-the-box.


As a starting point we have created a basic process with one service call:
This SOAP (more...)

Jarvis Pizzeria: Test against the Development or Production environment

Uncategorized
| Oct 23, 2017
Within PCS there are actually two different environments, a development environment and the production environment. Once you have deployed your application it is available in the production environment as a certain version of the application. However, you might want to test your application before you deploy a new version. You can also test your environment against the so called ‘development environment’.

The blue button bar has a Test as well as an Deploy button on (more...)

Jarvis Pizzeria: Using an imported XSD in PCS

Uncategorized
| Oct 15, 2017
In the post ‘Import the 12c On-premises Preparation Process’ we saw the Business Types that were imported (also shown here)
We already stated that we had an issue with enumerations. But is this the only issue with the xsd? Unfortunately not, as will become clear soon.
Making task forms was not part of the import blog, however, in this blog we are going to do this. We will do this based on the (more...)

Jarvis Pizzeria: Deployment and using the workspace

Uncategorized
| Oct 9, 2017
Having played around with all the features PCS has to offer it is now time to see some action. In this blog we will show you how to deploy your application, start the application and see how it behaves within the workspace.


But first of all, we need to have a application that is ready to deploy. In other words, our minimal deployable product consists of an application without any errors. Pressing the validate button (more...)

Jarvis Pizzeria: Using the REST interface to start a Process

Uncategorized
| Oct 2, 2017
In this previous blog, we already explained how you can start your process from a SOAP interface. It is also possible to do this with a REST call. For this you need to find out a couple of things about your process after which you can do a post on the Oracle API to start the process. You can use any REST client you want, in this example we use Postman.
First of all, you (more...)

Jarvis Pizzeria: Using the SOAP interface to start a Process

Uncategorized
| Sep 26, 2017
We as old-fashioned SOA/BPM Suite developers, are used to test deployed services using tools like SoapUI. In this blog post, we will show you how to start a Process in the Oracle Process Cloud from the SOAP UI interface.
On premises with SOA or BPM we used to start by obtaining the required wsdl from the Enterprise Manager.
However, for PCS there is no such thing as an Enterprise Manager, so how do we get (more...)

Jarvis Pizzeria: Decision Model in the Delivery Process

Uncategorized
| Sep 17, 2017
To make the delivery of the pizzas to our customer, we need to decide how to deliver the pizzas. In our process we’ve already got the order data, so we know what the order is and where it needs to be delivered, but what is the best way to deliver the pizzas?
We will create a decision model in PCS to help us with this decision. In the delivery process we will call the decision (more...)

Jarvis Pizzeria: Implementing Rules

Uncategorized
| Sep 10, 2017
When the order comes in, payment needs to be made first before we start preparing the pizza. Our order payment process supports three possible payment options:
  • Creditcard: obviously a commonly accepted payment option
  • Cash: although we are a very tech-savvy company we would also like our old-fashioned customers to be able to pay the pizza with cash money
  • Deferred payment: our most trusted customers can pay their order in a deferred way.  Deferred payment means (more...)

Jarvis Pizzeria: The Document Only Delivery Process

Uncategorized
| Sep 3, 2017
Let's have a look at the Delivery Process of the Jarvis Pizzeria. In this blog post, we will explain the functionality of the Delivery Process with the help of the Document Only feature when creating a new process.


When we create a new process we can select the option ‘Document Only’ in the Create Process popup.
Document Only processes are for descriptive use only and are not part of the working and running application. It (more...)

Jarvis Pizzeria: Import the 12c On-Premises Preparation Process

Uncategorized
| Aug 28, 2017
In the Functional description of the Preparation process we stated that we would describe all steps required to migrate a sample 12c preparation process to PCS. So let’s get started.
As a starting point, we have the 12c on-premises preparation process as exported application. A picture of the BPM process is shown below.

The first attempt: directly import the exported file in PCS.

In the Composer select Import Model from the hamburger menu at the (more...)

Jarvis Pizzeria: Functional description of the payment process

Uncategorized
| Aug 25, 2017
Before we start preparing our pizza the order needs to be paid. With the implementation of the payment process we try to answer the following questions:
  • How do the business rules work in PCS and how do they differ from their on-premises counterpart?
  • What types of gateways do we have at our disposal?
  • Do we have multi-instance subprocesses?
  • How do we implement correlation?
  • And more…


The business process that would fit most of our purposes (more...)

Jarvis Pizzeria: Functional Description of the Pizza Preparation Process

Uncategorized
| Aug 22, 2017
Lets take a closer look at one of the stages of the Jarvis Pizzeria process, the second phase is the preparation process. The implementation is a simplified presentation of reality. The purpose of the blog is not implementing a true presentation of reality, but learning some PCS features in particular.
The learning objectives for the preparation part of our blog series are:
  • (Im)possibilities during the conversion of 12c on-premise to PCS. Determining alternatives for the (more...)

Jarvis Pizzeria: Setting up the Jarvis 1.0 process

Uncategorized
| Aug 21, 2017
For the Jarvis pizzeria process we have distinguished three phases: payment, preparation and delivery. Hence, the main process is comprised of those three phases. Setting up the main process enables us to work together, because each one of us can implement a separate phase, without running into merge conflicts or whatsoever.


For creating a new process, click the plus icon in the application home screen.
Note that we can check the “Document Only” box, which (more...)

Oracle BPM: Time for Time Out (2)

In a previous blog posting I discussed a solution to re-initiate a scope in BPMN that is supposed to time out after some time. In this posting I discuss how that solution inspires a couple of other use cases where a time out has to be re-initiated by calling an operation on the process.

In the following process model there are three flow, for three different use cases to re-initiate the time-out of:

  1. A process (more...)

Oracle Weblogic: Tackling Class Loading Issues for SOA Infra

This blog article discusses how to address class loading issues with the Oracle SOA Infra. It's prime "raison d'etre" being a memory dump of something I don't do often, but may spend significant time in finding out how to do it again.

Some time ago I lost valuable time because some library being deployed twice, once in the wrong place ([SOA_HOME]/lib folder) and once in the right place ([SOA_HOME]/soa/modules/oracle.soa.ext_11.1.1). In this (more...)

Oracle BPM: Time for Time Out

In this posting I describe how to time out a specific BPM scope with the option to re-initiate the timer.

In case you need to model a time out for a specific scope within a process where you want to be able to modify the time out run-time, then you can model it similar to this:

A parallel flow is used where the top flow covers the main process, and the bottom flow handles the (more...)