This documentation is for an older version of GoodData.
Go to the latest version of this article.
Dashboard Export
Create dashboard exports or automate your pipelines. Can be for example be used to report .pdf via e-mail each week.
Methods
Example
from gooddata_sdk import GoodDataSdk
import schedule
import smtplib
from os.path import basename
from email.mime.application import MIMEApplication
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
from email.utils import COMMASPACE, formatdate
# GoodData base URL, e.g. "https://www.example.com"
host = "https://www.example.com"
token = "<your_personal_access_token>"
sdk = GoodDataSdk.create(host, token)
def send_mail(send_from, send_to, subject, text, files, server):
msg = MIMEMultipart()
msg["From"] = send_from
msg["To"] = send_to
msg["Date"] = formatdate(localtime=True)
msg["Subject"] = subject
msg.attach(MIMEText(text))
# Open CSV / XLSX file(s) and add it to email attachment
for f in files or []:
with open(f, "rb") as fil:
part = MIMEApplication(
fil.read(),
Name=basename(f)
)
part["Content-Disposition"] = "attachment; filename=\"%s\"" % basename(f)
msg.attach(part)
smtp = smtplib.SMTP(server)
smtp.sendmail(send_from, send_to, msg.as_string())
smtp.close()
def export_tabular():
# Export a particular visualization in the desired format (CSV / XLSX)
sdk.export.export_tabular_by_visualization_id(
workspace_id = "demo",
visualization_id = "revenue",
file_format = "CSV",
file_name = "revenue_export.csv"
)
send_mail(
send_from = "your@email.com",
send_to = "to@email.com",
subject = "Scheduled export",
text = "Scheduled export of dashboard 'dashboard_overview'",
# Name of exported file from the method call 'export_pdf'
files = "revenue_export.csv",
server = "<your_smtp_server>"
)
# Schedule call to export visualization in CSV and sent via e-email every morning at 8:00.
schedule.every().day.at("8:00").do(export_tabular)