如何使用sapui5在数据库中创建新表?

时间:2018-08-10 14:23:17

标签: javascript sapui5 sap xsodata

我正在寻找您的帮助。我创建了一个webapp。在这里,我可以创建一个表并控制条目。现在我很沮丧,因为我不知道如何将该表保存到数据库。这是保存功能:

onSave: function() {
    //Create all the records added to table via Json model
    var oTable = this.getView().byId("packItem");
    // Get the table Model
    var oModel = oTable.getModel();
    // Get Items of the Table
    var aItems = oTable.getItems();
    // Define an empty Array
    var itemData = [];
    for (var iRowIndex = 0; iRowIndex < aItems.length; iRowIndex++) {
        var l_material = oModel.getProperty("Material", aItems[iRowIndex].getBindingContext());
        var l_batch = oModel.getProperty("Batch", aItems[iRowIndex].getBindingContext());
        var l_quantity = oModel.getProperty("Quantity", aItems[iRowIndex].getBindingContext());
        var l_unit = oModel.getProperty("Unit", aItems[iRowIndex].getBindingContext());
        itemData.push({
            Batch: l_batch,
            Matnr: l_material,
            Qty: l_quantity,
            Uom: l_unit,
        });
    }
    // Get the values of the header input fields
    var ComCode = this.getView().byId("inputCC").getValue();
    var Plant = this.getView().byId("inputPlant").getValue();

    // Create one emtpy Object
    var oEntry1 = {};
    oEntry1.Bukrs = ComCode;
    oEntry1.Werks = Plant;

    var oModel1 = new sap.ui.model.odata.ODataModel(""); // Define the model
    this.getView().setModel(oModel1);// set the model
    oModel1.setHeaders({"X-Requested-With": "X"});

    oModel1.create("", oEntry1, { // Call the OData Service (.creat Function)
        success: function(oData, oResponse) {

        },
        error: function(oError) {
            alert("Failure - OData Service could not be called. Please check the Network Tab at Debug.");
        }
    });
}

1 个答案:

答案 0 :(得分:1)

UI5应用程序是客户端应用程序。因此,您创建的表只是UI表。很好的数据表示。但是不要将其与数据库表混合使用。 您的数据库由后端系统管理。这意味着您应该有一个系统可以监听服务器的任何端口,以便它可以满足您的请求并操纵数据库。

通常,UI5应用程序通过OData调用或AJAX调用将数据发送到后端端点。但是,这两种协议都是将HTTP请求的正文或标头中的一堆数据发送到特定URL的协议。

要在数据库中创建一个新表(我想这是一个SQL数据库),则应在服务器中公开一个服务,该服务在每次调用该服务时都会再次执行CREATE SQL查询。但这根本不是UI5。这是后端人员,这取决于您拥有哪种后端,哪种数据库等等。