在SAPUI5中调用XSJS文件以获取HANA上的写入数据

时间:2015-09-02 12:06:51

标签: service odata sapui5 hana

我正在尝试创建一个服务,将数据从SAPUI5前端写入HANA表。 据我检查,我认为这不可能通过OData服务。所以我找到了另一种方法,用SQL INSERT语句唱一个XSJS文件。

现在,我的问题是在UI5中使用它。和OData一样,我会使用像oModel.create这样的东西,但现在我认为这不会那样。

那些人有线索吗?

谢谢!

伊娃

更新: 在使用第一个答案后,我尝试在HANA表中创建一个条目,但是我收到500错误。这是xsjs文件的代码:

var data = '', conn = $.db.getConnection(), pstmt;  

        if($.request.body){
            data = $.request.parameters.get("firstName");   
        }

        var conn = $.db.getConnection();
        var pstmt = conn.prepareStatement( 'INSERT INTO "Z003HB1N"."T_TEST" (FIRSTNAME) VALUES(?)' );

        pstmt.setString(1,data);

        pstmt.execute();
        pstmt.close();

        conn.commit();
        conn.close();

        doResponse(200,'');

        $.response.contentType = 'text/plain';
        $.response.setBody('Upload ok');
        $.response.status = 200;

任何可能出错的线索?

1 个答案:

答案 0 :(得分:3)

您只需使用.ajax来调用HANA上的新oData服务,并使用参数将所需值移交给.xsjs服务。

示例:

var query = "firstName=Sherlock&lastName=Holmes"
jQuery.ajax({
    url : "url/to/your/Service.xsjs?" + query,
    success : function(response) {
        // will be called once the xsjs file sends a response
        console.log(response);
    },
    error : function(e) {
        // will be called in case of any errors:
        console.log(e);
    }
});

在HANA上,您可以访问服务中提供的参数,如下所示:

var firstName = $.request.parameters.get("firstName");
var lastName = $.request.parameters.get("lastName");