首页 > 解决方案 > 如何从ui5屏幕将输入值传递给odata的实体集

问题描述

我正在尝试将 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");
                    }

                });
            }

标签: javascriptsapui5

解决方案


在您的 oData 读取中,删除 null 参数。过滤器也应该是:过滤器:[oFilter]。Filters 属性可以接受包含过滤器对象的数组,在您的代码中,您有嵌套数组和过滤器。


推荐阅读