在 SAPUI5 中调用 XSJS 文件在 HANA 上写入数据

Calling XSJS file in SAPUI5 for writng data on HANA

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

现在,我的问题是在 UI5 中使用它。与 OData 一样,我会使用 oModel.create 之类的东西,但现在我认为这行不通。

谁有线索?

谢谢!

伊娃

更新: 使用第一个答案后,我尝试在 HANA Table 中创建一个条目,但出现 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;

知道哪里出了问题吗?

您可以简单地使用 .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");