Sunday, April 1, 2007

Oracle Day'07 in Vilnius

This week I was participating in local Oracle Day event. This event was organized by local Oracle Corporation office on March 27. Event statistics - 43 sessions and 700 participants. Parallel sessions were divided into three categories - Oracle applications, Oracle technologies and Oracle partners.


My presentation title was - "Oracle JDeveloper and Oracle ADF: deeper sight". During the presentation I have talked about Oracle JDeveloper functionality and about Oracle ADF features. The main focus was to show for the auditory how it is simple to use Oracle ADF, I have described steps needed to create standard CRUD type WEB application. I should say, presentation has received quite big attention - there was something about 100 people auditory. Presentation title slide - "Oracle JDeveloper and Oracle ADF: deeper sight":


As it was mentioned, I have described steps needed when using Oracle ADF. Described steps were:
  1. Entity objects development
  2. Use Case implementation - View objects and Application Module
  3. Developed Application Module testing
  4. Business logic implementation - adding data validation functionality to Entity object
  5. View layer development using Oracle ADF Faces
  6. Application running using Oracle JDeveloper embedded OC4J
Those steps were described based on developed sample application - OracleDayDemo.zip. Sample is based on standard HR schema and use two tables - JOBS and EMPLOYEES. It implements two Entity objects, two View objects and one ApplicationModule. All Business Components are developed using Oracle JDeveloper Business Components diagram. In View layer three pages are created - viewJobs.jspx, editJob.jspx and viewEmployees.jspx. Business Components structure for developed sample:


Page flow diagram - available pages and navigation cases between them:


When running sample application, don't forget to add adf-faces-impl.jar and jsf-impl.jar to application's WEB-INF\lib directory.

4 comments:

Anonymous said...

The example was quite intresting. Can you you please explain about how the selected jobid is passed to page showing employees with that job.

Andrej Baranovskij said...

Hi,

1). In viewJobs.jspx for 'View employees' button af:setActionListener is created. This listener stores #{row.JobId} value to #{processScope.jobId}

2). In viewEmployees.jspx page-definition file ExecuteWithParams action is defined. This action accepts #{processScope.jobId} and executes EmployeesView View Object.

3). ExecuteWithParams is invoked each time when page is opened - this is defined in 'setJobParam' invokeAction available in viewEmployees.jspx page-definition file.

Regards,
Andrejus

Anonymous said...

Thank you Andrejus,
I am a newbee to ADF, I am not able to follow the step.2, i.e defining ExecuteWithParams and setCurrentRowWithKey. Can you please give me some more details on this step or a link where these details are available.
Thanks in advance

Andrej Baranovskij said...

Hi Seshu,

You can find detailed descriptions of ExecuteWithParams and setCurrentRowWithKey in Duncan Mills's weblog:

1) ExecuteWithParams My New Best Buddy

2) ADF - InvokeAction -immediately flitering Employees by a Department Name drop down list

Hope this will be useful. I can help if something will be unclear.

Regards,
Andrejus