Hello experts,
I am developing one SAP Hana native application and trying to invoke procedure in my server side javascript(xsjs). But I am not able to do that ,getting empty result as output.
Procedure:
PROCEDURE "<schema>"."<account>.hana.PrognosticManagement.procedures::TEST"(
OUT FIELD1 VARCHAR(5)
)
LANGUAGE SQLSCRIPT
SQL SECURITY INVOKER
READS SQL DATA
AS
BEGIN
DECLARE FIELD VARCHAR(5);
SELECT 'A'
INTO FIELD1
FROM DUMMY;
-- FIELD1 := :FIELD;
END;
XSJS:
//Get parameters
var tx_data_query = "";
var resultSet = null;
function getTxtData(){
var txlist = [];
var connection = $.db.getConnection();
var statement = null;
// tx_data_query = "CALL \"<schema>\".\"<account>.hana.PrognosticManagement.procedures::TEST\"(?)";
tx_data_query = "CALL \"<schema>\".\"<account>.hana.PrognosticManagement.procedures::TEST\"(FIELD1 => ?)";
try{
statement = connection.prepareCall("CALL \"<schema>\".\"<account>.hana.PrognosticManagement.procedures::TEST\"(?)");
statement.execute();
resultSet = statement.getResultSet();
var txtItem;
while(resultSet.next()){
txtItem = {};
txtItem.Value = resultSet.getString(1);
txlist.push(txtItem);
}
} finally {
resultSet.close();
statement.close();
connection.close();
}
return txlist;
}
function doGet() {
try{
$.response.contentType = "text/plain";
$.response.setBody(JSON.stringify(getTxtData()));
}
catch(err){
$.response.contentType = "text/plain";
$.response.setBody("Error while executing query: [" + resultSet + "]");
$.response.returnCode = 200;
}
}
doGet();
Output
[]
Thanks
Pragati Gupta