Project Griffon: Digging into Custom Views (ish)
With Project Griffon, we want to share examples and started with you – the Tableau Community. The objective here is to share tools which use what you have in front of you to help explain more about what’s going on. Please be sure to read the introduction to Project Griffon, and ensure that you have access to the Tableau Server Repository via the Postgres connection.
Custom Views: perhaps one of the most underused, underrated Tableau Server features
Custom Views are awesome. Whenever I run Tableau Server Essentials (or even Optimising Tableau Server), I always make a point of showing off the power which customised views provide. Custom Views save a snapshot of filters, highlights etc which you might set up. It – as the name might suggest – customises a view.
My colleague Emma Whyte put me in touch with Jonathan Drummey, who had mentioned he was looking for something which allows him (and his boss) to be able to see which Custom Views existed, and who had created them. The reason this in particular is interesting is Custom Views can either be public or private – so for an admin, understanding how people are and who is using the Tableau dashboard or view.
The datasource used here is one which is built by me – I’m sure I’m missing some undocumented tables, but this structure does meet the criteria set.
The objective was to be able to dig into which workbooks had Custom Views, whether they were public or private, and then to be able to go to them to have a look.
After I show the workbook here, I’ll dive into the many caveats which (mainly) Jonathan and I found when building these out.
The workbook, as ever can be found here:
Don’t forget to change the repository details in the datasource details window, adding your password of course.
Please do share your feedback and experiences, and stay tuned for more #ProjectGriffon goodness!
ADDENDUM: The Caveats/Things to be aware of…
Again, props to Jonathan for working with me on this. The first iteration of the viz had a URL action which wouldn’t work (or rather, even for Server Administrators, wasn’t loading the correct views) – after some digging, this was seen to be down the URL was constructed. Jonathan, being the Hall of Fame Zen Master he is, built out this calculation to get around that problem:
TRIM([Server URL]) + IF ENDSWITH(TRIM([Server URL]), '/') THEN '' ELSE '/' END + "#/site/" + [Url Namespace] + "/views/" + [Repository Url (Workbooks)] + "/" + [Sheet Id] + "/" + [Name (System Users)] + "/" + [Url Id]
Some nice points to mention to developers also came out of our investigations:
- When navigating to custom views, sometimes it would either default to ‘View: Original’ even if the customised view was showing
- The Repository held some shadow/legacy/weird lookin’ outputs for views which either didn’t have a name, or were deleted; we weren’t able to workout which was which (see imagine below) — My personal theory was wondering if it was a proxy of the fact we’re using URL parameters (ie. adding to the URL) than actually interacting with the Viz Portal element to the Custom Views
- Working out Traffic to Custom Views was tricky – Jonathan took Matt Coles’ TS Web Requests datasource and focussed on the ‘get_customised_views’ Action – however, this wasn’t as robust, I think because of the way Tableau may use that action to trigger subscriptions? Jonathan’s working theory is that there needs to be one extra join into the customized_views table in order to parse out the Action.
If we’re able to find out anything more, I’ll update this post with additional findings.