如何从 SAPUI5 应用程序传递 $filter 参数
How to pass $filter parameters from SAPUI5 application
我正在尝试从输入字段向后端发出请求 link。我的实体集叫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/$metadata?$filter%20=%20Applctn%20eq%20%27kjh%27
可能问题是请求采用这种格式
Screen
而且我想我需要这种格式来将过滤器传递给后端,因为这个过滤器可以在另一个应用程序中使用 Screen
您的 serviceUrl 将是:
serviceUrl: "http://consap2.consit.local:8060/sap/opu/odata/sap/ZACTIONS_SRV/ActionsSet?$filter = Applctn eq '" + oParameter + "'"
oParameter
应该用单引号指定,因为 serviceUrl
包含在 " "
中
我找到了解决方案,这里是 post 查询 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]
});
}
我正在尝试从输入字段向后端发出请求 link。我的实体集叫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/$metadata?$filter%20=%20Applctn%20eq%20%27kjh%27
可能问题是请求采用这种格式 Screen
而且我想我需要这种格式来将过滤器传递给后端,因为这个过滤器可以在另一个应用程序中使用 Screen
您的 serviceUrl 将是:
serviceUrl: "http://consap2.consit.local:8060/sap/opu/odata/sap/ZACTIONS_SRV/ActionsSet?$filter = Applctn eq '" + oParameter + "'"
oParameter
应该用单引号指定,因为 serviceUrl
包含在 " "
我找到了解决方案,这里是 post 查询 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]
});
}