Populate Oracle JET table on top of Oracle ADF BC using REST Web Service
Previously I have posted about creating REST Web Service from ADF Application Module and in this post, I am going to use the same REST service for populating data in a JET table. Here we’ll populate JET table on top of Oracle ADF BC (Business Components).
Here I am taking the same sample application that I have discussed in my first post Getting started with Oracle JET and JDeveloper
The URL of ADF BC based web service is http://127.0.0.1:7101/RestWebServApp-RESTWebService-context-root/rest/Jdev12.2.1/Department and it returns a list of Departments in nested JSON format

Let’s see the implementation part
Add an oj-table component in the dashboard.html page and define the required number of columns, this web service returns a list of Departments so I have taken 4 columns for Department Id, Department Name, Manager Id, and Location Id
<div class="oj-hybrid-padding">
<h1>Dashboard Content Area</h1>
<div id="div1">
<oj-table id='table' aria-label='Departments Table'
data='[[datasource]]'
selection-mode='{"row": "multiple", "column": "multiple"}'
dnd='{"reorder": {"columns": "enabled"}}'
scroll-policy='loadMoreOnScroll'
scroll-policy-options='{"fetchSize": 10}'
columns='[{"headerText": "Department Id",
"field": "dept_id",
"resizable": "enabled"},
{"headerText": "Department Name",
"field": "dept_name",
"resizable": "enabled"},
{"headerText": "Manager Id",
"field": "mgr_id",
"resizable": "enabled"},
{"headerText": "Location Id",
"field": "loc_id",
"resizable": "enabled"}
]'
style='width: 100%; height: 400px;'>
</oj-table>
</div>
</div>
Now see the code of dashboard.js, Read comments to understand the javascript code, Here getJSON() method of jQuery is used to call REST Web Service as jQuery is a part of Oracle JET libraries.
/*
* Your dashboard ViewModel code goes here
*/
define(['ojs/ojcore', 'knockout', 'jquery', 'ojs/ojinputtext', 'ojs/ojtable', 'ojs/ojarraytabledatasource'],
function (oj, ko, $) {
function DashboardViewModel() {
var self = this;
//Define a Knockout observable array and name it tabData
self.tabData = ko.observableArray();
//Use jQuery method to call REST Web Service
$.getJSON("http://127.0.0.1:7101/RestWebServApp-RESTWebService-context-root/rest/Jdev12.2.1/Department").
then(function (departments) {
//JSON response is nested that's why 'items' is used to access records
$.each(departments.items, function () {
//Push data in Observable array
self.tabData.push( {
dept_id : this.DepartmentId,
dept_name : this.DepartmentName,
mgr_id : this.ManagerId,
loc_id : this.LocationId
});
});
});
//Pass observable array in utility class to show data in table
self.datasource = new oj.ArrayTableDataSource(self.tabData,
{
idAttribute : 'dept_id'
});
.
.
.
tabData is a knockout observable array that is defined to hold returned value and you can see that
self.tabData.push is used to push web service data into this array and at last a JET utility class
ArrayTableDataSource is used to convert this observable array in tabular format data.
Now run application and you can see that a JET table is populated with Departments data

Cheers
Happy Learning
Published on Web Code Geeks with permission by Ashish Awasthi, partner at our WCG program. See the original article here: Populate Oracle JET table on top of Oracle ADF BC using REST Web Service Opinions expressed by Web Code Geeks contributors are their own. |

