Monday Nov 03, 2014

How to write code in ADF - new "live" video from OW available

My Oracle Open World 2014 session on "First Programming Steps in Oracle ADF: Beyond Drag and Drop" was recorded by Oracle University and is now available to watch here.

My goal for this presentation was to try and bridge the gap between the drag and drop declarative side of ADF, and the programming side where you start to really flesh out the application specific functionality.  I'm hoping this will help new ADF developers go beyond the basics and start exploring the power of the ADF programming model. 

Monday Aug 11, 2014

Survey - what are you doing with Forms?

The Forms community are looking to get an insight into how people are using Forms and their plans for the future.  If you are using Forms this might be worth a couple of minutes of your time or jump directly to the survey here.

Tuesday Jan 22, 2013

Building Performant ADF Business Components Applications - New ADF Insider

I've just published a new ADF Insider Essentials on Building Performant ADF Business Components Applications. Apart from anything else, this is a great insight into the internal workings of ADF Business Components and I would saw is a MUST for all ADF developers. 
Its the first ADF Insider Essentials from Jobinesh, who is an ADF architect and author of the Oracle ADF Real World Developer's Guide.

Thursday Dec 20, 2012

Mobile application development skilling up at UKOUG - New SIG in 2013

Earlier in the month the UKOUG ran a 3 day hands-on workshop at the main technology conference.  Nearly 100 people sat down and completed a lab in how to build an application to run on an iPhone.  Well based on that success, the UKOUG will be running a Development SIG specifically focused on how to develop for the Mobile platform.  The SIG is on the 5th of Feb in Oracle's offices near Birmingham and will feature presentations on native device development, ADF, Apex, even a tablet application which supports the Eurofighter.  Just think, launching missles from your iPad! - Joking aside, Mobile is one of the hotest development themes around and I would expect this session to be a sell out.

Monday Mar 26, 2012

Getting the previous value of an ADF Business Components Attribute

Sometimes in ADF land you need to check the value of an attribute that has just been changed...maybe you have a requirement that a new value must be within 10% of the previous value.  There is a neat solution to implement this as shown by Chris Muir in this ADF Insider Essential on our YouTube Channel.

Monday Mar 05, 2012

New ADF Insider Essentials - Basing a view object on multiple entities

One of the common requirements when building an application on relational database tables is the ability to incorporate attributes from different sources into a data view which is more representative of the application requirement, rather than the database schema. ADF Business Components provides a powerful feature which can be used, for example, when viewing Emp data, you would want to displayed Department Name from the Dept table rather than just DeptId, which is less intuitive to the end users.  To help understand the use case and how to implement it, we've just published this ADF Insider Essentials on YouTube which explains how you can do this.

Thursday Jan 26, 2012

Great Forms and ADF day in Israel.

Just returned from a great Forms Modernization and ADF masterclass event in Tel Aviv, Israel.  Nearly 200 Oracle customers turned up to hear about Forms modernization, migration, futures, strategy, customer stories and new features.  Thanks to Oracle Israel and Mia Urman of OraPlayer for putting this great event together.  Proof that the Forms audience is alive and kicking (and some carrying guns!).

Thanks to all who attended and hope you got something from the day.  We'll be running something similar in the UK on the 28th Feb.

Friday Oct 14, 2011

Two new ADF Insider Essentials Published

I've just published two new ADF Insider Essentials on You Tube.  The first demonstrates how to set an attribute's default value to the value found in another entity object.  This is a common use case where, for example, an employees default salary is the min salary for the job role, which is defined in the jobs table.

The second explains how to implement a total.  Again a common use case where, for example, you want to display the total salary for a department (which of course is based on the total of all the relevant employee's salary).

These should be essential skills for anyone developing in the Oracle ADF world.

Monday Aug 15, 2011

Using Groovy to read values from a different view object

We recently posted an ADF Insider Essentials that showed how to build an LOV switcher.  In this example, Frank Nimphius wrote a custom method into the PaymentTypeVOImpl which returns the string CASH or CREDIT depending on the lookup value passed in (1 or 2).  This method is then called from the Orders view object via a Groovy expression.

However, there is an even quicker way without even having to create a custom method.  To explain, I'm going to use the good old Employees and Jobs tables from the HR schema.  Lets assume, that when you create a new employee their default role is AC_MGR (account manager) and their default salary should be the minimun salary for an accout manager.  In this case, we'll actually read the minimum salary into the EmployeesVO.Salary field from the JobsVO.Min_Salary field.

1) First create default ADF BC based on Employees and Jobs

