An Introduction to Jarvis Pizzeria!

 A developers’ dream, where Pizzas, Cloud & Oracle meet”

In the summer of 2017, three enthusiastic Oracle Consultants decided to join effort and start their own business. Not all developers love the cloud (just yet), but we all love pizza, so what better than to start our own pizzeria; Jarvis Pizzeria!  Besides that, pizza is the new EmpDept for developers, so two birds with one stone. Where better to explore the Oracle Cloud, more specific Oracle Process Cloud (PCS), than within the walls of our own beloved pizzeria.

Since an Iron Man reference is always a good idea for anything Oracle related, Jarvis Pizzeria is born!

Now, before we tell you all about our automated pizza process, let's take a moment to introduce the team.

The Cloud Architect of MyFMW
Marcel is a familiar face within the Oracle Community, his expertise on BPM & SOA (plus more) is shared on MyFMW. Besides preparing pizzas, Marcel is also preparing for the Cloud, will PCS be the new BPM?

Cloud Ninja @RubiX
Marc knows the BPM Suite and all its pros and cons from his time at Oracle. However, now that he’s left the mothership to consult at RubiX, it is time to challenge the Cloud proposition of Oracle. What better way than looking at PCS to see how this Cloud solution fits within the PaaS offerings.

Oracle Early Adopter @The Future Group
Richard is always looking for an excuse to play around with the newest Oracle Technology products to stay on the edge of what is happening within the Red Cloud. Can the Oracle PaaS deliver like Jarvis delivers pizzas?

So that is the team! In the time to come, we will start automating our pizza process with the help of Oracle PCS. One of the goals for this project is very selfish, we want to explore PCS and familiarize ourselves with the tool and technology. We joined effort to discuss our findings, ask questions and motivate each other. However, now it is also time to share our experiences with the Community. This will happen in a blog series on our sites as well as via implementation examples and presentations at Oracle related Events.

In essence we have cut the automated pizza process in a couple of separated, decoupled steps; the preparation, the payment & the delivery. Within these steps we will use several familiar techniques, like Human Tasks and Business Rules. We will compare the PCS options to their BPM counterpart and share our findings from a level of ‘MyFirstPcsProcess’ to a more in-depth analysis of the tool and product.

As you can see, our use case reflects upon the process, how PCS relates to BPM, how easy it is to implement a business process, the usage of gateways, business rules and other features we know from BPMN. As a result, our focus has been on Oracle PCS and Oracle PCS alone. This means our lessons learned will also be focussed on PCS and probably will not translate one on one to a real business case.
For example, we use the integration within PCS, to directly call REST and SOAP endpoints, while for a critical, core business system, it is wise to let this integration go through the Integration Cloud as abstraction layer from the process.

We hope you enjoy our blog series, happy readings!

The OGh / nlOUG Tech Experience 2017

Thursday, 15th of June and Friday 16th of June, the first Full Stack Conference of the Dutch User Group took place, a mergers of the DBA - SQL Day & the Fusion Middleware Experience, The Tech Experience 2017. A milestone for the Dutch User Group, but also for the Oracle Community.
Already in the opening speech of the chairman something important happened, the OGh (Oracle Gebruikersclub Holland) announced their name change to nlOUG to the public. With this the name is in line with other Oracle User Group and easier to recognise international.
So, what are my personal experiences with the Tech17 of the nlOUG?

As Member of the Organisation
For me personally the Tech Experience 2017 started right after the Fusion Middleware Experience of 2016. My fellow board members have always known that I was in favor of a Full Stack Conference like many of the countries surrounding us. Now that we had 3 big seperated events in 2016, it was time to start looking to combine some of them. For one, simply because of the workload shared amongst the organisation teams, but also to be more attractive for international speakers and visitors.
Since our APEX World is a somewhat famous event, it made sense to merge the DBA & SQL event with that of the Fusion Middleware. Since we were able to add our BIWA knowledge in here as well, it made a somewhat special line up with dedicated tracks to almost any Oracle topic you can think of (besides APEX).
On the Tech Experience itself we had a great team of volunteers working together to make this event a big success!  

