Allowing users to submit confidential requests
Audrey Neet is a Certified Master Anaplanner and Principal Solution Architect at Tru Consulting.
In most use cases, we can rely on selective access to control who has access to what list items in a model. However, there are a few use cases where a stronger level of access is needed, such as access given only to a specific user. This is a perfect use case for user-driven dynamic cell access.
In the example that we will walk through, a user needs to see all requests that roll into their selective access, unless a request has been flagged as confidential. If a request is flagged as confidential, only the requesting user should see it. This is a potential use case in position management, where requests to change positions may need a higher level of access depending on their sensitivity.
This article will cover:
- How to set up user specific dynamic cell access.
- How to make a list item confidential, so it can only be seen by the user who flags it.
Setting up the lists and modules
Identify the list where your requests will be held. Ideally, this would be a numbered list parented to the organizational hierarchy:
Create your module where a request will be flagged as confidential. It should apply to your request list and users, and it should contain two line items: Make Confidential? and Request Item. The Make Confidential? line item will be an input. End users can check this box to make their request confidential. The Request Item line item should be formatted as the request list and will be used in the calculation later.
Next, you’ll want to make your staging module. This module will determine if a request has been marked confidential by any user. It should be dimensioned by your request list, and it will have one line item, which we’ll call Is Confidential?. This line item uses the any formula to check if any user in the model has selected the Make Confidential? boolean in the previous module. The formula is shown below:
The last module is where we will stage our dynamic cell access. It is Anaplan best practice to keep any dynamic cell access in a separate module, which we have here called DCA01 by Position Request and User. In this module, we’ll check to see if a position has been marked confidential. If it has, the dynamic cell access line item will flag false for all users other than the user who made it confidential. If a request has not been marked confidential by any user, the dynamic cell access line item will flag true for all users. (Because the request list is parented to the organizational hierarchy, even if the dynamic cell access line item is true for all users, the request will only be visible to users with the appropriate selective access). You can see the formula in the screenshot below:
Applying the dynamic cell access
The last steps are to apply the dynamic cell access in the input module and apply filtering in the new UX page. We’ll want to open the module where users are inputting requests and apply the line item from the previous step as the write access driver. We do not want to apply a read access driver in this case as users who can’t write to the confidential request should also not be able to read the confidential request.
In the page where the requests are being made, you’ll want to publish the Make Confidential? line item. You’ll also want to filter any grids in the page that are dimensioned by the request list using the same line item that was used for the dynamic cell access.
Conclusion
Anaplan can cover a wide range of access needs. In this article, we covered a specific use case where a user wanted the functionality to make a request confidential. Adding this functionality gives the user confidence that their requests won’t be seen by others, a top priority when dealing with sensitive staffing changes. Similar logic utilizing user-driven dynamic cell access can be applied to many other access needs.