You can write a script that will call "tabcmd export WORKBOOK/VIEW --filename myFile.pdf --pdf" and this will output the dashboard you specify to a PDF file.
Is it possible to export only after refreshing all extracts? Actually, I have to add a sleep command (i.e. in SAS) to wait (arbitrary delay) until exporting to pdf for example.
Yes, it is possible to do. Below is a sample snippet that will refresh the extracts on a workbook, sleep for 10 seconds (by pinging localhost and waiting 1 sec between pings; change the "10" to however many seconds you want to sleep), export a workbook or view to PDF.
tabcmd refreshextracts WORKBOOK_URL --synchronous
ping 127.0.0.1 -n 10 > nul
tabcmd export WORKBOOK/VIEW --filename myFile.pdf --pdf
Here's the help from "tabcmd help refreshextracts"
Usage: tabcmd refreshextracts [WORKBOOK_URL] [options]
--incremental Do an incremental refresh.
--synchronous Run the refresh immediately in the
--workbook WORKBOOK_NAME The name of the workbook to refresh.
--datasource DATASOURCE_NAME The name of the datasource to refresh.
--project PROJECT_NAME The name of the project containing the
workbook/datasource. Only necessary if
--workbook or --datasource is specified.
--url WORKBOOK_URL The the canonical name that appears in URL
path names for the workbook or the
Thank you Aaron.
Actually, that's what i'm using but setting an arbitrary sleep time isn't an efficient way, especially when you try to optimize the batch's running duration. For example, if I have a report that show's current year's data, the refresh time needed will grow every week; in advance, I can't exactly know how much time it will take to refresh by the end of the year, and on the other hand If I set a large sleep time my entire batch will be impacted and eventually slowed.
I've tried to use this option --synchronous (Run the refresh immediately in the foreground.), but it still gets back to the command line prompt too fast, the ideal behavior will be that this option keeps tabcmd running foreground and gives back the command line prompt only when the refresh is completed.
Can you help me better understand your use case?
Is the data already refreshed on a schedule? If so, would it be possible to mail your PDFs after an set amount of time has paased? For example, refresh at midnight, start the PDF'ing process at 2 or 3 AM?
Would an incremental refresh provide you with the reduced load time you desire?
In order to share PDF snapshots of reports in Tableau Server, do the recipients of the reports have to be a user on the server?
Yes, the data is refreshed on a schedule. I'm alreadt setting an amount of time, but it's not the optimal solution I'm looking for, because that amount can vary along time. An incremental refresh also is not optimal in my case because sometimes older data is also altered by ETL, then I have to perform a full refresh on every schedule.
So it is possible to have a worksheet exported to PDF automatically on a schedule?
Can some one address the issue..
the data is refreshed on a schedule. I'm alreadt setting an amount of time, but it's not the optimal solution I'm looking for, because that amount can vary along time. An incremental refresh also is not optimal in my case because sometimes older data is also altered by ETL, then I have to perform a full refresh on every schedule.
There are two different questions being asked here and Jostna's makes three. The original question has been answered. Jostna, your question here is basically the same question you asked here: How do you trigger tabcmd after an ETL cycle?