2) In the EmployeesVO add a view accessor to JobsVO (and call it JobsView).  This "links up" the EmployeesVO to the JobsVO

3) Set the default EmployeesVO.JobId to AC_MGR

4) Set the default EmployeesVO.Salary to JobsView.findByKey(key(JobId),1)[0].MinSalary

So what does this Groovy expression do?  It "walks" to the JobsVO using the JobsView accessor and then calls findByKey using the JobId.  This returns an array and since we know JobId is unique we can just get the first entry's MinSalary.

Creating different LOVs for the same ADF BC attribute

A really neat feature of ADF Business Components is that you can define different LOVs for the same attribute.   So why might you want to do that?  Well consider the use case that for an order you have PaymentType=Cash or Credit.  You also have an attribute PaymentDetail, depending on the PaymentType you want to display either a list of credit card companies OR a list of currencies.

I've just uploaded a new ADF Insider Essentials to our YouTube channel that shows you to implement this behaviour.  This will also be uploaded onto OTN.  If you are not already, it might be worth subscribing to the channel.


Wednesday Jul 20, 2011

How to conditionally set data as editable based on another fields value

This question comes up a few times in ADF land and it appeared on the OTN forums this week so I thought I would create a quick demo.  The scenario is that depending on some data value, you want to define that some other data is not editable.  For example, if an order status is "CANCELLED" then the order cannot be edited.

Now, you might be thinking that you could use some sort of UI functionality here; maybe an EL which checks the value of a field and sets a property or switcher to show non-editable fields.  You could, but if you think about it, this is fundementally a business logic problem - regardless of how the UI looks, a cancelled order should not be editable.  Its actually quite a simple piece of code you can put in ADF Business Components.

The trick is that for every attribute in a View Object or Entity Object, a framework method isAttributeUpdateable is called to check if this attribute can be updated.  So, its pretty easy to override this method to add your own check. 

This will appear as an ADF Insider Essentials this week and is already available on YouTube as well.

Friday Jul 08, 2011

Access and manage a view criteria from code

A common development use case in Oracle ADF is being able to dynamically filter data based on runtime data such as who is logged in, which screen are they on, maybe even the time of the day.  This is usually achieved by applying view criteria on the view object.  The dynamic element comes from the fact you can apply, remove and append view criteria from code.

This ADF Insider Essentials demo has just been uploaded onto YouTube where I show examples of how you can programmatically control view criteria.

Friday May 27, 2011

Dynamic Error messages from a method in ADF BC Entity Objects

A question came up on the forum of how to be able to call an EO method to return the string for an ADF BC validation error message.  Its actually pretty easy using the power of Groovy.

1) Create your validation rule as before but for the error message just put {x}

2) This is you setting up a blank error with a parameter called x.

3) Now, for the message token X add the following Groovy expression source.returnErrorMessage() where returnErrorMessage is the name of your EO method.

4) Now you can dynamically build your error message in Java and call it from the framework.

Thursday May 12, 2011

Great ADF training day organized by the UKOUG

Yesterday I delivered a full day of ADF training organized by the UKOUG.  This event was in response to a comment at the last UKOUG Roundtable session where someone commented that they hadn't had anyone come and talk to them about ADF.  So I promised that if the UKOUG could fill a room, I would come along and tell them everything they wanted about ADF.  And this was the day!  50 people attended to hear about Fusion, ADF and JDeveloper - and get hours of demos!  So it just goes to show, UKOUG and TEBS conference can be a way of influencing what happens in the Oracle community.

Thanks to all who attended, and thanks for the lively discussions and questions..

If you are looking for more ADF training there are is the free online virtual developer day  - details here

Monday May 09, 2011

Oracle Forms Modernization Seminar and ADF Masterclass

Oracle partner iAdvise are running an event on Forms modernization on the 6th of June in Belgium. This should be a very interesting day covering Forms strategy, modernization options, JDeveloper, Eclipse, ADF and even some third party solutions. I’ll be presenting on Forms strategy and the doing an afternoon seminar on JDeveloper and Oracle ADF. Places are, as usual, limited so please register early to ensure your attendance. You can do so here:

Tips, Tricks, Events and Information around Oracle JDeveloper, ADF, and Oracle Forms


« June 2016