Scenario is need to filter the data based upon user access to certain business unit id,forum id.Business unit id's are different sectors of business and they are mapped to certain forum id's.Business unit can have duplicate forum id's.
they are stored in table like
19 also has records with 103,114 forum id but we need records on the above mapping but when we try to filter it out by querying and storing in a local variable not able to filter out records for mapping of(19-114,19-103).
local!buid(filter:userid),
local!forumid(filter:userid,buid),
In a interface we are using a record type in data and in filter we are using logical expressions.
Discussion posts and replies are publicly visible
first you will get business ids by user
local!businessIds : filter by user.
Then to get all forum ids : filter by local!businessId so that you will get all the forum ids which are tied to the business unit which user has access to it.
in current code
local!existinguser buid,
local!forumid,
logicalexpression(
filter(recordtype!field.buid,
in,
local!existinguser buid,)
then same for forum id )
issue is appian filters in business unit id column are returning all records of 4,19 and all the possible cases of (4-80,103,114) and
(19-80,19-103,19-114) but we need (4-80,103,114) and 19-80
Then to get all forum ids : filter by (local!businessIds and user id)
will give possible combination of 117 user id and (4 or 19) bussiness ids.
ashutoshs0007, The data must be incorrect. If you get all the businessIds by userid first and then get the forum ids by businessIds you will get the desired result set. On top that any other conditions can be applied further.
Did you consider using record security rules?
Instead of doing all this go with Record security. It's the easy way around i guess