How to use the field Equals of the List Operation Filter?

1
Hi to all of you! I put a Filter Operation in my microflow (Activity -> List Operation -> "Filter"). Now the "Equals" field can't be empty, of course. But which expressions are accepted in this field?  Just in case someone may have an idea - my goal is to create a general button for several units on a page to filter a list on another page for each of those units. E.g. By clicking on the button of "Marketing" or "Finance" I want to retrieve an already filtered list of this unit on another page. Maybe someone knows whether this is even possible through the "Equals" field and in case it is, how it can be expressed that the clicked Unit is passed to the other page and on that page, that the list of units is immediately filtered by the passed Unit. This is the "equals" field I don't know the expressions for: This is the page containing the units and the button "Open Planning" that should pass you to the "Planning page" and filter the data by the clicked unit, e.g. Finance: And this is the Planning Page, where - after clicking the button on the Units-Page - the list should be filtered by "Finance" (but isn't on the screenshot, "Marketing" is also displayed which shouldn't be the case): Many thanks to all of you who might have an answer for me, especially regarding the filling of the "Equals"-field! Laura
asked
3 answers
4

Hi Laura,

The filter activity on list can be performed in two ways,

1. To filter the list based on the attribute match - Say you have a list of objetcs of EntityA with attribute "AValue(String)"

In this first method, you select AValue in Memeber and what goes into Equals is say you have an object of EntityB with attribute "BValue(String)" then you pass it as $EntityB/BValue - This will filter your EntityA list whose AValue = BValue.

2. To filter the list based on associated objects - Say you have two enitities EnitityA and EntityB. One EntityA object is associated to multiple EntityB objetcs

In this you select the Association in the member and what goes into Equals is the object of type EntityB which you should have retrieved earlier as $EntityBObject - This will filter out the list of EntityA objects that are only associated with $EntityBObject.

So in your case the second method you would have to retrieve the "Finance" or "Marketing" object from DB with necessary Xpath and pass this retrieved object to the equals.

 

I hope this works for you. Thanks

 

EDIT: Adding some info with respect to the answer above the 2nd method can be one associated object or a list of associated objects as well. :)

 

EDIT2: So in your scenario the association between Planning and OrganisationalUnit seems to be a many-many type. PFB the hack(:P) for your MF. Since the association is returning a List of OrganisationalUnit (many-many) you would need to compare it with  (pause) a OrganisationalUnit List ofcourse. But you have only one OrganisationalUnit being passed as input param. If you see the below MF I have created a temp list of type OrganisationalUnit and added this input param to the list then passed the temp list to compare in equal. Check the end filtered PlanningList if that's the list you are looking for. Should be hopefully. Good Luck

 

answered
6

Hi Laura,

The 'Equals' field can hold any attribute, Object, List or 'static value'

Examples:

Static value:

 

Attribute:

Association which equals with an object:

Association which equals to a list of objects:

In your case you'd need to have a list of OrganisationalUnits to put in your Equals statement if that makes any sense

Hope this helps you a bit!

answered
-1

Hi Abhishek, that really helps me! But as I am an absolute beginner, I am not sure how to write that down to the "Equal" field. 

I did as you said: I retrieved the object from DB with Xpath. But still I get an error message when I try to integrate the passed Object into the Equal field. I suppose I do have an error in the logic but I am not able to find it. I already tried out lots of expressions but none will work...

That's my microflow:

And this is what I typed for filtering the data (The error message when I only write down $OrganisationalUnit - which is the object to pass - is the following: " The microflow expression is of type Module.OrganisationalUnit but should be of type List of Module.OrganisationalUnit."):

answered