When Screen Scraping became API calling – Gathering Oracle OpenWorld Session Catalog with Node by Lucas Jellema


A dataset with all sessions of the upcoming Oracle OpenWorld 2017 conference is nice to have – for experiments and demonstrations with many technologies. The session catalog is exposed at a website here.

With searching, filtering and scrolling, all available sessions can be inspected. If data is available in a browser, it can be retrieved programmatically and persisted locally in for example a JSON document. A typical approach for this is web scraping: having a server side program act like a browser, retrieve the HTML from the web site and query the data from the response. This process is described for example in this article – https://codeburst.io/an-introduction-to-web-scraping-with-node-js-1045b55c63f7 – for Node and the Cheerio library.

However, server side screen scraping of HTML will only be successful when the HTML is static. Dynamic HTML is constructed in the browser by executing JavaScript code that manipulates the browser DOM. If that is the mechanism behind a web site, server side scraping is at the very least considerably more complex (as it requires the server to emulate a modern web browser to a large degree). Selenium has been used in such cases – to provide a server side, programmatically accessible browser engine. Alternatively, screen scraping can also be performed inside the browser itself – as is supported for example by the Getsy library.

As you will find in this article – when server side scraping fails, client side scraping may be a much to complex solution. It is very well possible that the rich client web application is using a REST API that provides the data as a JSON document. An API that our server side program can also easily leverage. That turned out the case for the OOW 2017 website – so instead of complex HTML parsing and server side or even client side scraping, the challenge at hand resolves to nothing more than a little bit of REST calling. Read the complete article here.


Oracle API Platform Cloud Service Overview by Rolando Carrasco


Oracle API Platform Cloud Services – API Design This is the first video of a series to showcase the usage of Oracle API Platform Cloud Services.
API Management Part 1 of 2. Oracle API Cloud Services This is the second video of a series to show case the usage of the brand new Oracle API Platform CS.
This is part one of API Management
Oracle API Platform Cloud Services – API Management part 2 This is the 3rd video of the series. In specific here we will see the second part of the API Management functionality focused on Documentation.
Oracle API Platform CS – How to create an app This is the 4th video of this series. In this video you will learn how to create an application.
Oracle API Plaform Cloud Services – API Usage This is the fifth video of this series. In this video I will showcase how you will interact with the APIs that are deployed in APIPCS.


ADVISOR WEBCAST: Cloud Integration Service Administration (OIC, SOACS, MFTCS, APICS) – May 23rd 2018 by Antonella Giovannetti


Schedule: Wednesday, May 23, 2018 05:00 PM (Central European Time)


This one-hour advisor webcast is recommended for technical users, system administrators and database administrators who are going to create and maintain a Cloud Integration Service (OIC, SOACS, MFTCS, APICS). In the webcast we will go through the most important administration tasks, best practices and common issues encountered.

Topics Include:

  • Provisioning and Instance Creation
  • Service Outage and Maintenance
  • Instance Backup
  • Purging
  • Patching and Upgrade

Register for the webcast here.

Additional new content PaaS Partner Community


· 3rd-Generation API Management: From Proxies to Micro-Gateways As cloud adoption increases and information becomes geographically distributed, 2nd-generation API platforms fall short of capability and struggle to satisfy modern requirements derived from cloud adoption and digital transformation. Enter 3rd generation API management. Article by Oracle ACE Director Luis Weir Read the article.

· Registries: Use Cases for API Management and Microservices In this companion article to "3rd-Generation API Management: From Proxies to Micro-Gateways," author Phil Wilkins explores the role of registries in a microservices environment, and their relationship to API Management. Read the article.

· Automate Test Pipeline and Infrastructure Lifecycle with Oracle Developer Cloud Abhishek Gupta takes you step-by-step through an example of how to use Oracle Developer Cloud to create a pipeline that incorporates unit and integration testing. Read the article.

· Video: 2 Minute Integration with Oracle Integration Cloud Service More than just a tip, this video from Oracle ACE Robert van Molken and ACE Associate Phil Wilkins, walks you step-by-step through a simple integration that uses REST and SOAP connections integrated using basic map data. Watch the video.

· Video: Microservices and Modern Software Development Where is Oracle with regard to microservices? Mark Cavage and Chad Arimura from Oracle’s software development organization offer an update, hint at things to come, and chat about Werker, Kubernetes, and more in this interview recorded at Oracle Code Atlanta. Watch the video.

· Video: Think in a Functional Style to Produce Concise Code The addition of lambda and Streams to Java 8 made it much easier for developers to think in a functional style to produce concise, readable code. Josh Backfield, a senior software engineer at Booz Allen Hamilton, digs into the details. Watch the video.

