Tuesday May 26, 2015

Leveraging Oracle Developer Cloud Service in SQL and PL/SQL Projects - lifecycle and team collaboration

Usually my demos are targeted at Java developers, but I realize that a lot of developers out there are not using Java, for example in the Oracle install base there is a huge section of PLSQL developers. This however doesn't change their requirements from a development platform. They can still benefit from version management and code review functionality. They still need to track bugs/issues and requirements from their users, and they still need to collaborate in a team environment. 

So I decided to try out and see what would be the development lifecycle experience for a PL/SQL developer if they'll leverage the services provided by the Oracle Developer Cloud Service - here is a demo that shows a potential experience. 

What you'll see in the demo:

  • Using JDeveloper to create DB Diagrams, Tables and PL/SQL code
  • Version manage PL/SQL and SQL with Git
  • Defining a cloud project and adding users
  • Check code in, and branch PL/SQL functions
  • Tracking tasks for developers
  • Code review by team members
  • Build automation (with Ant) - and almost a deploy to the DB

As you can see it is quite a nice complete solution that is very quick to setup and use.

It seems that the concepts of continuous integration in the world of PL/SQL development are not yet a common thing. In the demo I use the Ant SQL command to show how you could run a SQL script you created to create the objects directly in the database - which is probably the equivalent of doing a deployment in the world of Java. However if you prefer you can use Ant for example to copy files, zip them, or do many other tasks such as run automated testing frameworks.

The Ant task I used is this:

  <path id="antclasspath">
    <fileset dir=".">
      <include name="ojdbc7.jar"/>
   <target name="deploy">
    <sql driver="oracle.jdbc.OracleDriver" userid="hr2" password="hr"
         url="jdbc:oracle:thin:@//server:1521/sid" src="./script1.sql" 

I had both the ojdbc7.jar file and the script file at the root of the project for convenience. 

While my demo uses JDeveloper - you should be able to achieve similar functionality with any tool that supports Git. In fact if you rather not use a tool you can simply use command lines to check your files directly into the cloud.

Friday Apr 01, 2011

Justin Bieber Headlines the Oracle OpenWorld Party

[Read More]

Thursday Mar 31, 2011

Web Service Across Pages Called Twice

[Read More]

Monday Mar 21, 2011

Looking for a few more ADF sessions for Oracle OpenWorld

[Read More]

Tuesday Mar 15, 2011

Passing Parameters Between Web-Services and JSF Pages

[Read More]

Monday Mar 14, 2011

JDeveloper News – Did You Know


There have been a few issues lately with access to blogs.oracle.com to write new messages – and as a result I’m a little behind on reporting the latest and greatest in JDeveloper. (I’m also unable to approve comments :-( )

But just in case you missed it here are a few note worthy things you should know:

  • ADF Mobile Client went production – this is a solution that let you use ADF to develop on-device applications for mobile devices. You develop once and run on various devices (right now Blackberry and Windows Mobile with other platforms coming soon). For more information check out the ADF Mobile page on OTN.
  • ADF Developer Certification goes production – you can now take the official test and get an official certification that you can include in your resume.Should be a must for any consultant looking to get ADF related gigs. Learn more about the ADF Certification Exam.
  • ADF Vision Stencils Released – If you are looking for a quick way to draw prototypes of ADF screens you probably can’t get any faster and more accurate results than this. This is a set of Vision components that you can drag over and design a page visually. You can also set properties for components and do other advance things. You do need a license for Visio to use this, but the ADF stencils are free. We’ve been using these internally at Oracle for some time now and we thought the ADF community would enjoy these too. Download the ADF Visio Stencils here (and watch a youtube demo of how they work).


Thursday Feb 17, 2011

Why ADF Developers Should Attend ODTUG This Year

[Read More]

Thursday Feb 10, 2011

ADF Faces now in Eclipse

[Read More]

Monday Jan 24, 2011

Dependent LOVs in an af:query component

I showed before how simple it is to create a dependent or cascading LOV using ADF BC.
This will allow you to filter one list based on the selection in another list.
However, if you'll try to get this to work inside an af:query component - it won't work out of the box.
Luckily Steve Muench pointed me to a small setting that will get it to work in an af:query component.
Basically all you need to do is set the autosubmit property of the attribute in the viewObject.

Here is a short demo showing you how to do this. (it starts where the previous video ends).

Friday Jan 21, 2011

Controlling tab order in an ADF Form

This one came up in a call with a customer today - they wanted to control the navigation order of the cursor when you press tab. Duncan reminded me of a possible solution that will allow you to navigate between columns of fields in a horizontal way.

So here is a little demo of how to set it up and also shows how to align columns across multiple forms using the field and label width properties.

Monday Jan 10, 2011

Passing Parameters to an ADF Page through the URL - Part 2.

I showed before how to pass a parameter on the URL when invoking a taskflow (where the taskflow starts with a method call and then a page).
However in some simpler scenarios you don't actually need a full blown taskflow.
Instead you can use page level parameters defined for your page in the adfc-config.xml file.

So below is a demo of this technique.
I'm also taking advantage of this video to show the concept of a view object level service method and how to invoke it from your page.

You might wonder - why not just reference #{param.amount} as the value set for the method parameter? Why do I need to copy it into a viewScope parameter?
The advantage of placing the value in the viewScope is that it is available even when the page went through several sumbits. For example if you switch the "partialSumbit" property of the "Next" button to false in the above example - the minute that you press the button to go to the next department - the param.amount value is gone.
However the ViewScope is still there as long as you stay on this page.

Friday Jan 07, 2011

Adding an LOV to a query parameter (executeWithParams)

I showed in the past how you can use the executeWithParams operation to build your own query page to filter a view object to show specific rows.
I also showed how you can make the parameter fields display as drop down lists of values (selectOneChoice).

However this week someone asked me if you can have those parameter fields use the advanced LOV component.
Well if you just try and drag the parameter over, you'll see that the LOV option is not there as a drop option.
But with a little bit of hacking around you can achieve this. (without actual Java coding).
Here is a quick demo:

Tuesday Dec 28, 2010

Combining Multiple Queries and Parameters into One Operation

This question came up twice this week and while the solution is explained in a couple of previous blog entries I did, I thought that showing off the complete solution in a single video would be nice.

The scenario is that you have two VOs with queries that are based on a parameter, I showed in the past how to create a parameter form that executes the query - and you can do this for both.
But what if you actually need just one value to drive both queries? How do you combine two parameter forms and two buttons into one?

This is what this video shows you. The steps are:
Creating two parameter forms
Setting the value of a parameter in the binding tab
Creating a backing bean to execute the code for one button
Adding the code to execute another operation
Remarking the parts that can be dropped from the screen

Check it out here:

Wednesday Dec 22, 2010

Using the af:poll to refresh parts of the page periodically

Just a quick sample of using the af:poll components. A component that enables you to do things in a periodic fashion. For example check if something has changed on the server and update the UI.

A more "modern" approach is to actually use push instead of pull, and ADF Faces will allow you to do that with ADS (here, and here). But the poll still has its place.
It's quite useful for dashboard type of applications where you want periodic updates of the graphs shown on the page.

As you can see it's quite simple to use the tag.
I also show my lazy approach to invoking declarative operations on a data control from a backing bean without manually writing code.


I'm a Director of Product Management for Oracle's Cloud Development Tools and Frameworks.
Follow me:

« July 2016