Запросы POST SAPUI5 всегда приводят к ошибке сервера 500 (OData) - PullRequest
0 голосов
/ 05 мая 2020

Сейчас я пытаюсь изучить основы SAPUI5 и OData. Я создаю простое приложение, в котором данные о сотрудниках отображаются в таблице, и вы можете добавить нового сотрудника, данные которого будут записаны в бэкэнд SAP.

Все запросы GET работают, запросы POST, однако, всегда приводит к ошибке сервера (500). Мой метод создания как-то искажен или я что-то забыл (специальный заголовок et c.)? (Я знаю, что на самом деле мне следует использовать odata.v2, но только для этого примера ... есть что-то явно не так, что я просто не вижу?)

sap.ui.controller("zemployee_crud.EmpTable", {

    onInit: function() {
        var oView = this.getView();
        var oTable = this.byId("employeeTable"); 

        var oTemplate = new sap.m.ColumnListItem({
        cells: [new sap.m.Text({
            text: "{Empid}"
        }), new sap.m.Text({
            text: "{Empname}"
        }), new sap.m.Text({
            text: "{Empadd}"
        })]
        });

        var sServiceUrl = "proxy/http/<server>:<port>/sap/opu/odata/sap/ZEMPLOYEE_SRV";
        var oModel = new sap.ui.model.odata.ODataModel(sServiceUrl, false);

        this.getView().setModel(oModel);

        oTable.bindAggregation("items", {
            path: "/EmployeeSet",
            template: oTemplate
        });
    },

Save: function() {
    var oId = this.getView().byId("Id").getValue();
    var oName = this.getView().byId("Name").getValue();
    var oAddress = this.getView().byId("Address").getValue(); 
    var oDialog = this.getView().byId("Dialog");

    var oEntry = {};

    oEntry.Empid = oId;
    oEntry.Empname = oName;
    oEntry.Empadd = oAddress;

    var oModel = this.getView().getModel();

    oModel.create("/EmployeeSet", oEntry, null, function (response) {
        alert("Success!");
        // handle response
    }, function (Error) {
        alert("Fail!"); 
        // handle response
    });
}

Ответы [ 2 ]

0 голосов
/ 12 мая 2020

Наконец-то обнаружил ошибку - возникла проблема с приложением BSP, созданным через Eclipse. После устранения этой проблемы запросы POST работали нормально.

0 голосов
/ 05 мая 2020

Это обычный сценарий разработки UI5. Сервер шлюза SAP не сообщит веб-интерфейсу точную ошибку, поскольку это может привести к утечке данных, которые вам не нужны.

Чтобы выяснить, в чем именно заключается проблема, вы должны go перейти к транзакции / IWFND / ERROR_LOG в вашем бэкэнде. Там должен быть виден запрос, и вы сможете увидеть, что именно вызвало эту ошибку.

...