In this section I will discuss about the create a XSJS application consume calculation view and sent it to Http response to SAPUI5 in SAP HANA XSA using WEB IDE.

Architecture :

 

Steps :

1. Create a Calculation view using required tables in the HDI container.  For our case we created a CV CV_EMPLOYEE from table employee. The detail is given below –

ttps://blogs.sap.com/2020/11/23/understanding-the-development-process-of-calculation-view-in-hana-2.0-xsa-environment-using-web-ide/

2. Create a Node.js application with XSJS support and inside lib folder create a employee.xsjs application.

 

4. Add this DB module db_plb to node.js module(with XSJS support) as a required module.

3. Create the employee.xsjs inside lib folder and implement the below code to access the data.

 

var employee = [];
var stmnt = null;
var rs = null;
var conn = $.db.getConnection();
var stmnt = conn.prepareStatement( "select * from "DB_PLB.OFFICE"::"CV_EMPLOYEE" );
var rs = stmnt.executeQuery();

if (!rs.next()) {
  $.response.setBody( "Unable to get result" );
  $.response.status =  $.net.http.INTERNAL_SERVER_ERROR;
} else {
	  emp = {};
	  emp.emp_id = resultSet.getString(1);
	  emp.emp_name = resultSet.getString(2);
	  emp.emp_mail_id = resultSet.getString(3);
	  emp.address = resultSet.getString(4);
	  employee.push(emp);
}
rs.close();
pstmt.close();
conn.close();

try{
		$.response.contentType = "application/json";
		$.response.setBody(JSON.stringify(employee));
}
catch(err){
		$.response.contentType = "text/plain";
		$.response.setBody("Got error : [" + err.message + "]");
		$.response.returnCode = 400;
}

 

4. Build the DB Module first. . Run as Node.js application and you can see the calculation view has been expose in son format in browser.

 

 

 

Note : at this stage we do not implement security. We will create in the Web module and push it to the XSJS in the next blog.

 

 

Sara Sampaio

Sara Sampaio

Author Since: March 10, 2022

0 0 votes
Article Rating
Subscribe
Notify of
0 Comments
Inline Feedbacks
View all comments
0
Would love your thoughts, please comment.x
()
x