我尝试从输入字段到后端建立请求链接。我的实体集叫做ActionsSet,实体集的属性是Applctn。我想通过Filter运算符EQ从输入字段传递参数。我无法弄清楚正确的方法。这是我的代码段。
onPress: function() {
var oParameter = this.getView().byId("inp").getValue();
if (oParameter == '') {
var msg = 'Fill it!';
MessageToast.show(msg);}
else{
var oModel = new sap.ui.model.odata.v2.ODataModel("<SERVERURL>/sap/opu/odata/sap/ZACTIONS_SRV/ActionsSet?$filter = Applctn eq '" + oParameter + "'");
}
好吧,所以我让它变得更简单。但我有这个错误400 Bad request as
/ ZACTIONS_SRV / ActionsSet / $元数据?$滤波器%20 =%20Applctn%20当量%20%27kjh%27
也许问题是请求是这种格式 Screen
我想我需要这种格式来传递过滤器以便后端,因为此过滤器适用于另一个应用Screen
答案 0 :(得分:1)
我找到了解决方案,这是如何将查询发布到OData服务的正确方法:
onPress: function() {
var oParameter = this.getView().byId("inp").getValue();
if (oParameter == '') {
var msg = 'Fill it!';
MessageToast.show(msg);}
else{
var oModel = new sap.ui.model.odata.ODataModel("<SERVERURL>/sap/opu/odata/sap/ZACTIONS_SRV/");
var Filter = new sap.ui.model.Filter('Applctn', 'EQ', oParameter);
oModel.read("/ActionsSet", {
filters: [Filter]
});
}
答案 1 :(得分:0)
您的serviceUrl将是:
serviceUrl: "http://consap2.consit.local:8060/sap/opu/odata/sap/ZACTIONS_SRV/ActionsSet?$filter = Applctn eq '" + oParameter + "'"
oParameter
应在单引号中指定,因为serviceUrl
中包含" "