As a Speaker at the Event
In between all the hassle of organising the event with things like helping out our speakers, socialising with the attendees, talking with our sponsors, keeping track of time, technical difficulties and more, I was able to find time to share some of my personal experience and knowledge with the attendees as well.
I presented a double slot with the Cloud ACE Team, trying to combine up to 17 different Cloud Offerings from Oracle to create a story for the audience to familiarise themselves with the Oracle PaaS Cloud. However, as a real user group aim should be on customers, I also presented a Customer Case Study together with Frank Houweling about how we implement the ADF performance monitor at a customer and tackled a lot of performance issues.  
As a Volunteer at the Event  
As organisation, we asked our SIG Leads committee as well as our board members to be present and help out with the organisation of this event. For me personally that also meant spending a hand or two (or three?) to the event. From welcoming our international speakers into the Netherlands and Amersfoort on Wednesday evening I had an early morning rise on Thursday to prepare the location. Helping out the sponsors to get to their booth, looking over the rooms to see if all the technical equipment is in place and working, greeting our speakers, pointing out where their session would be held and handing out the speakers wifi. A whole handful already before the opening speech or first keynote even started. After the keynote, it meant to host one of the parallel sessions, making sure the speaker is there, helping them connecting (if needed), making them feel at home and discussing their presentation. During the session I would keep a track of the time and inform the speaker if necessary, while in the end I was able to thank the speaker on behalf of the organisation and hand them over a small present from the nlOUG.

As Member of the Community
Finally, a Full Stack event in the Netherlands, no need to take a plane somewhere to see an Oracle User Group Conference, but basically in my backyard. An awesome feeling and an awesome time I had. As a developer, mainly focussed on Java, Fusion Middleware & Cloud, I was still able to connect with Maria in her keynote about the Oracle Database 12c. After which I got to see Lucas his presentation about Machine Learning, a topic that I have no hands on experience with yet, but that looks promising. Next up, Ralf with his presentation about Case Management in the Process Cloud, a personal interest since I am using Case Management on premises at my current client. A good overview was presented and I got wiser and more enthusiastic about PCS during the presentation.  
The next day I got to see Duncan doing his Developers keynote, Frank & Steven doing their chatbot show and ending the event with Lucas doing a final keynote called ‘It’s a wrap’. A presentation that contains a lot of highlights about the Tech Experience 2017, his point of view on the content as well as on the future of our workfield.
Although I only had a couple of free slots, I still got to see a lot of interesting presentation and enjoyed it.

As a member of the Community, I would not have wanted to miss this conference, it is great we have this in the Netherlands and I hope there are more to come.
As a volunteer, I am happy that my work was appreciated by all attendees & speakers and I hope I have contributed to the Oracle community.
As a speaker I am honored to have presented at the very first Full Stack Oracle User Group Conference in the Netherlands.
And as Organisation & Board-member I am very proud of our team, volunteers, speakers, community and sponsors for making this happen and making the Oracle Community a better place in the Netherlands.

ABCS: Maintain Security & Anonymous Access

