2017-10-19 135 views
0

我試圖做一個oData創建複選框按下並獲得以下錯誤。不知道這是前端還是後端ABAP問題,因爲在另一個項目中使用了相同的功能。SAPUI5 oData POST 500錯誤

它在創建部分失敗,但奇怪的是仍然通過SiteId,ArticleNumber,VarianceDate &的細節已確認。

console log error

gui error log

// 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 
       }); 
      } 
     }); 
    } 

回答

1

'000000000' 是Edm.DateTime初始值,因此,當你模仿一個DateTime屬性不是可空就會失敗。

轉到SEGW並將屬性更改爲「可爲空」或確保始終在POST中提供正確的日期。

+0

感謝您的回覆。我明天將在開始工作時提及給ABAP開發人員,我只是UI5前端人員:) 我們的確發現了類似的答案,但我的ABAP人卻說它不能設置爲可以爲空,因爲它是一個主鍵?不知道爲什麼,但我會隨身攜帶,謝謝。 – Scott

+0

@Scott鍵字段不能設置爲空。您必須在前端驗證日期字段。或者,您可以在傳遞到後端時發送默認日期值。 –