SAPUI5 oData POST 500错误
问题描述:
我试图做一个oData创建复选框按下并获得以下错误。不知道这是前端还是后端ABAP问题,因为在另一个项目中使用了相同的功能。SAPUI5 oData POST 500错误
它在创建部分失败,但奇怪的是仍然通过SiteId,ArticleNumber,VarianceDate &的细节已确认。
// Set CheckBox status, X for true, blank for false
onVarianceChecked: function (oEvent) {
var oEntry = {};
var bindingContext = oEvent.getSource().getBindingContext(this.MODEL_VIEW);
var path = bindingContext.getPath();
var object = bindingContext.getModel("SI").getProperty(path);
// Pass in the Header fields
oEntry.SiteId = this.SiteId;
oEntry.ArticleNumber = object.ArticleNumber;
oEntry.VarianceDate = moment(new Date(object.VarianceDate)).format('YYYY-MM-DDTHH:mm:ss');
// Set X or blank
if (oEvent.getParameter("selected") === true) {
oEntry.Confirmed = "X";
} else {
oEntry.Confirmed = "";
}
// Do the create
var oModel = this.getView().getModel("SI");
oModel.create("/VarianceHeaderSet", oEntry, {
success: function() {
console.log("Variance confirmed");
MessageToast.show("Variance confirmed", {
duration: 1000
});
},
error: function (oError) {
console.log("Error, variance could not be confirmed");
MessageToast.show("Error, variance could not be confirmed", {
duration: 1000
});
}
});
}
答
'000000000' 是Edm.DateTime初始值,因此,当你模仿一个DateTime属性不是可空就会失败。
转到SEGW并将属性更改为“可为空”或确保始终在POST中提供正确的日期。
感谢您的回复。我明天将在开始工作时提及给ABAP开发人员,我只是UI5前端人员:) 我们的确发现了类似的答案,但我的ABAP人却说它不能设置为可以为空,因为它是一个主键?不知道为什么,但我会随身携带,谢谢。 – Scott
@Scott键字段不能设置为空。您必须在前端验证日期字段。或者,您可以在传递到后端时发送默认日期值。 –