Since the application of the tech17 is now live here (disclaimer: for the official information about the OGh Tech17, go to, it is time to adjust the security settings. By default when trying to access the application you need to login to the Oracle Cloud to be able to access the application.
To give public access, I will create an anonymous role and add certain pages to the anonymous role, after that they should be visible without the need to login first.

In the main menu, I go to the security settings.

On the left hand side in the Access panel, I can select to allow anonymous access. This means there will be a role created for the anonymous-users.

After ticking the checkbox, you will see an extra role appear in the Roles section of the page. There is now an Anonymous User role.

Under the Roles sections, you see the Pages section, here you can map the pages to certain roles. I make the Home and Tracks pages accessible for anonymous users, but the other pages in the menu are not.

Now that we have adjusted the security settings, you can actually see the result of this action already in the Page Designer.

In the top menu on the right there is an icon that looks like a person. When you hover over it, it says 'Who am I?'.

Here you can change the role that you have while making more adjustments to your page. If you click the icon, you will get a screen where you can select the various roles. In my case I choose the newly created role anonymous.

This results in the Page Designer acting accordingly and only displaying the Home and Tracks menu items for this role.

ABCS: Go Live with your Application

When you are done developing the first version of your application, you might want to go live with it. Within ABCS there are a couple of steps build in to publish your application to the public. Before you can do this, you first have to go through a Stage environment where you can check the functionality of your application before publishing the application.

To do this, in the main menu we you choose the option Stage:

You can decide to start with a clean database, in case you do not want development data to be taken to the stage environment.
In my case, I want the imported CSV data to be populated to the Stage environment as well, so I choose the option to populate the data.

This might take a couple of minutes, after that the menu is changed and you have 2 extra options.
You can now publish your application, meaning it will go into production, or you can run the staged version to verify everything is in order.

To verify that the staged version is good, I run the staged version and navigate through the application to verify the data on the Tracks page.

The out of the box filter is also working correctly as I can filter on the columns that are displayed in the table.

Lets go back to ABCS and publish our application through the menu.
Again you will be given the option to populate the data to production after you have verified the working in the Stage environment.
I still want the data to be published as well, so I select the include data option.

You will now see that your application is live within ABCS:

In the menu you can select to run the published version.

This brings you to your application that is now fully operational.

You can check out the application through here.

ABCS: Import data from CSV

In this use case, I do not let the user fill the data for the application through data entry forms, but rather I use the data that is available for the OGh Tech Experience 2017, this data is in a csv file that I want to upload to display the tracks within the application.

When opening the hamburger menu on the top left, you can leave the Page Designer and go to other parts of ABCS, in this case I am going to use the Data Designer to fill the previously created Business Object.

Selecting the Data Designer, gives you a couple of options, here you can create Business Objects, as I have done previously using the Page Designer, you can connect to REST Services (more on that later in this serie) or you can use the Data Manager for exploring, importing or exporting data.
When going in to the Data Manager, there is an option to import to import data from file.

A pretty straight forward UI, that brings up an popup so you can select a file that contains the data you want to import.

You can accomplish the same thing, by going to the Business Object itself instead of through the Data Manager and select to import data from a file.

You can browse your local files and select the file you want to use to fill the Business Object.

The next step in the wizard will give you the option to either append the existing data or to replace all the current data within the Business Object.

Clicking the import button will give you feedback about possible errors or warnings that occurred that you might want to fix.

When all the data is correct and you are satisfied with the result, you will see the data being displayed in the Business Object layout. Below the results for the import of the tracks.csv into the Tracks Business Object.

Now that the underlaying data has been supplied, returning to the Tracks page will show the data we have just imported into the Business Object.

ABCS: Create a lookup

When using reference data, a lot of times you want to use a list of values or a data lookup to specify what values can be selected. Within ABCS you can create lookups to fill in this requirement. When creating a new data field, for example when creating a Business Object under a table as we did in my previous blog entry, you can select the data type to be a reference.

For my application I want the Ace Level to be a lookup value, specified by me, including an image, so I know for sure that all the data in this column is correct. When creating the field for the Business Object, as data type I selected reference.

The wizard will display the options to choose an existing lookup or create a new one, I create a new lookup with the name 'AceLevel' and say that I want to define the lookup values. This opens a new screen to add the Lookup Values.

I add the values that are correct display values for the AceLevel field, Ace Associate, Oracle Ace & Ace Director. I also want this value to include a small image, displaying the correct Ace symbol corresponding to the level.

Clicking the plus '+'  sign behind the value brings up a new screen, in here you can browse your computer and select an image.

The image will be uploaded to the application and you can select it as part of the lookup value. I repeated this steps for all the lookup values.

This results in a value lookup for the AceLevel, including their icons:

ABCS: Creating the Data Model

One of the powers of ABCS is that it generates a Data Model for you on the fly, based on your UI needs. For the developers, do not worry, you can also do this in an expert mode or edit and adjust it afterwards, more on that later in this blog series.
We are going to build a data model to hold all the data about the sessions being held on the Tech Conference.

This is as simple as selecting a table within the collection on the left hand side and dragging and dropping it to the middle section of the Tracks page.

As you can see this creates a default table to show you how it will look, but on the right we can create a new Business Object.

I choose to name the Business Object 'Tracks' because it is dedicated to the Tracks page.

After this I can start adding fields (or columns) to the table, when we do this the table will be automatically updated to show how it would look.

After pressing 'New Field', I create a Field 'Name' with text as Data Type.

This will result in the Tracks page being updated with a table with only one column, name:

After this I have added the fields; Company, Ace Level, co-speaker, Title & Track, if you press the Next icon ('>') in the Table Creation wizard you can turn on and off some of the default actions on the table. I leave the details option on and create the link on Title.

This means that you can click on the Title field within the row to go to a more detailed page. On the last page of the wizard you can select the Filter & Sort options. I decide to turn off the filter, but keep the advanced search on.

To end the wizard, I simple click the green Finish button on the top right in the wizard.

The designer gives me a feeling of how the table will look. To actually run the application you can press the run button on the top right corner within ABCS. This will show how the page would look runtime: