Oracle
May 2019 Edition Oracle Developer
Community Newsletter
Dear Developer Partner Community,
PaaS the knowledge from the emerging PaaS Partner Community Forum. As a community member you get access to the conference presentations, demos and hands-on training material. Make us of it, become trained & certified, publish service offerings, host customer cloud test drive events, build proof of concepts based on the Oracle Cloud Platform.

WebLogic is the leading Java EE server. With Kubernetes Operator and Container Engine you can run WebLogic in the Oracle Cloud Platform. Discover this service opportunity to support your customers to shift workload to the cloud! Helidon, Oracle’s lightweight microservices platform runs now faster with GraalVM, Oracle’s universal virtual machine.

Applications build with Visual Builder Cloud Service can now be deployed at a local server, third party server or in the Oracle Cloud Platform.
Jürgen Kress
For a short summary of our key monthly information watch the Fusion Middleware & PaaS Partner Updates on YouTube. The May edition highlights presentations and training material from the emerging PaaS Partner Community Forum and Oracle is again recognized by Gartner as an integration platform leader. This month’s community webcast will be an update on ERP integration please join our monthly PaaS Partner Community Webcast – May 28th 2019.
Want to publish your best practice article & news in the next community newsletter? Please feel free to send it via Twitter @wlsCommunity #DeveloperCommunity!

Jürgen Kress
PaaS & Fusion Middleware Partner Adoption
Oracle EMEA
Tel. +49 89 1430 1479
E-Mail: juergen.kress@oracle.com.
Table Of Contents
Community Annoucements
PaaS the knowledge emerging PaaS Forum conference material & reports
Community Forum 2019
Make use of the emerging PaaS Forum conference material and share the knowledge with your team and your customers. Special thanks to Phil, Sven, Monica, Sanae and David for their blog posts:
In case you published a PaaS Forum article please let us know via twitter #PaaSForum!

At our community workspace (membership required) we published the presentations & training material. Make use and update your team and customers!
Get the conference material here cta-arrow
Integrate ERP Cloud with Oracle Integration Cloud – PaaS Partner Community Webcast May 28th 2019
PaaS Partner Community Webcasts
bullet Integrate ERP Cloud May 28th 2019 15:30-16:30 CET
Integrate ERP Cloud Oracle Integration eliminates barriers between business applications through a combination of machine learning, embedded best-practice guidance, prebuilt integration, and process automation. Oracle Integration is unique in the market by leveraging Oracle application expertise to build an extensive library of adapters to Oracle and 3rd party SaaS and on-premises applications to enable you to deliver new business services faster. For more information please visit www.tinyurl.com/integrateSaaS.
Presenter: Niall Commiskey.
Niall Commiskey

Register for the Webcast here cta-arrow
PaaS Partner YouTube Update May 2019
The May edition of the PaaS & Middleware Partner Update contains three topics:
  • Share the emerging PaaS Forum knowledge
  • Leader Gartner Integration Platform
  • ERP integration community webcast
PaaS Partner
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 Community information please visit our Community update wiki here (Community membership required).
Watch the video here cta-arrow
Join the Oracle Developer Meetup groups
We launched three new local Meetup locations in Cairo, Frankfurt and Porto! Want to learn more about developing Enterprise-grade Cloud Native applications on the Oracle Cloud Platform, covering topics like Microservices Architecture, developing in Node, Python and PHP, using Low Code development tools to build Mobile apps, and much more? Oracle Developer Meetups

