SAP UI5 oData2模型使用read方法对非键字段错误

时间:2016-07-02 15:33:06

标签: model odata sapui5

我正在尝试使用SAP UI5和oData 2 Model从Employee表中读取数据。我正在使用带有主键的oData模型的Read方法,它运行良好但是当我尝试使用非关键字段时,它会收到错误消息

  

没有关键属性' Employee_Name'存在



oModel.read("/Employee_Service(Employee_ID=2)", {
success: function(oData, response) {
alert("Success!");
},
error: function(response) {
alert("Error");
}




此处Employee_ID是主键,此代码运行良好。

oModel.read("/Employee_Service(Employee_Name='Bob')", {
success: function(oData, response) {
alert("Success!");
},
error: function(response) {
alert("Error");
}

如前所述,此代码出现错误。

你能帮我解决一下这个问题吗?

2 个答案:

答案 0 :(得分:2)

只能以这种方式访问​​分配为主键的属性:

$scope.results.pagination "=" searchService.formatResults(es_return.hits.hits);

要使用其他属性访问记录,您可以使用Employee_Service(Employee_ID=2) 查询选项。

  

$ filter系统查询选项允许客户端过滤请求URL寻址的资源集合。使用$ filter指定的表达式将针对集合中的每个资源进行评估,并且只有表达式求值为true的项才会包含在响应中。

所以你的网址将是这样的:

$filter

答案 1 :(得分:0)

我发现了一篇帮助我解决问题的文章。我尝试这个应该工作,但我不知道为什么它会出错。但是,如果任何人可以帮助我找到我的第一种方法的答案(如上所述),总是欢迎。这是我做的解决方案。

var la_filters = new Array();
var lv_Filter = new sap.ui.model.Filter({
path: "BOWTIE_CLASS",
operator: sap.ui.model.FilterOperator.EQ,
value1: bowtieClass
});

la_filters.push(lv_Filter);

oModel.read("/Employee_Service", {
filters: la_filters,
success: function(oData, response) {
alert("Success");
},
error: function(response) {
alert("Error");

}
  

我在此处找到的提示网址https://scn.sap.com/thread/3781251