User filter-User Mapping

Hey,

I have been stuck on this particular issue for sometime now, wanted to check if someone here could help me out:-
I wanted to filter list items of List A for the end user based on a non system users list subset.

I have a module 1 dimensioned with list A, one of the line items in that are list formatted to a non native users list subset (Approver). So basically every list item of list A will have its own user selected from the non native users list subset, Approver. 

I have module 2 also dimensioned by list A, wherein in the dashboard I want to ONLY show the current user those listitems based on the 'Approver' line item in module 1.

Example, If List A has list items like Apples, Oranges and Banana. And if XYZ has been selected as approver for Apples and Banana in Module 1.
When XYZ logs on to module 2, XYZ should only see Apples and Banana. The user allotted with Oranges should not see Apples and Bananas.

How can i create a filter wherein the current user using the dashboard is checked with the Approver line item. It would be really helpful if someone can help me figure this, thanks!





Best Answer

  • Ultimately, what we are looking to create is a filter module dimensioned by native user and List A. To do this we can use SUM function and a native user list formatted line item in module 1. 

    The tricky part is converting the Approver list line item in module 1 into a Native User list line item. 

    The easiest option is to create another user mapping module. This time dimensioned by the fake user list. Add a line item dimensioned by the native user list and select the corresponding user for each list item in the fake user list. 

     

    Once you have this mapping we can use LOOKUP to derive the native user list line item in module 1. 

     

    For the filter module create a new module dimensioned by native users and List A. Add a boolean formatted line item.

    Use the following;

    =NOT Module 1.Total Summary[SUM:Module 1.Native User List]<> 0

    This will result in a TRUE outcome for all combinations of user and List A which is NOT zero for the selected line item. If you do not already have a total it may be worth adding this to module 1.

     

    You can then use this module to filter any other module where List A is a dimension. When mapping the user dimension in the filter settings select 'Current User'.

Answers

  • @Sachinsourav02 

     

    I don't think there is any function which will help you to find out who is the current user even if you use Native User dimension.

     

    To your question I would think of these two options

    1. Use Selective Access on the List A dimension, so instead of mapping it in the module you use Selective Access and Users will have access to only those list items

    2. Use Native User list as a dimension in the source module along with List A and then create a filter module/line item and use the filer in the target module (It will Current User based on the source module selection)

     

    Hope that helps

    Misbah

  • But both Module 1 and Module 2 have just one dimension which is list A, these modules are being references in many other places, they are more like source modules. So adding users or the fake users subset which i did consider is not really an option. Is there any other workaround or fixes that you can think of ?

  • @Sachinsourav02 

    Do not make any changes to these source modules. 

    Instead create a new module, dimensioned by native users list. 

    Using a user list mapping where each Approver is mapped into a native user pull across the data in module 2 into each native user list item in this new module.

    Publish this to a dashboard. 

    The native user list will default to the current user. 

    You can use a filter to remove all list items which are equal to zero. 

  • @ChrisAHeathcote  

    Hi

    Could you please explain the second part, i didnt get that quite right,

    So i Created a module dimensioned with users, created a line item called match (list formatted to Approver/fake user list) then selected the appropriate approver to his or her own original user id. 

    Is that correct ? How do i link this back to module 2 which does not have any dimensions apart from list A

    could you please guide me on this, thanks

  • A correction to the formula above.
    It should be;
    =NOT Module 1.Total Summary[SUM:Module 1.Native User List] = 0