Join the Oracle Developer Meetup groups if you want to follow Oracle’s solutions in this area, or participate in the events and hands-on labs we organize:
Utrecht,
Netherlands
Join Now cta-arrow
Brussels,
Belgium
Join Now cta-arrow
Cairo, Egypt
Join Now cta-arrow
Cologne,
Germany
Join Now cta-arrow
Frankfurt,
Germany
Join Now cta-arrow
Lisbon,
Portugal
Join Now cta-arrow
Lille,
France
Join Now cta-arrow
London,
UK
Join Now cta-arrow
Madrid,
Spain
Join Now cta-arrow
Istanbul,
Turkey
Join Now cta-arrow
Porto,
Portugal
Join Now cta-arrow
Oslo,
Norway
Join Now cta-arrow
PaaS free trial accounts MCS and JCS & ACC
PaaS free trial
To request a free 30 days cloud trial, which can be extended or an additional month, please add yourself to our community wiki:
PaaS Demo Accounts (Community membership required)
Get a cloud trial here cta-arrow
Application Development Section
Serverless Node Function
Serverless Node Function on Oracle Functions runs periodically to produce CSV report on Oracle ObjectStorage from data in ElasticSearch by Lucas Jellema
This article highlights a use case implementation I recently implemented (for a demo session) leveraging Oracle Functions as well as OKE (Oracle Kubernetes Engine), Object Storage and Elastic Search. I will briefly touch upon some of the interesting aspects of implementing this case. The code for the function and its deployment can be found in this GitHub repo
Fn Project and Caddy
Fn Project & Caddy for Fun & Learning by Dan Anderson 
As a Product Manager who does some weekend hacking, I love finding open source projects and technologies that help demonstrate important concepts in the web services world. As I crawl up the technology learning curve it’s great to take seemingly abstract concepts such as containers and serverless and employ them in simple but illustrative ways.
Serverless Functions AOT
Serverless Functions — Some Like It AOT! by David Delabassee
This post explains how Fn users can use GraalVM and the benefits GraalVM and its Ahead-of-Time (AOT) compiler bring to Serverless Java functions.
Introduction
Fn Project is an open-source, container-native, polyglot FaaS (Function as a Service) platform.
Fn is open-source, one can run Fn on-premises and/or in the cloud; running Fn on a laptop is also convenient for experimentation and development.
Fn is container-native as it leverages Docker. In a nutshell, serverless functions are automatically wrapped into Docker container images (but advanced users can also provide their own Dockerfile!). Fn will take care of all the plumbing, from the creation of the function Docker image to the interaction between the function and the Fn platform to the scaling of this same function, etc.
Migrating Oracle Application Container
Migrating Oracle Application Container Cloud Service Applications to Oracle Cloud Infrastructure
Learn about the benefits of migrating your existing Oracle Application Container Cloud Service applications to Oracle Cloud Infrastructure and get an overview of the migration process.
Topics:
• Why Migrate to Oracle Cloud Infrastructure
• About the Migration Scope
• About Oracle Cloud Infrastructure
• About Oracle Cloud Infrastructure Container Engine for Kubernetes
• About Oracle Cloud Infrastructure Users and Groups
• About the Migration Task Flow
Why Migrate to Oracle Cloud Infrastructure
Oracle encourages you to migrate your existing cloud resources from Oracle Cloud Infrastructure Classic regions. You can gain several advantages by doing so.
In Oracle Cloud, you provision resources in specific regions, which are localized to geographic locations. A region supports either the Oracle Cloud Infrastructure Classic or Oracle Cloud Infrastructure platform.
Using Java libraries
Using Java libraries from a Node.js application. Testcontainers example by Oleg Šelajev
GraalVM allows seamless and high-performance interoperability between a set of supported languages. Currently, this means JavaScript, including Node.js applications, Python, Ruby, R, JVM languages, and everything that compiles with LLVM.
A typical motivation for a polyglot runtime like GraalVM is to enhance an application written mostly in one language with small snippets in another language. For example, you could think of using R in a Java Spring application to visualize some data, or, perhaps, one could use Python’s machine learning libraries in a node app. Or you can use a runtime like GraalVM to add scripting capabilities to your platform, either on the JVM or a native application: kinda like the multilingual engine does in the Oracle Database.
Helidon flies faster
Helidon flies faster with GraalVM by Dmitry Kornilov
GraalVM is an open source, high-performance, polyglot virtual machine developed by Oracle Labs. GraalVM offers multiple features, including the ability to compile Java code ahead-of-time into a native executable binary. The binary can run natively on the operating system, without a Java runtime
A native executable offers important benefits, like shorter startup time and lower memory footprint. In addition, when a native executable runs within a container, the size of the container image is reduced (when compared with the same Java application running in a traditional JVM), because the container image doesn’t include a Java runtime. An optimized container size is critical for deploying apps to the cloud.
On the Highway to Helidon
Podcast: On the Highway to Helidon by Bob Rhubart
Are you familiar with Project Helidon? It’s an open source Java microservices framework introduced by Oracle in September of 2018. As Helidon project lead Dmitry Kornilov explains in his article Helidon Takes Flight, "It’s possible to build microservices using Java EE, but it’s better to have a framework designed from the ground up for building microservices."
Helidon consists of a lightweight set of libraries that require no application server and can be used in Java SE applications. While these libraries can be used separately, using them in combination provides developers with a solid foundation on which to build microservices.
Run WebLogic in the Cloud
Run WebLogic in the Cloud with Kubernetes Operator and Container Engine by Radu Dobrinescu 
Enterprises want to migrate their existing workloads to the cloud to gain performance, elasticity, and agility for their applications. However, refactoring those applications as cloud native can be expensive and time consuming. This post shows you how to leverage several Oracle Cloud Infrastructure services to run WebLogic domains for your existing Java EE applications in the cloud and gain these benefits without rewriting the apps.
There are several ways of running WebLogic in Oracle Cloud Infrastructure, from taking a DIY approach to using the Oracle Java Cloud Service. However, running WebLogic on Kubernetes offers a balance among the level of automation, portability, and the ability to customize multiple domains. Creating and managing multiple domains in a Kubernetes cluster is simplified by the use of the WebLogic Kubernetes Operator, an open source tool that bridges the gap between the WebLogic administrative tools and modern solutions for management and monitoring applications, such as ELK Stack (Elastic Stack), Prometheus, and Grafana.
Developer Tool Section
Building Dialogs with Flow
Building Dialogs Without a Flow by Frank Nimphius
An introduction to the new composite bag entities in Oracle Digital Assistant
Oracle Digital Assistant is the next generation of the Oracle chatbot platform. It manages and coordinates multiple smaller-scope skill bots in a composite chatbot solution that helps users complete multitask conversations.
Dialog flows in Oracle Digital Assistant skill bots define the user/bot conversations needed for completing a specific business task. A dialog flow is like a script whose goal is to understand what a chatbot user wants and collect the information needed to perform a particular task. Like human agents in customer service, chatbots can skip portions of a scripted conversation if the information to be collected has previously been provided by the user.
Oracle Digital Assistant
Oracle Digital Assistant unifies use of enterprise chatbots by Robert Sheldon
Oracle Digital Assistant is a cloud service that offers what Oracle describes as the next generation of enterprise chatbots. Launched in October 2018, it provides a platform for building and deploying AI-enhanced digital assistants to help end users work more productively when using Oracle applications.
The service is built on the Oracle Cloud Infrastructure, Oracle's IaaS technology. As with its other cloud services, Oracle manages the platform components in addition to patches, backups and other administrative functions. This allows customers to focus on using the tools included with the platform to develop, implement, maintain, monitor and analyze digital assistants that can orchestrate access to multiple chatbots with different duties.
Initianting bot conversations
Initiating bot conversations from the Oracle Digital Assistant Client SDK for JavaScript web messenger widget on startup by Frank Nimphius 
The Oracle Digital Assistant Client SDK[1] for JavaScript provides functionality to communicate with a Oracle Digital Assistant from the web. Part of the Client SDK for JavaScript functionality is a JavaScript based web widget that can be added to your web applications or web sites to launch a message window.
In a typical chat conversation, users initiate the conversation by typing a message similar to shown below, assuming the receiving bot has an intent defined so it responds to the request.
Keyword shortcuts
How-to assign keyword shortcuts to static and dynamic lists created with the System.CommonResponse component in Oracle Digital Assistant by Frank Nimphius 
The conversation interface is not just about text messaging. Most messengers support a list of values, and many even support card layouts. Chatbot users select a value from a list by either tapping the list item or typing the displayed list item label into the message field. In this article I explain how to assign keywords as shortcuts to list items (and card layouts, as it is the same code) for users to select an item. With card layouts, when not all cards are displayed in a horizontal carousel (so when some are hidden), then, using predictable keywords, keyword shortcuts allow users to select an item even if it is not visible*
Run Oracle VBCS
Run Oracle VBCS Application on Your Own Server by Andrejus Baranovskis
Latest VBCS release brings an option to export VBCS application and run on your own server (or different cloud provider). This is a truly strong step forward for VCBS. Read more about it in Shay Shmeltzer blog post. If you decide to keep running VBCS app within VBCS itself, then you get additional functionality of VBCS Business Services, Oracle Cloud security, etc. out of the box. If you export VBCS application and run on your own environment, these features are not included, but then you don't need to pay for VBCS Cloud runtime when hosting the app.
Runing Visual Builder
Running Visual Builder Apps On Other Servers (and On-Premises) by Shay Shmeltzer 
Ever since we released Oracle Visual Builder a frequent request has been "can I take the app and run it anywhere I want?". With the latest version of Visual Builder the answer is Yes! This means that you can take apps you built in the Oracle Cloud and host it in other web servers. (Development is still cloud based only).
Note that if you decide to take the visual builder server out of the picture, you are going to lose some of the functionality that runs on the Visual Builder Cloud Server, specifically:
New Component Exchange
Introducing the New Component Exchange Feature in Oracle Visual Builder by Duncan Mills
When you upgrade to, or create a new instance of Visual Builder with the March 2019 release, you'll encounter a new feature which really opens up some exciting possibilities for the future - that of the Component Exchange.
In this article I'm going to cover the basics of how to configure and use the Component Exchange as it stands today and in subsequent articles I'll dive into some of the sample components that we've included into the Exchange to get you started. These will all be available for you to download and adapt for your own applications, but more of that later. 
New features in Oracle Visual Builder
New Features in Oracle Visual Builder - PWA, Components Catalog, and Much More by Shay Shmeltzer 
The new version of Oracle Visual Builder released this month features several key features for developers looking to build mobile applications including support for Progressive Web Apps (PWA) development, pluggable Cordova Plug-ins, and improved device integration capabilities. This release also includes the initial release of our component exchange integration. Here is a quick rundown of the key new features released this month.
Controlling Browser's Console
Controlling Browser's Console Log Level in Visual Builder by Shay Shmeltzer 
One of the nice features in Oracle Visual Builder is the ability to track exactly what the application is doing at any point through regular browser dev tools - chief among them is the browser's console. This is very useful during the development stages (as shown in the blog entry about debugging VB apps), but once you go production you might want to reduce the output to the console to only critical info.
Linking Excel to AUTO REST
Linking Excel to AUTO REST Enabled Tables…with the Oracle Visual Builder Plugin by Jeff Smith
We’ve talked about the AUTO REST feature of ORDS for TABLES quite a few times here. What I want to talk about today is how you can take advantage of that TABLE REST API in your favorite Excel spreadsheets.
The Oracle Visual Builder Add-in for Excel ‘allows Excel users to edit business data available from REST services.’ Well, that’s pretty much what ORDS offers. You can find the docs here.
The installer is very simple. Open Excel and you’ll see a new item in your ribbon. 
Conditional Formatting
Conditional Formatting Row Values in a Table in Visual Builder by Shay Shmeltzer 
Color can help highlight important data in your application, calling out specific information you want the user to pay attention to. For example, if you have values that need special attention in a table of data, you might want to highlight them with a different color. Formatting an individual field is quite trivial, but when trying to do this for rows in a table you might need a bit of help. Here is the recipe:
Assuming the decision of which format to show is a bit more complex than what can be represented as a simple EL, you'll want to use a pagemodule function that determine the format you want to show.
Media Capture using Oracle Visual Builder
Media Capture using Oracle Visual Builder for Facial Recognition App by Vijaykumar Yenne
Recently I built a Facial Recognition Mobile App using Oracle Visual Builder having set up the Facial recognition APIs using Tensorflow taking some inspiration from FaceNet. As highlighted above the app does the following: record a video of your face and send it to the API that generates various images and classifies them based on the label we provide at runtime. And in turn, invoke another API that is going to train the machine learning model to update the dataset with the new images and label provided. These two APIs will build a facial recognition Database. Once I have this, I can capture the face and compare that with the dataset I have captured earlier in my Facial recognition Database to output if the face exists in our system.
Creating Progressive Web
Creating Progressive Web Apps with Oracle Visual Builder by Shay Shmeltzer 
Progressive Web Apps (or PWA for short) combine the advantages of on-device mobile app experience with the distribution simplicity offered by regular web applications. The latest version of Oracle Visual Builder offers a very easy way to create and distribute your PWAs in a visual cloud development environment.
PWA apps can work offline, leverage device features such as access to the camera, photo gallery, and location information. The app is downloaded to the device, represented as an icon on the device list of apps, and when it is invoked you don't see a browser wrapper (no address bar and browser navigation buttons). As such the user experience of working with such application is very close to applications that you get from the app store.
Managing Visual Builder
Managing Visual Builder Development and Deployment Automation with Developer Cloud by Shay Shmeltzer 
The combination of Visual Builder and Oracle Developer Cloud Service (DevCS) gives your team a complete platform for managing and automating your application's development to deployment lifecycle. In the video below you can see an example development project and see how you can achieve a faster release cycle by leveraging this combination.
Developer Cloud Service contains feature that include:
Git Branch Protection
Git Branch Protection in Oracle Developer Cloud by Abhinav Shroff 
In the April release of Oracle Developer Cloud, we introduced a feature you can use to protect a specific branch of a Git repository hosted by Oracle Developer Cloud. This blog should help you understand the options we introduced.
What does the branch protection do?
Git Branch Protection feature enforces that the collaborators on the Git repository cannot commit changes to a branch by bypassing the set development process.
Who has access to branch protection?
The only one allowed to configure branch protection for a Git repository is the user with the Project Owner role for the project in which the Git repository was created.
Welcoming OpneAPI 3.0
Welcoming OpenAPI 3.0 to Apiary by Kyle
I’m delighted to announce experimental support for OpenAPI 3.0 in Apiary. OpenAPI 3 is the new major version of the OpenAPI Specification, the successor to OpenAPI 2 (or formerly known as Swagger 2).
While we are not yet supporting all of the new features added OAS 3 such as callbacks and links , we’ve built a solid foundation of our parser which will allow us to incrementally roll out support for new features across our entire product line. Whether it be in our mock server, Dredd, our new documentation renderer or our API Style Guide product.
JET Dynamic Content
JET - dynamic content with templates by Anirban Mukherjee
Oracle JET gives us developers a powerful tool - knockout templates - through which we can configure an entire page, using just JavaScript object metdata. The most significant advantages of such a mechanism are re-usability and of course, ease of development.

