Tableau Cloudでtabcmdを使ってPDF一括出力する
概要
Tableau Cloudでパラメータを変更し、条件を変えながら自動でPDFを作成する方法を解説します。
エリア別、店別、人別など、PDFなどで出力して配布する場合に便利な機能です。
注意事項
パーソナルアクセストークンを使ってTableau Cloudにログインする方法です。
トークンが分かれば、サイト内のコンテンツを削除することも可能です。トークンの管理は厳重に行ってください。
事前準備
tabcmdのダウンロード
以下のサイトにアクセスし、最新版のtabcmd.zipをダウンロードします。
パーソナルアクセストークンの作成(PAT)
Tableau Cloudにログインし、右上のアイコンから「マイアカウントの設定」に移動します。
画面中段にスクロールし、「トークンを作成する」をクリックすると、個人用アクセストークンが生成されます。
※クリックできない場合、管理者が設定をオフにしているか、権限がありません。管理者に問い合わせてください。
トークンが生成出来たら、トークンをコピーして保存してください。
コマンドの作成
以下のサイトを参考に、コマンドを作成します。
Tableau Cloudへのログイン
以下はTableau Cloudへのログイン方法の例です。
tabcmdはCドライブ直下の tabcmd フォルダに保存した想定です。
Tableau Cloudのリージョンは日本です。
C:\tabcmd\tabcmd.exe login -s https://prod-apnortheast-a.online.tableau.com/ -t "サイト名" --token-name "トークン名" --token-value "パーソナルアクセストークン名"
サイト名はTableau Cloudにログインし、以下のようにURLで確認することができます。
https://prod-apnortheast-a.online.tableau.com/#/site/[ここがサイト名]/
コマンドを入力し、以下のように表示されたらログイン成功です。
エクスポートするコマンド
以下のコマンドで出力することができます。
C:\tabcmd\tabcmd.exe export "[対象のシート・ダッシュボード名]?[パラメータ1名]=[パラメータ1の値]&[パラメータ2名]=[パラメータ2の値] -–pdf -f “[保存するディレクトリ名]”
ワークシート・ダッシュボード名はTableau Cloudで開いたときに分かります。
https://prod-apnortheast-a.online.tableau.com/#/site/[サイト名]/views[/ワークブック名/シート名]
viewsより後ろのスラッシュから後を入力します。
シート名の後は?を付け、パラメータ名とパラメータの値を入力します。
パラメータを複数入力したい場合、&を付けて増やします。
パラメータを変える場合、Excelでコマンドを作ると楽です。
設定したらコマンドプロンプトを実行しましょう!
その他注意点
個人用アクセストークンを15日間利用がないと無効になる
15日間利用がないとトークンの期限が切れます。
月1回しか出力しない場合、毎回トークンを設定する必要があります。
(セキュリティのことを考えないならタスクスケジューラでログインするコマンドを自動実行させる方法もあり)
また、期限は最大で365日です。(デフォルトは180日)
パラメータは英語・数字が楽
パラメータ名は英語表記の方が楽でオススメです。
日本語を扱う場合、URLで扱える形式にエンコーディングする必用があるので大変です。
Excelでエンコードする場合はENCODEURL関数を使うと日本語をエンコードしてくれます。
パラメータでカラムを指定した場合、全シートに対してフィルターがかかる
Tableauのパラメータだけでなくカラムに対しても指定することができます。
ただし、カラムを指定した場合はダッシュボードにある全シートに対してフィルターがかかります。
ワークシートの設定で「特定のシート」を選択していても、全シートに掛かります。
特定のシートにだけフィルターをかけたい場合、パラメータを使いましょう。
キャッシュが残る場合がある
TabcmdでPDFを作成した直後にデータソースを修正しても、PDFに反映されない場合があります。
おそらくキャッシュが残っているものと思われます。
どれぐらいキャッシュが残るかは不明ですが、時間を置いてから再度実行してください。
キャッシュをクリアするコマンドはありますが、うまく行きませんw
エクスポート時にサイズ設定ができない
tabcmdの未解決の問題として、サイズ設定ができません。
以下は2024/4/25時点で未解決の問題です。
PDFのサイズはレターサイズ
PDFの出力サイズはTableauの初期値であるレターサイズで出力されます。
縦横比が少し違うので、ダッシュボードのサイズに注意してください。
A4 1 : 1.414
Letter 1 : 1.294
日本語化できない
日付や曜日の表記が英語になる場合があります。
これもコマンドにパラメータを追加することで設定できるようですが、私の環境ではうまくいきません。
バージョンアップしてくれることを祈りましょう。
おわり
うまく自動化できましたか?
パーソナルアクセストークンの取り扱いには十分注意し、業務を楽にしていきましょう!