1 Reply Latest reply on Nov 4, 2016 7:11 AM by Simon Runc

    Change parameter value or filter on extract refresh?

    Stephen Rizzo

      Hi all,

       

      I am trying to create one dashboard can be reused for many different clients (50+). Each client needs the Tableau workbook sent to them on a separate schedule containing their data only. All client data is stored in a SQL Server database from which we can create extracts.

       

      The most obvious approach would be to create a copy of the dashboard for each client, each sourcing from a different extract file with a client-specific refresh schedule and filtering on our client ID field; however, any future updates to the dashboard layout would need to be manually replicated in each client-specific copy, which could quickly turn into a maintenance nightmare. Unfortunately while we do have a Tableau Server instance available, clients cannot have direct access to it for security reasons, so user filters are not an option.

       

      Is there a way to alter filter / parameter values when an extract is refreshed? Alternatively, has anyone run into this problem before and found an acceptable workaround?

       

      Thanks,

       

      Stephen

        • 1. Re: Change parameter value or filter on extract refresh?
          Simon Runc

          hi Stephen,

           

          Just looking at some unanswered questions and came across you one...

           

          So yes this can be a bit of a headache...our solution for this was to write some custom script which allows us to have a single "Template" model and then (using our app), roll this out to all the different client sites, where the app switches the database connection string (to that sites client) and triggers a refresh...however this does require server (...and it took, our genius, developer 3-4 months to fully write and test this!...and needs tweaks every server release)

           

          On DeskTop (and viewer), would you be able to use the USERNAME() function? This would mean you'd need the name of each user (as Tableau understands it), and what "client" they could see, which would be brought in as a column in the view. You could then create a field [Database User] = USERNAME(), add that to the filter shelf (or make it a datasource/context filter). This should mean when the user opens the file it will only show them their data. There are, of course some security flaws to this...if a user had a full Desktop licence they could remove that filter and see everyone else's data.

           

          Hope that helps.