Imagine I would like to create the below 3 forms:
To make life of developers easier, all I would want them to do is to pass the metadata (fancy name for a JavaScript object), which would contain all the information about the fields, and not worry about the UI at all. This would also ensure a consistent look and feel for the entire application.
Oracle JET Components
Oracle JET Components Demo Using Cookbook in JDeveloper by Ashish Awasthi
In this post, I am sharing how can we use Oracle JET Cookbook to understand basic UI components and How can we copy and use code from the cookbook. Here I am using JDeveloper 12.1.3 to create Oracle JET Components Demo Application.
In the previous post, I have explained about creating a JET application using JDeveloper. Here I am using the same application to show JET components demo. Oracle JET cookbook has many recipes that we can try in our application to learn more about coding pattern and toolkit structure.
Here you can access Oracle JET Cookbook
Now open your NavDrawer JET application in JDeveloper, Run it and you can see Dashboard page opened in the browser
JET ojChart
JET - ojChart context menu by Anirban Mukherjee
Sometime back I had written an article - JET - custom event wrappers - on how to add some custom information to an event raised by a component and then throw the event wrapped under your own custom event.
This article is just an extension of the same thought, which demonstrates how effectively you may use the above concept to solve your problem. Here is the use-case:
We have an oj-chart component, which has a context-menu. Depending on the bar or pie slice which fired the context menu, we need to capture the chart data and act accordingly when the user clicks on any of the menu options.
Post to Facebook
Post to Facebook Page Wall using restfb Graph API in ADF & Java by Ashish Awasthi
This is next post working with Facebook Graph API series and is about how to post to Facebook page wall, Previously I have posted about getting access token and use it to get Facebook Profile detail and Posting status on your Facebook Timeline using restfb Facebook Graph API. Go through previous posts for the better understanding of this blog post
Now, this post is about Facebook Pages, Facebook Page is a way to connect people to promote your brand, website, business, cause etc. This post uses no new code, Posting on pages is the same as updating the status on Facebook Timeline.
The only difference is of access tokens, For Timeline status posting we use User Access Token but for managing pages, we need to use Page Access Token.
ADF Performance Monitor
ADF Performance Monitor: Error Diagnostics
Application errors are often hard to retrieve, or take a lot of time to resolve. When you are suffering from errors, and have a lack of clarity when errors happen, you would like to have useful error diagnostics for analysis.
The ADF Performance Monitor automatically captures detailed diagnostics for each and every error/exception occurrence. You can view your errors to see the highest priority issues your team should focus on. This blog shows the renewed error overview of our newest version of the ADF Performance Monitor – with real production metrics.
Overview of Production Errors
On the overview dashboard, you can click on the errors to open the errors overview:
JDev 12.2.1.3
JDev 12.2.1.3: Multi select component table filter by Timo Hahn
In this blog article, I show how to use a multi-select component as a filter in a table. The sample is based on an older sample from Frank Nimphius (98. How-to use multi select components in table filters). The sample was built for JDev 11g R1 and R2.
It works using 12c too, but you get deprecation warnings after the migration. A user on the JDeveloper & ADF forum asked if I could provide a sample running in 12c without the deprecation warnings.
I will only show how to rewrite the bean method which is called when the user enters one or more values in the filter. The remaining part of the original sample works without a change in 12c.
Additional Content Developer Partner Community
graal-vm
bullet Polyglot Programming and GraalVM With Roberto Cortez, Dr. Chris Seaton, Oleg Selajev Listen in as this panel of experts explores the meaning and evolution of polyglot programming, examines the benefits and challenges of mixing and matching different languages, and discusses the impact of the GraalVM project.
bullet Serverless Architectures and Patterns in Action Serverless has arrived and it’s more than just a buzzword. But how do you put it to good use? This talk from Oracle Code Bengaluru showcases practical examples of how you can leverage a Functions-as-a-Service (FaaS) platform to build Serverless applications. 
bullet Docker Best Practices for Microservices This session from Oracle Code Rome looks at Docker as a tool across the software development process, presents best practices for running Docker as an application platform, and explains how to avoid common pitfalls.
bullet Learn Oracle Digital Assistant This complete, end-to-end training resource includes extensive tutorials, best practices, and more focused on the delivery and uptake of Oracle Digital Assistant. The material can be used as self-paced learning, or for delivery to customers, partners and your own development teams. Take the Training
Twitter
Top tweets Developer Partner Community – May 2019
Send us your tweets @wlscommunity #DeveloperCommunity and follow us on twitter http://twitter.com/wlscommunity
Developer Community
Tweets
cta-arrow
Training Calendar Developer Partner Community
Training Calendar Developer Partner Community
For the latest trainings please visit our WebLogic & Developer Community Training Wiki here (membership required) feel free to add your events!
Developer Community Training Wiki cta-arrow
PaaS the knowledge at a local Oracle Developer Meetup
PaaS the knowledge - Oracle Developer Meetup
Every year the #PaaSCommunity meets at the PaaS Partner Community Forum, Oracle OpenWorld and the PaaS Summer Camp.
To PaaS the knowledge within partners and customers we created the local Developer Meetups. Join them to share, network and collaborate across Europe:
  • Brussels, Belgium
  • Cairo, Egypt
  • Cologne, Germany
  • Frankfurt, Germany
  • Istanbul, Turkey
  • Lisbon, Portugal
  • Lille, France
  • London, UK
  • Madrid, Spain
  • Oslo, Norway
  • Porto, Portugal
  • Utrecht, Netherlands
Special thanks to all local hosts! Please let us know in case you want to run an event at one of this location or you want to start your local Meetup.

Join an Oracle Developer Meetup Group cta-arrow
Invite your colleagues to join the Developer Partner Community
Free Registration cta-arrow
Community Resources
Slack cta-arrow
Workspace cta-arrow
Stay Connected
Facebook Linkedin Twitter Youtube Oracle
#DeveloperCommunity