我试图将值从fiori屏幕传递到oData,并想读取entityset方法。但是,当我在odata中检查调试器时,it_key_tab的记录为零。
onNext: function(oEvent) {
var oViewModel = {};
oViewModel.MBLNR = this.getView().byId("idMd").getValue();
oViewModel.MJAHR = this.getView().byId("idFy").getValue();
if (oViewModel.MBLNR === "") {
var msg = ("Please Enter the material Doc No.");
MessageToast.show(msg);
} else
if (oViewModel.MJAHR === "") {
msg = ("Please Enter the fiscal year");
MessageToast.show(msg);
} else {
var oModel = this.getView().getModel();
var oFilter = new Filter("MBLNR", FilterOperator.EQ, oViewModel.MBLNR);
//var oFilter1 = new Filter("MJAHR", FilterOperator.EQ, oViewModel.MJAHR);
var aFilters = new Filter({
filters: [oFilter]
});
oModel.read("/MaterialDocReservationSet", null, {
filters: [aFilters],
//this.getView().getModel().read("/UserInputSet", oViewModel, {
success: function(OData, response) {},
error: function(OData, response) {
//MessageToast.show("Error");
}
});
}
答案 0 :(得分:1)
在读取的oData中,删除null参数。过滤器也应该是:过滤器:[oFilter]。 Filters属性可以接受包含过滤器对象的数组,在您的代码中您具有嵌套的数组和过滤器。
答案 1 :(得分:0)
在您的前端代码中,您正在呼叫oModel.read("/MaterialDocReservationSet", null, {...})
。根据{{3}},您应该调用read(sPath, {...})
(没有第二个参数null
)。
在后端网关OData GET_ENTITYSET
方法中,您应该使用io_tech_request_context
的过滤器方法访问过滤器。 it_key_tab
与GET_ENTITY
(对应的OData URI,例如MaterialDocReservationSet(1)
)中的密钥有关。