cancel
Showing results for 
Search instead for 
Did you mean: 

How to apply multiple filter in oData.read()

Former Member
0 Kudos

Hi Friends,

I need help in filter in to read oData. I need filter as following while performing oModel.read().

(

((USERID EQ 'KSA') OR (USERID EQ 'KSW'))

AND

((USERID NE 'KUMARNISH2') OR (USERID NE 'KUMARNISH3'))

)

If you see here there are multiple OR operation and atlast all are AND with each other.

I has following code:

var filters = [];

  // var filters_ne = [];

  var filter;

  for (var i in employee){

  var token = employee[i].getText();

  if(token.startsWith("=")){

  //equal to

  filter = new sap.ui.model.Filter("UserID", "EQ",token.substring(1));

  filters.push(filter);

  }else if(token.startsWith("!")){

  //not equal to

  var notUser = token.substring(3);

  notUser = notUser.substring(0,notUser.length-1);

  filter = new sap.ui.model.Filter("UserID", "NE",notUser);

  filters.push(filter);

  }else{

  //between

  var userid = token.split("...");

  filter = new sap.ui.model.Filter("UserID", "BT",userid[0],userid[1]);

  filters.push(filter);

  }

  }

  // filters.push(filters_ne);

  // var allFilter = [];

  // allFilter.push(filters_eq);

  // allFilter.push(filters_ne);

  // var filters = new sap.ui.model.Filter(allFilter, true);

  this.getView().getModel().read("/I_Userdetails",{

  filters :filters,

  success : jQuery.proxy(this.updateUserData,this),

  error : this.failed

  });

Accepted Solutions (0)

Answers (1)

Answers (1)

Former Member
0 Kudos

Hi,

Check weather this helps,

https://scn.sap.com/thread/3762752

Regards,

Pradeep

Former Member
0 Kudos

Hi Pradeep,

Thanks for your replay, but if you will see I need different type of filter, see below:

(Filter1 OR Filter2) AND (Filter3 OR Filter4)

All filters are in Same column.

Best Regards

Nishant Kumar

Former Member
former_member185414
Active Contributor
0 Kudos

Hello,

Your requirement is not very clear. Please elaborate with some data. I believe your core filter logic can be simplified.

BR.