2016-03-28 3 views
0

У меня есть Desktop Desktop 9.2, Professional Edition. Я хотел бы иметь возможность выполнить запланированное задание, которое откроет рабочую книгу, обновит панель инструментов и создаст PDF-файл. Может ли кто-нибудь предложить способ?Можно ли программно обновить отчет Tableau без сервера Tableau?

UPD. Я наткнулся на подход this, предложенный Dafang Wu.

Мой текущий скрипт AutoIt является

Local $tableaufile = "C:\test.twb" 

WinActivate($tableaufile); 
WinWaitActive($tableaufile); 

Send("!f",0); 
Send("D"); 

WinWaitActive("Print to PDF"); 
Send("{ENTER}"); Send enter key 
WinWaitActive("Save PDF"); 
Send("test unique name"); 
Send("{ENTER}"); 

К сожалению, это не работает: когда я открываю сценарий в SciTE редакторе сценариев и нажмите F5, процесс не выход - я должен Ctrl-Break - и файла PDF нет.

UPD2. Исправлен первый вызов WinWait и переключился на MouseClick - до сих пор нет радости.

Local $tableaufile = "C:\Users\Dimitri Shvorob\Documents\My Tableau Repository\Workbooks\test.twb" 
WinActivate($tableaufile); 
WinWait("Tableau - test", 10); 
Send("!f",0); 
Send("D"); 
MouseClick("Left", 829, 523); 
MouseClick("Left", 1248, 690); 
WinKill("Tableau - test"); 

ответ

0

С помощью Dafang я получил скрипт для работы. Проблема с моими предыдущими попытками заключается в том, что они предназначались для запуска с открытой книгой. (Duh!)

$tableau = "C:\Program Files\Tableau\Tableau 9.2\bin\tableau.exe" 

Run($tableau); 
WinWait("Tableau - Book1"); 
Send("!f"); 
Send("^o"); 

WinWait("Open"); 
Send("Graham"); 
Send("{ENTER}"); 

WinWait("Tableau - Graham"); 

Send("!f"); 
Send("D"); 

WinWait("Print to PDF"); 
Send("{ENTER}"); 

WinWait("Save PDF"); 
Send("Graham Test"); 
Send("{ENTER}"); 

WinKill("Tableau - Graham"); 
0

Вы могли бы сделать то же самое, используя TabCmd как этот

tabcmd login -s http://tableauserver -u *user* -p *password* 
tabcmd export "Project/Dashboardname?:refresh=yes" --width 1920 --height 1080 --png -f "\\server\path\dashboardname.png" 
Смежные вопросы