Description:
How do I create an expression that will return the results I expect in a power filter? I created an expression and it gives me data that is unexpected.
Steps to Reproduce:
<Please see attached file for image>
Evaluated Expression: ( ( ( Project Status Indicator = 'Yellow' ) and ( Project Manager = 'User, Resource7' ) ) or ( Project Manager = 'User, Resource9' ) )
Expression: ( project.status_indicator == lookup("INVESTMENT_STATUS_INDICATOR", "2") ) && ( project.manager_id == lookup("BROWSE_PROJMGR", "5004006") ) || ( project.manager_id == lookup("BROWSE_PROJMGR", "5004008") )
<Please see attached file for image>
We want the filter to pick all projects with Status Indicator = Yellow and then give us only those projects that are managed by Resource 7 or Resource 9. What is wrong with this expression?
Solution:
The power filter expression uses logical expressions that may need additional parenthesis for proper evaluation of the expression.
The sequence in creating the power filter affected the construction of the parenthesis.
In this case, the first expression is 'grouped' with parenthesis for evaluating (Status Indicator = Yellow and Manager = Resource 7) and then later the 'OR' condition is added, so it is searching for only records with Manager = Resource 9 and the records for Resource 7 also have a criteria of Status Indicator = Yellow.
When building a Power Filter Expression and you are modifying an existing expression, be sure to check how the expression is constructed with parenthesis. If you are building this expression and you know all the parameters, it is easier to build it in the following sequence:
Steps:
<Please see attached file for image>
<Please see attached file for image>