Quantcast
Channel: SCN : Blog List - All Communities
Viewing all articles
Browse latest Browse all 2548

How to Return Generated Value in XSODATA using XSJSLIB Modification Exit

$
0
0

Introduction :

For consuming HANA data on UI we usually develop XSJS , XSODATA depends on situation. As you know in every release of HANA , SAP is increasing XSODATA features. In this blog will give you basic idea how can you use XSJSLIB based modification exit for updating and returning value in XSODATA response.

 

Scenario :

Let's consider a scenario we've created employee table which contain empid , first name , department , email ...etc. For performing CRUD operation I've created XSODATA service. we can pass each and every information from UI except employee id because it should be generated at server side with the help of sequence / custom logic and should return at UI side after successful creation . I've seen many threads in which many Native Hana developer faced issue to get newly created value in XSODATA .

 

Objects :

TABLE : 

Capture.JPG

 

XSODATA: EMS.xsodata

service  {    "EMS"."EMS.Employee.HANATABLE::EmpPersInfo" as "Pinfo"     create events ( before "EMS.Employee.XSJSLIB:emp_oprtn.xsjslib::usersCreate" ) //before create operation this exit will be trigger      }

SEQUENCE: EMS.hdbsequence

schema= "EMS";
increment_by = 1;      //  -1 for descending
start_with = 100;
maxvalue= 99999999;
cycles= false;         // when reaching max/min value
depends_on_table = "EMS.Employee.HANATABLE::EmpPersInfo";

XSJSLIB: emp_oprtn.xsjslib

function usersCreate(param){       $.trace.debug('entered function');       let after = param.afterTableName; // temporary table       // Updating Employee Id Before Create operation via sequence       let pStmt = param.connection.prepareStatement('update "' + after + '" set EID = "EMS.Employee.SEQUENCE::EMS".NEXTVAL' );       pStmt.executeUpdate();       pStmt.close();
}

UI5 code -

var oModel= new sap.ui.model.odata.ODataModel('/EMS/Employee/XSODATA/EMS.xsodata', false);
var inputData={};
inputData.EID= '';
inputData.FNAME='AB';
inputData.LNAME='Moy';
inputData.MNAME='Toy';
inputData.GEN='MALE';
inputData.MSTS='SINGLE';
inputData.DOB='1991/08/07';
oModel.create('/Pinfo',inputData,null, function(odata,oResponse){  alert("Creation successful");
});



Testing : Everything is ready we can check it now -

see below screenshot of debugger we've send just dummy EID = 1 but in response our newly created Employee id is available

           

   

return.JPG


Viewing all articles
Browse latest Browse all 2548

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>