如何在OData的ID列中自动增加值

时间:2019-03-01 07:59:47

标签: sapui5

我想在我的OData模型中创建一个新的用户记录。对于创建的每条新记录,我都希望userId可以自行创建并自动递增,以便添加下一个用户。应用调试器并进行检查时,代码也不会读取成功函数并直接执行错误部分。

signup.controller.js

return Controller.extend("Workspace.controller.App", {
  onInit: function() {
    var user = {
      name: "",
      email: "",
      password: ""
    };
    var oModel = new JSONModel(user);
    this.getView().setModel(oModel, "SUP");
  },

  signupButton: function(oEvent) {
    var oModel = this.getOwnerComponent().getModel("TEST");
    var oModel1 = this.getOwnerComponent().getModel("UID");
    var oModel2 = this.getOwnerComponent().getModel("SUP");
    var obj = {};
    obj.USERID = oModel1.getProperty("/x");
    obj.USERNAME = oModel2.getProperty("/name");
    obj.PASSWORD = oModel2.getProperty("/password");
    obj.USERMAIL = oModel2.getProperty("/email");

    oModel.create("/user", obj, {
      success: function(oData, oResponse) {
        MessageToast.show("Record Created Successfully...");

      },
      error: function(err, oResponse) {
        MessageToast.show("Record not Created...");
      }
    });
  },

  // ...
});

1 个答案:

答案 0 :(得分:1)

参考Marc的建议,这是您应该采取的方法。

  1. 在“用户”的createEntity方法中,读取UI请求发送的正文(oModel.create中的obj)。

  2. 读取用户表(构成用户实体Collection的表数据)并找到可用的最新用户ID。

  3. 连同从步骤1收集的数据一起,插入具有您要插入的userId的记录。

希望这有助于解决问题。