Giter VIP home page Giter VIP logo

tableau-exportpdf's Introduction

Tableau Server - PDF Export

Export d'une vue depuis Tableau Server en fonction des filtres appliqués

Présentation de la solution utilisée

Pour pouvoir exporter une vue dans un fichier PDF en fonction de valeurs d'un filtre, il faut utiliser différentes fonctionnalités de l'API REST de Tableau Server.

Les scripts utilisés par la solution vont donc suivre les étapes suivantes:

  1. Envoyer une requête POST pour se connecter à une instance Tableau server et récupérer un token d'authentification qui va être utilisé ensuite pour tous les requêtes.
  2. Envoyer une requête GET pour rechercher la vue dans le serveur Tableau
  3. Pour chaque valeur du filtre demandée, le script va effectuer une requête GET pour effectuer l'export.
  4. Tous les exports par valeur du filtre sont regroupés dans un seul fichier

Installation et utilisation avec Dataiku DSS

Tous les scripts utilisé dans ce répertoire ont été déployés dans un projet DSS afin qu'ils puissent être utilisés plus facilement.

Pour utiliser les script il faut importer les éléments présents dans le dossier dataiku-dss:

  1. Importer le plugin depuis l'espace d'administaration dssPlugin_Tableau-APIs__2019_02_15.zip
  2. Importer le projet complet TABLEAUSERVERCONNECTORS.zip

Une fois que les éléments sont importés, vous serez en mesure de faire fonctionner le projet.

Mode d'emploi

Lorsque vous rendez sur le projet, vous devez observer 3 éléments:

  • Un dataset Filter_Values qu'on peut éditer
  • Un plugin Tableau Server - Custom PDF Export qui va faire appel au scripts
  • Un dataset de sortie Exported_files qui contient le nom des fichiers qui ont été regroupé puis envoyés par mail

Avant de démarrer un job il faut tout d'abord éditer le premier dataset en inscrivant dans le nom de la colonne filtre utilisé par la vue tableau ainsi que les valeurs disponibles pour ce filtre dans les lignes.

Dans l'exemple ci-dessous, le nom du champ utilisé par Tableau est Code Fournisseur, je l'ai donc mis comme nom de colonne. J'ai rajouté sur ensuite sur chacune des lignes les valeurs souhaité pour ce filtre.

Attention: Les scripts utilisent uniquement des APIs dont il faut absolument que les nom du filtre et ses valeurs soit identiques (à l'espace près) au nom des champs utilisé sur la vue Tableau afin que les scripts puissent retrouver les valeurs!

Il faut ensuite configurer les paramètres du plugin.

Attention:

  • Le nom de la vue renseigné doit être strictement identique à celle affiché sur Tableau Server
  • Pour que les scripts puissent utiliser l'API, il faut absolument que l'utilisateur Tableau Server renseigné soit administrateur et doit avoir accès à la vue pour laquelle l'export est demandé.

Et enfin, vous n'avez plus qu'à démarrer le plugin.


Organisation du répertoire

├── app ── exportPDF.py   <- Script python à utiliser pour faire l'export PDF
│
├── workbooks  <- Dossier contenant le workbook contenant la vue utilisée pour tester les scripts
│
├── dataiku-dss         <- Dossier contenant l'export du projet sous Dataiku DSS ainsi que le plugin associé
│   │
│   ├── dssPlugin_Tableau-APIs__2019_02_15.zip  <- Export d'un plugin DSS contenant les scripts
│   │
│   ├── TABLEAUSERVERCONNECTORS.zip <- Export du projet DSS pour utiliser les scripts
│
├── extension-tableau   <- Version du projet en javascript (C'est surtout un exemple, l'extension ne fonctionne pas)
│
├── connectors         <- Dossier contenant tous les scripts de connexion à Tableau server
│   │
│   ├── __init__.py           <- Fichier d'initialisation des scripts
│   │
│   ├── config.py           <- Configuration des scripts - A compléter avant de lancer les scripts
│   │
│   ├── tableau.py      <- Fichier python contenant les méthode de connexions à Tableau Server ainsi que l'export et l'envoie d'un fichier PDF par mail
│
├── README.md          <- Documentation du projet
├── requirements.txt   <- Liste des packages python à installer
├── setup.py           <- Configuration du projet
└── set_env.sh         <- Fichier bash qui permet d'automatiser l'installation de l'environnement technique de travail

Fichier de configuration

Avant toute chose il faut compléter avec précaution le fichier de configuration config.py dans le dossier connectors, ce fichier contient les informations de connexion vers Tableau server.

Si des informations sont mal renseignées, les scripts ne pourront pas fonctionner

Mise en place de l'environnement technique de travail en local

  • Télécharger anaconda / miniconda selon votre OS lien version 3.x.

  • Mettre en place l'environnement conda pour le projet

source set_env.sh

Si jamais vous souhaitez créer votre propre environnement

conda create -n tableau python=3.5

Pour activer votre environnement conda:

source activate tableau

Installer un package dans l'environnement

source activate tableau
pip install pandas

Pour faire l'export de votre environnement :

conda env export | grep -v "^prefix: " > environment_OS.yml

Si jamais vous faites des modifications dans le dossier connectors

Exécutez la commande suivante depuis la racine du répertoire du projet pour mettre à jour l'environnement:

pip install .

tableau-exportpdf's People

Watchers

James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.