Javascript 如何从ui5屏幕将输入值传递给odata的entityset

Javascript 如何从ui5屏幕将输入值传递给odata的entityset,javascript,sapui5,Javascript,Sapui5,我试图将一个值从fiori屏幕传递到oData,并希望读取entityset方法。但当我在oData中检查调试器时,it_key_选项卡上没有记录 onNext: function(oEvent) { var oViewModel = {}; oViewModel.MBLNR = this.getView().byId("idMd").getValue(); oViewModel.MJAHR = this.getVi

我试图将一个值从fiori屏幕传递到oData,并希望读取entityset方法。但当我在oData中检查调试器时,it_key_选项卡上没有记录

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

                });
            }

在前端代码中,您正在调用
oModel.read(“/MaterialDocReservationSet”,null,{…})
。根据,您应该调用
read(sPath,{…})
(没有第二个参数
null


在后端网关OData
GET\u ENTITYSET
方法中,您应该使用
io\u tech\u request\u context
的过滤方法访问过滤器
it_key_选项卡
GET_实体
中的键有关(对应的OData URI,例如
materialdocservationset(1)
)。

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

我创建了odata,其中我有一个entityset“MaterialDocumentServationSet”,其中的键字段是mblnr和rsnum。当我从ui5屏幕输入值时,它会点击odata entityset,但当我签入它时,\u key\u选项卡,它中没有记录。请建议如何捕获entityset中的条目\u键\u选项卡或过滤器\u选择\u选项。是否确实为OData提供一个数组,其中包含一个过滤器?删除过滤器周围的[]并重试,而且只要您只有一个过滤器,您根本不需要将其放入数组中,因此只需执行类似smth的过滤器:oFilter;事实上,我必须通过两个过滤器,因为您可以看到,我已经对其中一个进行了评论,并尝试使用一个过滤器进行测试。这就是我将过滤器放入数组的原因。我按照您上面的建议进行了尝试,但我仍然无法在get_entityset的IT_KEY_选项卡中获取值。我只是得出结论,您使用的是SAP后端,对于使用SEGW创建的OData服务,由于您谈论的是it_key_选项卡字段,因此筛选器不在it_key_选项卡中,此字段用于获取单个实体时,筛选器位于it_FILTER_SELECT_OPTIONS或IV_FILTER_Strings中也不直接使用这些参数,始终通过IO_TECH_请求访问它们