User list subsets—a workaround

SachinMohandas
edited December 2022 in Best Practices

Dealing with the Users list has been pretty straightforward with Anaplan. All the users with access to the model come up in the module when used as a dimension.

The Users list is handy when we need to set up end user-specific filters but, unlike general lists, Anaplan does not give us the ability to create a subset of the Users list. One of the use cases which I have come across where a user subset was needed is when building an end user-specific variance reporting, and only a few users will be using the report. Using the entire list is not recommended as it takes up a lot of unnecessary space; A workaround for this is to create a list of your own.

Let’s first take a simple example of setting up end user-specific filters within Anaplan. During setup of end user-specific filters for reports, both the filter selection module and the module with filter check will be dimensioned by the Users list as shown below

sachin_mohandas_15-1604734937219.png

sachin_mohandas_16-1604734937322.png

The report/the module which has to be filtered need not be dimensioned by the Users list, as the filter will be looking at the current user.

sachin_mohandas_17-1604734937216.png

Since the user selection modules and the filter modules do not normally house a lot of dimensions or logic, the size impact of adding the full user list is less, and most of the time unavoidable, as most of the users will be viewing the report.
However, during some scenarios—like variance reporting with user selection to be used by a limited number of users—the need for a subset for users list is quite prominent. Anaplan, however, does not give you the ability to create a subset of the Users list. A workaround for this is to create a list of your own.
Let’s take an example of variance reporting between versions. I have created a custom version list and made use of a line item subset to create a reporting module that shows the variance between two versions (Version A and Version B) selected by the user. Line item subsets are handy when you have to perform “Calculations on Calculation.” Simply put, If you have to perform additional calculations on Line items, like in the case of variance reporting or currency conversions, it’s easier to manage with a line item subset than to go into complex formulas. For more information on Line item Subset, see Line item Demystified.
I went with a custom version list as it can be given as a dropdown for user selection, as shown below.

sachin_mohandas_18-1604734937315.png

The first module is a user selection module given for the users to select the version of their choice for comparison, dimensioned by the user subset list and line items formatted by the custom version list (“Planning Versions”).
As the line item subset is used for building the variance reporting, an intermediate staging module is used for building the base report using the COLLECT() function.

sachin_mohandas_19-1604734937234.png

The final variance reporting module makes use of the intermediate module and looks up the version selected by the user to build the variance report
For such a report where multiple users can change the selection, we would have to dimension both the selection and the report module by users for proper functioning. 

sachin_mohandas_20-1604734937281.pngsachin_mohandas_21-1604734937204.png

When the report module is already having quite a few line items and major lists as dimensions, the additional Users list will have a big impact on the cell count. If the report is to be used by a limited number of users, then the space occupied by adding the rest of the users into the report is, in effect, sparsity.
During these situations, one approach is to create a separate list of users within Anaplan with selective access enabled.

sachin_mohandas_22-1604734937197.png

Each user will be given write access to their own ID/name, and we would be able to use this list as a “Custom User Subset.” 

Admins can automate the process of adding users into the user subset and setting up selective access by creating imports from a system module dimensioned by the native Anaplan Users List.

sachin_mohandas_24-1604734937217.png

You can create a saved view to show only the members that needed to be included in the subset and use the saved view to import list items into the custom users list and also into the Users tab for defining the selective access.

sachin_mohandas_23-1604734937225.png

Importing into list for creating Items: 

sachin_mohandas_27-1604734937243.png

Importing into Users for defining selective access:

sachin_mohandas_28-1604734937284.png
After setting up the user subset, it can be used as a dimension in any of the modules. In our use case, while creating the user selection module and the variance report, instead of using the Users list, dimension it by the custom user list created.

sachin_mohandas_25-1604734937301.png

sachin_mohandas_26-1604734937317.png

Since selective access is enabled, each user sees the version of the report with respect to their selection.
The user subsets help to save space while building end user-specific reports as shown above. We can create a custom users list within Anaplan and define as many subsets as required. So next time when you are going to use the Users list, take a step back and think if we can use a subset instead.
I would love to hear your thoughts and other ways you have made use of the Users list.


Contributing author Richa Pathak.

Tagged:

Comments

  • Nice approach. Unfortunately it puts a serious limitation on the model: selective access can be given only to user's own ID/name in Custom Users List. If later some other task requires to provide user with Read selective access to someone else in Custom Users List (for example, users from one department need to see each others scenarios) - this would not be possible. So you'll need to keep this in mind while making choice between sparsity reduction and limitation of Custom Users List applicability.