Oracle Application Builder Cloud Service (ABCS for short) enables you (and your business users) to create rich web and mobile apps in a quick visual way from a browser with no-coding required (but coding is possible).
The UI that ABCS creates is based on Oracle JET, which many of our customers love because its responsiveness and lightness.
Some Oracle ADF customers have been on the hunt for a new client-side UI solution for their apps, and Oracle JET is certainly a technology that will work for those use cases.
A nice feature for Oracle ADF customers is that their data-access and business-service layer is built in a reusable way that is decoupled from the UI. And now, with the ability to expose ADF Business Components as REST service, they can use any modern UI framework to develop the UI including Oracle JET. There are already many blog entries with code samples on how to write JET apps that connect to ADF Business Components
But what if we could give you the simplicity of ABCS for the UI creation, the power of JET for the UI experience, and the ability to leverage your existing investment in Oracle ADF all without writing a single line of code manually?
Well, in the demo below I'll show you how you can reuse the logic you have in Oracle ADF Business Component and build a JET based UI on top of them in a declarative way with Oracle Application Builder Cloud Service.
Basically you get the best of each tool - and you don't need to write a single line of code !
In the 9 minutes demo I'll show you how to:
Create an ADF Business Components layer on top of Oracle Database in the Cloud - (0:00)
Expose the ADF Business Components as REST service - (1:45)
Deploy the REST service to Java Cloud Service (JCS) - (2:19)
Create an Oracle Application Builder Cloud Service application - (6:00)
Add an ADF BC REST Service as a data source to the app - (6:30)
Create the user interface to your application - (7:20)
(Times are indicated in case you want to skip sections you are already familiar with)
If you are interested in a bit of a background on why this is so simple, the answer is that ABCS was built to enable easy integration with Oracle SaaS leveraging the REST services they expose. To quickly build the full app with all the defaulting you are seeing in there (full CRUD with a simple drag and drop) ABCS needs to know some basic information about the data that it needs to render (primary key, data types, etc). Since Oracle SaaS is built on Oracle ADF, we built into ABCS the capability to analyze the describe that ADF BC REST services provide. This makes it dead simple to consume ADF REST service in ABCS, whether these services come from Oracle's apps - or your own ADF apps :-)
As you can see there is a great synergy between Oracle ADF, Oracle Application Builder Cloud Service and Oracle JET.
This question came up a couple of times from users so I figured I'll document how to achieve a layout that shows a list of items and allows you to pick an item from this list to show the details of this item on the same page.
The default layout that ABCS creates is a list on one page with the ability to select an item and go see the details or edit that record on another page.
To combine the two into a single page, start from the edit or the details page that ABCS created.
On this page you then add the table or list for the same object, and set the link on a field to do the edit or details - this basically means that you'll do a navigation to the same page.
If you now run the page you'll be able click items in the table and see their details on the same page.
Here is a quick demo of how it is done:
Note that if you want this to be the default view that people see when navigating to your app - just update the navigation menu of your application to reflect this.
This blog entry is about a nice little new feature that was introduced into ADF in the 126.96.36.199 version, and didn't get a mention in the "what's new" document.
Self dismissing messages are popping up everywhere these days (when you get an email, when you have a new calendar invite etc), and you might want to use this UI pattern in your ADF apps too.
There is a new property for af:popup components - autoDismissalTimeout - that allow popups to automatically dismiss after a certain number of seconds that you can specify. This is very useful for all sort of messages that you want to show to the user, but you don't want to require the user to do any activity to dismiss.
Here is an example of such a message that you can associate with a save button:
While building a demo of new Oracle ADF features for my OOW session, I came across some nice new functionality in the dvt status meter gauge component (dvt:statusMeterGauge), specifically the round one which has become quite popular in various Oracle Alta UIs.
Turns out you can turn the dial and cut it so it shows just parts of a circle.
By adding thresholds you can use it as a replacement for the dial gauge.
It's that time of the year - Oracle OpenWorld is taking place starting on Sunday - and my calendar is full of activities.
I'm going to be presenting on multiple tools and frameworks including sessions on Oracle Application Builder Cloud Service, Oracle JDeveloper and Oracle ADF, Oracle Developer Cloud Service and a session discussing which dev framework and tool is right for you.
In case you want to catch me at #OOW16 here is my schedule:
Simplified Multichannel App Development for Business Users [CON2884]
Monday, Sep 19, 1:45 p.m. | Moscone West - 2005 - A session where I'll demo how easy it is to create and host your own applications with Oracle Application Builder Cloud Service.
Oracle Application Development Framework and Oracle JDeveloper: What’s New [CON1226]
Tuesday, Sep 20, 4:00 p.m. | Moscone West - 2018 - A quick review of the new features we added in the 12.2.* releases of JDeveloper and ADF
Oracle Development Tools and Frameworks: Which One Is Right for You? [MTE6650]
Tuesday, Sep 20, 6:15 p.m. | Moscone South - 301- A session for all of those who are not sure which technology is right for them, or for those who want to ask me "is Oracle [fill in the product name] dead?"
A Guide to Cloud-Based Agile Development Methodology Adoption [CON1947]
Wednesday, Sep 21, 12:15 p.m. | Moscone West - 2018 - A demo focused session that show cases how Oracle Developer Cloud Service helps your team adopt agile development.
No Code Required: Application Development and Publishing Made Easy [HOL7402] Tuesday, Sep 20, 11:30 a.m. | Hotel Nikko - Nikko Ballroom III (3rd Floor)
Monday, Sep 19, 4:15 p.m. | Hotel Nikko - Nikko Ballroom III (3rd Floor) - Your two chances to try out the new Oracle Application Builder Cloud Service and develop your first app
Agile Development Management and Continuous Integration Simplified [HOL7403]
Wednesday, Sep 21, 8:00 a.m. | Hotel Nikko - Nikko Ballroom III (3rd Floor) - Your chance to manage a whole development team agile process using Oracle Developer Cloud Service
I'm also going to be in the mobile theater in the mobile area in the demo ground on Tue and Wed at 10:30 doing a quick demo of ABCS and its mobile capabilities.
In between these sessions, you'll be able to find me at the Oracle Demoground doing some shifts in the Oracle ADF booth (which is in Moscone South far left corner) - the rest of our pods are close by including JET, DevCS, ABCS and even Forms :-)
We have a lot of developers who are using JDeveloper to develop applications with Oracle SOA Suite, and in this blog I wanted to show them how the combination of JDeveloper along with Oracle Developer Cloud Service can help automate their whole development and delivery lifecycle.
One unique aspect of Developer Cloud Service is that it has an instance of JDeveloper available in the build environment. This allows customers who are building Oracle SOA artifacts to leverage the OJDeploy mechanism to package their applications as part of a continuous integration cycle just like they do during development time.
With the improved DevCS integration that we added in JDeveloper 12.2.1, developers can go beyond integration with the Git server offered by DevCS and can now interact with the DevCS task tracking system directly as well as associate code changes to specific tasks they are working on.
In this 10 minutes video I show:
Creating Ant based builds for Oracle SOA artifacts
Automating Continuous Integration build and packaging for Oracle SOA from Developer Cloud Service
Managing SOA project code with Git and Developer Cloud Service
Tracking tasks from JDeveloper and monitor agile development in Developer Cloud Service
About a year ago I posted a demo showing how to manage the full development lifecycle of your database code with the help of Developer Cloud Service. Since then we released new versions of both Developer Cloud Service and JDeveloper that make the experience even smoother and add more features - so I figured I'll record a small updated demo.
In this demo I'm starting from an existing project that has a list of tasks being tracked in a development sprint in the new Agile tab in Developer Cloud Service - which gives you a great view of your development effort and progress.
(If you want to see how you create the initial project and add issues to it check out the previous demo).
A few new things you'll see in this demo:
The new Agile/Sprint management dashboard in Developer Cloud Service
Task tracking integration in JDeveloper
Updating definition of database objects in JDeveloper and generating SQL scripts
Branching Git repositories
Code review for SQL files
Build automation for DB changes with Ant - including deployment to a cloud database
Creating a JET reusable module and hooking it into your main page
Adding a JET component to your module
Working with the cookbook sources and adopting the code to the quick start project structure
Hopefully this video can help you build your first Oracle JET page.
Now that you watched this video that shows how to use the pre-configured project provided as a quick start, you might want to follow up and watch the video that shows you how to work with the base distribution and hook up the JET libraries.
One of the frequent requests we get when we demo ABCS is - can I invoke some external functionality that is exposed as a REST service and pass parameters to it.
I recorded the demo below that shows you how to do that.
I'm leveraging a public REST API that github exposes to get a list of repositories for a user. The service is available at https://api.github.com/users/oracle/repos
I then design an ABCS page that has a parameter field, a button that invokes the REST/JSON call, and a placeholder for results. It looks like this:
In addition the video also shows some other techniques that are useful, including:
How to create a new blank data entry page
How to add custom component that renders HTML content
How to add a button that calls a REST service
How to set a page to be the default page of the app
How to stage your application for external testing
It seems that right now you are restricted to accessing REST services that are secured over HTTPS protocol (which is a good thing).
Note that you of course don't have to stage the app to see it run, you can just go into live mode, or run it to see it working. I just wanted to make sure I have a demo out there that shows how staging works.
A few weeks ago, I set down with Bob from OTN for an interview that covered some of the key products our group works on.
I covered the various frameworks (ADF, JET, MAF), what we are doing with cloud based development (DevCS) and our tools for citizen developers (ABCS).
In case you are interested in any of these acronyms here is the video:
Note that things move really fast at Oracle, and since this interview we already released a new version of Oracle JET and also made it open source, we released an update to Developer Cloud Service, and Application Builder Cloud Service has gone production.
ABCS is built for the non-professional developer, what some call the citizen developer, giving them a solution to very quickly build and publish applications that can address immediate business needs. As you'll see in the demo below, a UI first approach makes development very simple.
I recorded a quick demo to show you just the basics of app development and wet your appetite.
As you'll see ABCS makes it dead simple to create Web apps, define business objects that you want to track (implemented as tables in an Oracle cloud database instance), and fine tune the UI creating multiple forms. The underlying UI technology of both ABCS and the apps that it creates is Oracle JET.
Note that in this video I didn't cover the steps to actually stage and then publish your application so other users can access it - another thing that ABCS makes simple. On these and other capabilities in future blogs...
Since I wrote those blog entries, we released a new version of JDeveloper (12.2.1) that added deeper integration with the Developer Cloud Service functionality for tracking tasks/issues. In parallel Developer Cloud Service also added various features with one of the new areas being covered is managing sprints and an agile development processes.
I thought it might be interesting to show some of the new features of both products working togethers.
In the video below you'll see how to:
Connect to DevCS and its projects from inside JDeveloper
Leverage the Team view in JDeveloper (tasks, builds, and code repositories)
Interact with Tasks/Issues in JDeveloper
Handle Git transactions
Associate code commits with specific tasks
Monitor team activity in the Team Dashboard
Create Agile boards and manage sprints in Developer Cloud Service
One other interesting feature I'm not showing above is the ability to do code reviews on your code by team members - before those are merged into your main code line.
If you want to try Developer Cloud Service out, just get a trial account of the Oracle Java Cloud Service - and you'll get an instance of the Developer Cloud Service that you can use to test this new way of working.
When Oracle ADF Mobile was released over 3 years ago, one of the first blogs I created on this topic showed how to leverage Oracle ADF Business Components to access a server database and create a mobile front end on top of it.
Since then both frameworks have matured, and we learned some best practices doing implementations internally and for customers. Today I'm going to show you a better way to build this type of applications, specifically leveraging REST as the communication protocol between the ADF backend and the Oracle MAF front end. REST based integration performs much better than SOAP for this mobile scenario, and as you'll see development is as simple.