1 of 1 people found this helpful
Yes, you can trigger extracts by numerous methods. We do all of these.
- Your upstream source system can issue a tabcmd login and then a tabcmd refreshextract after it is done with what it needs to do.
- New as of 10.3, a call can be issued via the REST API to run an extract. https://onlinehelp.tableau.com/current/api/rest_api/en-us/help.htm#REST/rest_api_ref.htm#Run_Extract_Refresh_Task%3FTocP…
- You can have a script that runs within your TS deployment that issues a tabcmd, but waits for a signal from your upstream system. Look at WAITFOR Waitfor - delay in seconds - Windows CMD - SS64.com
There are lot of third party tools that will help you get to the solution that you are looking for. We use Active Batch to trigger Tableau Refresh using tabcmd.
Active Batch is a mediator between Source system & Tableau.
Appreciate your response.
I've been working on Tableau desktop for quiet some time now and recently started learning more about Tableau server. If it's not too much can you please provide like a brief step by step process from scratch on how to automate the scheduling.
Here is what I have so far:
- Teradata is our data warehouse.., we write a Sql query first then create an extract and publish on Tableau server and schedule it to run once a day and our Dashboards refreshes everyday in the morning 4am. Issue we are facing is- Most of the times our source jobs delay and runs after 4am which means we wont have any latest data available in our Dashboards where users have to wait for next day 4am job to run to see data.
I was wondering if we could write a script (Not sure where we write this script) which looks for source refresh and automatically refreshes the Dashboard.
Once again thank you for taking time in answering my question.
One way of doing it is to have your the scheduler that does the ETL / SQL for Teradata to issue the tabcmd login and tabcmd refreshextract.
If this is not possible, then another way of doing it is like below, do you happen to know Python or willing to learn?
Using a combination of checking the max date and then triggering the extract refresh, I think it can be done.
Part 1: Checking the max date on the db table and compare to a local stored copy of this date. Either write out 'already processed', 'still waiting' or 'proceed'
Part 2: The section of part1 where it's time to proceed, follow the instructions here. I hadn't seen this done in Python before, but it seems like it should work https://tableauandbehold.com/2016/08/29/triggering-extract-refreshes-with-tableau_tools/
Part 3: Trigger part1 and part2 via a command script that can be scheduled within task scheduler or a more Enterprise based scheduler