· Oracle Code Online Session Replays The complete list of session videos from the Oracle Code Online event in June is now available. Choose from among 17 complete sessions in 5 tracks: Full Stack, Mobile, Server-side, Database, and DevOps/Systems. Wiew the complete session playlist


Techniques used to build PaaS4SaaS Mashup using Oracle Application Builder Cloud Service by Angelo Santagata



Oracle ABCS is Oracles new citizen developer service allowing citizen developers the ability to quickly build applications for the web/mobile web. A common request from SaaS customers is the desire to have both standalone and embeded custom screens for their SaaS solutions. These obviously need to be feature rich, sexy UIs and above all built quickly. Before ABCS was announced, the best answer for this was for the business user to get a developer to build the application using a web framework, e.g. Oracles Java based ADF Framework or, HTML5 frameworks like Oracle Jet or Angular. For complex applications this would be appropriate but for simple applications it is an overkill and clogs up IT/developers time.

This blog article goes through a simple PaaS/SaaS usecase where we explore the architecture, and design principles, used to create a rich user interface using the ABCS Service. Specifically this usecase mashes up data from more than one datasource, namely Oracle Sales Cloud and Service Cloud and additionally integrates with external services like Google maps.

The classic “Customer 360 Use case”

In this use-case, the business user wants to view their customers in three categories. Customers who are considered “Hot”  are those with open opportunities in Sales Cloud. Customers who are considered “Supporting” are ones with open Service cloud tickets and finally the rest are considered “Passive” customers. Additionally the user wants to display the customer locations on map and show a relevant graph of the customers against the open opportunities/incidents.

In addition the user wants to be able to drill into a specific account and see the details of the account, their opportunities in Sales Cloud and the customers related Incidents in Service Cloud. Read the complete article here.

PaaS Partner YouTube Update May 2018

The May edition of the PaaS & Middleware Partner Update contains three topics:

• PaaS Summer Camp 2018

• Integrate & extend SaaS bootcamps

• PaaS Community Webcast Oracle API Management

For regular updates please subscribe to our YouTube channel here. Thanks for your likes and sharing the video on YouTube and LinkedIn. For the latest PaaS Partner Community information please visit our Community update wiki here (Community membership required).

PaaS Partner Community

For regular information on Oracle SOA Suite become a member in the SOA & BPM Partner Community for registration please visit www.oracle.com/goto/emea/soa (OPN account required) If you need support with your account please contact the Oracle Partner Business Center.

Blog Twitter LinkedIn image[7][2][2][2] Facebook clip_image002[8][4][2][2][2] Wiki

Technorati Tags: YouTube,SOA Community,Oracle SOA,Oracle BPM,Jürgen Kress,Middleware Update,Partner Update

The Anki-MedRec Platform


The Anki-MedRec initiative is essentially an experimental platform with some basic elements at its core such as:

  • a System of Record (Avitek- MedRec) to act as a discussion point around Systems of Record, and the need to differentiate and innovate outside of the Systems of Record.
  • a re-developed version of the MedRec demo application based on a Microservices based approach to deliver learnings around developing Cloud Native Applications and DevOps.
  • some basic CRUD APIs against MedRec to provide a starting point upon which participants can bring their innovative ideas to explore and prove.
  • a sample User Interface that interacts with the new microservices-based APIs to demonstrate what is required and possible when improving customer experience.

The Anki-MedRec will serve as a vehicle to overlay innovative ideas and implement them using various Cloud Services (IaaS, PaaS, SaaS) and Open Source software. We hope that it will encourage learning and innovation from a number of perspectives whether you are running a workshop, running a conference, a hackathon or just self-learning around the following areas:

  • Polyglot Development (Java, JavaScript, Python, Node.js etc)
  • APIs
  • Integration
  • Security
  • Containers
  • Source Code Management and Control (GitHub)
  • Operating System (Linux)
  • Mobility, Chatbots, Robotics (including Cozmo from Anki)

So by now you have already worked it out, we have developed the API’s to help us to get to do some creative, fun, learning real fast. Read the complete article here.

PCS and Correlations: the next big thing cavemen already used… by Martien van den Akker


You can use BPM, BPEL or Workflow to orchestrate or direct regular processes to get a job done from the beginning through a certain flow with a few decision-points, alternate and parallel flows to the end. A common use that is fine and usefull for most projects. And it can be seen as the driver for software companies to develop process/workflow engines.
However, there are cases that one process spawns off multiple other process instances that are some how related to one particular business case, involved person, or a uniquely distinguishable entity. And often those processes have to interact, with each other. For instance, this year in Split I came up with an idea for a role playing advanture game using chatbots and PCS. Each player would initiate a PCS instance, that when interacting with each other can detect if players meet each other at a certain location.

