Controlling who can refresh data sources
Hi, I am dealing with a client who has some requirements regarding refreshing datasets.
Their situation is this:
- They are/ will be loading large numbers of tables from Salesforce.
- They want to create a schedule to refresh these datasets at specific dates/ times. This they know how to do.
- The important thing is that they want to prevent any user from refreshing a dataset at any other time by any other means. That is either directly, via right click refresh, or by running a Workflow with the refresh datasets option ticked.
The challenge is that, when you create a dataset, there is a "allow auto-refresh" option that appears to be global. So if anyone can access that dataset they can refresh it. It also seems that, if you can share that dataset via a View, it is also possible to refresh it.
So I am after ideas/ best practice around this. There are quite a few possibilities but I am not sure I know the best approach.
STOP PRESS: I was just writing this when the update about version 2.14.2 popped up. This has the ability to directly schedule a dataset refresh (rather than having to create a Workflow to do this). This is really good - would this help I wonder?
Comments
-
I've run into a similar problem in the past, and the new Data Refresh scheduled task (2.14.2) is certainly one solution. By setting up a scheduled task to refresh the data (eg nightly), you can then remove the "allow auto-refresh" option from the Datasets themselves, which will prevent them from being refreshed ad-hoc via workflow execution (including when the refresh is requested via a View).
Another option would be to:
- Load the data in to a Dataset from your external system (auto-refresh allowed)
- Use a workflow's Take Snapshot step to create a copy of the Dataset
- Create and share a view based on the snapshot Dataset rather than the original Dataset.
- Because the snapshot Dataset is not linked to the external system from which the data was originally loaded, it obviously cannot be auto-refreshed
- The downside of this approach is the need for multiple copies of the same data
I don't know of any way currently to allow auto-refresh on a Dataset, but prevent it when the same Dataset is the source of a shared View and the refresh is triggered via the View. This could potentially be a useful new feature, but it may be overly complex.
0