Skip to Content

ODataTreeBinding: Filters have no effect

Hello,

I have a sap.ui.tableTreeTable and create a row binding.

var oTable = new sap.ui.table.TreeTable({
                columns: [
                          new sap.ui.table.Column(...),
                         ...
               ],
               rows: {
                     path: "/ScenarioCategories",
                     filters: [new sap.ui.model.Filter("ScenarioType", sap.ui.model.FilterOperator.EQ, "Fiori")],
                     parameters: {
                          expand: "Scenarios",
                          navigation: {"ScenarioCategories": "Scenarios"}
                     }
                }
});
oTable.setModel(new sap.ui.model.odata.ODataModel(sUrl);

However, the filters are getting ignored (are not part of the URL which is requested in background).

I've checked the SAPUI5 code in 1.28.7 and didn't find any code that would add it to the request.

There is nothing in .getRootContexts, nothing in ._getContextsForNodeId ($expand is added here for example) and nothing in ._loadSubNodes

I've also checked the .v2 version of ODataTreeBinding with same results.

Could you please fix this issue?

Only location where it is actually considered is in the .getDownloadUrl of .v2.ODataTreeBinding

Thanks,

Fabian

Add a comment
10|10000 characters needed characters exceeded

Assigned Tags

Related questions

1 Answer

  • Best Answer
    Posted on Jun 10, 2015 at 07:05 PM

    ODataTreeBinding.prototype.filter = function(aFilters){

    jQuery.sap.log.warning("Filtering is currently not possible in the ODataTreeBinding");

    return this;

    };

    ....

    ODataTreeBinding.prototype.getDownloadUrl = function(sFormat) {

    var aParams = [],

    sPath;

    if (sFormat) {

    aParams.push("$format=" + encodeURIComponent(sFormat));

    }

    // sort and filter not supported yet

    /*if (this.sSortParams) {

    aParams.push(this.sSortParams);

    }

    if (this.sFilterParams) {

    aParams.push(this.sFilterParams);

    }*/

    Add a comment
    10|10000 characters needed characters exceeded

Before answering

You should only submit an answer when you are proposing a solution to the poster's problem. If you want the poster to clarify the question or provide more information, please leave a comment instead, requesting additional details. When answering, please include specifics, such as step-by-step instructions, context for the solution, and links to useful resources. Also, please make sure that you answer complies with our Rules of Engagement.
You must be Logged in to submit an answer.

Up to 10 attachments (including images) can be used with a maximum of 1.0 MB each and 10.5 MB total.