Please disable your adblock and script blockers to view this page

Search this blog

Thursday 3 January 2019

Using Bean Data Control in Oracle ADF

 This post talks about a basic requirement that is creating bean data control in an ADF Application. Here I'll show you how to create POJO based Java class and use it as data control to populate data on the page.

Let's start by creating a fusion web application with a model and view controller project


Now create a POJO class PersonDetail in the model project, This class represents a person and captures his details like name, date of birth and phone number.

  1. package beandatacontrol.model.bean;
  2. public class PersonDetail {
  3. public PersonDetail() {
  4. // TODO Auto-generated constructor stub
  5. }
  6. public PersonDetail(String name, String phoneNo, String dateOfBirth) {
  7. this.name = name;
  8. this.phoneNo = phoneNo;
  9. this.dateOfBirth = dateOfBirth;
  10. }
  11. private String name;
  12. private String phoneNo;
  13. private String dateOfBirth;
  14. public void setName(String name) {
  15. this.name = name;
  16. }
  17. public String getName() {
  18. return name;
  19. }
  20. public void setPhoneNo(String phoneNo) {
  21. this.phoneNo = phoneNo;
  22. }
  23. public String getPhoneNo() {
  24. return phoneNo;
  25. }
  26. public void setDateOfBirth(String dateOfBirth) {
  27. this.dateOfBirth = dateOfBirth;
  28. }
  29. public String getDateOfBirth() {
  30. return dateOfBirth;
  31. }
  32. }

The second class is Society that holds the list of people and it goes like this.

  1. package beandatacontrol.model.bean;
  2. import java.util.ArrayList;
  3. import oracle.binding.AttributeContext;
  4. import oracle.binding.RowContext;
  5. public class Society {
  6. public ArrayList<PersonDetail> person = new ArrayList<PersonDetail>();
  7. public Society() {
  8. super();
  9. if (person.size() == 0) {
  10. person.add(new PersonDetail("Ashish Awasthi", "+91672938", "02/01/1991"));
  11. person.add(new PersonDetail("Shyam Kumar", "+91345545343", "06/09/1991"));
  12. person.add(new PersonDetail("Alex Smith", "+458954638", "08/02/1991"));
  13. person.add(new PersonDetail("Raghav Mani", "+914512698", "09/06/1991"));
  14. person.add(new PersonDetail("Ahmad Sheikh", "+7459654245", "12/05/1991"));
  15. }
  16. }
  17. public void setPerson(ArrayList<PersonDetail> person) {
  18. this.person = person;
  19. }
  20. public ArrayList<PersonDetail> getPerson() {
  21. return person;
  22. }
  23. }

Now right click on Society class and select Create Data Control


In the next step, I have selected Custom CRUD operation support in ADF Data Control Features


Click on Next and don't change access mode, the default value is Scrollable

 


Click on Finish and you can see all the details


Now you can see a DataControl.dcx file is created in the project, In short bean data control is ready for use.


Right-click on the view controller project and create a page and drop person data control on the page as ADF table. Also, drop create operation as a button and run the application.


Check to create button, click on that and see a new row added in the ADF table.


Cheers 🙂 Happy Learning

Wednesday 26 December 2018

Consume ADF BC based REST Web Service using ADF REST Data Control

Creating and consuming web service is an important part of the development cycle in any technology. Here in this post, I am going to show that how can we consume ADF BC based REST web service in an ADF application. In ADF 12.2.1 release Oracle provides support for declaratively consuming REST Web Service, Before that it was only possible using java and that was a tedious task for fusion developers.

Suppose I have an ADF BC (Business Components) based REST web service that returns a list of Departments. Now to consume that web service we'll use ADF REST Data control. Here I am going to illustrate this step by step.

I am using JDeveloper 12.2.1.3, Let's start with Creating a Fusion Web Application with model and view controller project.



Right click on the Model project and Select New–> From Gallery–> Business Tier–> Web Services and select Web Service Data Control SOAP/REST 



It opens Web Service Data Control creation wizard, Select REST as Web Service type and provide a meaningful name, Select Describe-Based ADF Data Control as the type of data control.



Click on the green plus icon to create new ADF Rest Connection, Enter connection name and URL of the web service.
Here you should know that URL of ADF based REST web service typically has a host, port, context root path with version name, resource name. So URL of my web service is this

http://127.0.0.1:7101/RestWebServApp-RESTWebService-context-root/rest/Jdev12.2.1/Department

and to make it REST Describe URI just add describe after resource name and put that URL in URL Endpoint field

http://127.0.0.1:7101/RestWebServApp-RESTWebService-context-root/rest/Jdev12.2.1/Department/describe

Default authentication type is none so leave it and test the connection.



Click on OK and you can see that REST connection is created.



Click on next button and come to Select Resources tab and add resources to the selected side.



On the Finish tab test REST connection once again and you can see It is successful.



On the click of the finish button, a file DataControls.dcx is generated. This is a data control definition file and contains information about data collection nodes and built-in data collection operations.



Now consuming web service part is done and next is to create a page and use WSDL to show a table on that page.

Right click on the view controller and select New–> From Gallery–> Web Tier–> JSF/Facelets and create a new page



Expand Data Controls section of Fusion Web Application and you can see there Departments data collection node. On expanding it you can see the attributes of the Departments table and its operation.



Select Departments from data control and drop it on the page as ADF table, Also dropped Previous and Next operation as a button on the page.



Now run and check application, Data is populated from the web service using ADF REST data control



Click on Next button to navigate between rows



All done 🙂 

This is how you can consume an ADF BC based REST WebService in Fusion Application.