Correlation Sets are key here…

Right after the acquisition of Collaxa in 2004, in my Oracle Consulting era, I got the chance to be a BPEL trainer for Oracle University, doing several trainings for a few bigger consulting companies in the Netherlands. One of the subjects was about Asynchronous Processes and how the Process Manager used WS-Addressing to correlate the response to the running instance that sent out the request. But together with that Correlation Sets were mentioned. And I did not understand it: why would you need Correlation Sets when the Process Manager handles it all transparently using WS-Addressing? Otherwise put: it was time for me to do some projects.
PCS, BPM Suite and SOA Suite share the same process engine that originated from the early BPEL Process Engine. And as you can detect from my anecdote: Correlation Sets are key in this story. And this functionality is around from the medieval ages. In fact, recently they discovered char-coal drawings in a cave in France, indicating that people form pre-historic times already used Correlation Sets in their BPEL’s…

Prototype this…

Let’s say you have a customer that is a large company with several responsible participants that are allowed to sign the contract. Some of them are full-authorised signers, while others only have partial authorisation. So either one of the fully authorised participants signs, which would complete the contract, or some of the partial signers have signed that pass the contract over the signing threshold.
For this case we keep it simple: either one of the full authorised participant should have signed or all of the partial signers should have signed. But we’ll handle this in a (set of) business rule(s), so it can be made more complex to resemble real-world cases. Read the complete article here.

Oracle Process Cloud Service – Decision Model Notation part 2 by Lykle Thijssen


In my previous blog, I showed how to get started with Decision Model Notation (DMN) in Oracle Process Cloud Service and how to create a simple Decision Table. Picking up from there, we will now look into creating If-Then-Else rules, which should also be familiar to people who know Oracle’s old Business Rules. We will also create a service and call it from a process.

Creating an If Then Else Decision

As Input, I have created a TotalAmount object, which is the total amount of a Sales Order. Based on this TotalAmount, we are going to calculate a Discount Price, for which I have created a DiscountPrice type to make the service interface a bit prettier than just ‘output’. To create an If-Then-Else rule, just click the + button next to Decisions, enter a name and set the output type to string, number or any other type, in this case DiscountPrice.

Now, Oracle will have created a rule for you, in which you only need to fill in the "if", "then" and "else". Since you’ve already decided your output object, we will not use that one in the expression, which is different from the old Oracle Business Rules. So just enter the value that you want for this object and you’ll be fine. You can also create nested expressions, as shown below: Read the complete article here.


Process Cloud Service and how to loop and select elements from a list by Martien van den Akker


For more than half a year I’ve been ‘dying’ to write posts about some of the constructs I’ve developed in my last Process Cloud Service project. At last I have the opportunity. And I hope I’ll be able to write some more. But for starters, one of the problems I encountered is that I needed to process a list of something(s) and select elements from it. Or even better, how to build up a new list based on an input-list and some rules. Oh and do looping, or actually determine how to finish a loop based on a list of elements. Without a count() function in the PCS Expressions…


If you have met these kinds of problems and the tool at hand is PCS, then you probably ran in (some of) the following questions:

  • Why don’t we try to solve this in SOA CS or possibly ICS?
  • Where are the script tasks we have in BPM Suite? (Sorry, this is an obvious one, but still)
  • How to count the elements of a list? Or, where are the functions in PCS?
  • How to add elements to a list?
  • Etc.

To address a few of those…
Many of these things we ran into are actually orchestration issues. And as with the all-time discussions on when to use SOA and when BPM, we advise doing complex service orchestration  (with message processing) in SOA CS, or if possible in ICS. But when we started with this project, the tools we were given were PCS and ICS. And where ICS lacked the more advanced logic processing in the orchestration integrations, at the time (it’s improved over time). And sometimes it really is fun to try to accomplish things that were mentioned not being possible. Go where no man has gone before, that sort of stuff.
Script tasks? I guess PCS Product Management gets tired of answering this question. But the real thing is: we do need to do determinations based on the outcome of services. But also doing logic before doing an activity. In the input data association of an activity, you can only assign into the input-arguments of the activity. You can’t update process variables. You can do that in the output data-association. But not all activities have a output-data-associations. And there are cases where you don’t have an applicable previous activity. For instance in loops. Read the complete article here.