Requêtes de données

Cette page explique comment envoyer une requête à une source de données compatible avec le protocole de source de données des outils de graphique.

Sommaire

Présentation

Une source de données est un service Web qui prend en charge le protocole de source de données Chart Tools. Lorsque vous envoyez une requête SQL à une source de données, vous recevez un tableau de données contenant les informations appropriées. Google Sheets et SalesForce sont des exemples de sources de données.

Envoyer une requête

Pour envoyer une demande:

  1. Instanciez un objet Query avec l'URL de votre source de données. L'URL doit indiquer les données demandées, en utilisant une syntaxe comprise par cette source de données.
  2. Vous pouvez également spécifier des options de requête telles que la méthode d'envoi en tant que deuxième paramètre facultatif dans le constructeur d'objet Query (consultez le paramètre opt_options du constructeur de requête pour en savoir plus):
  3. Vous pouvez éventuellement ajouter une chaîne dans un langage de requête pour trier ou filtrer les résultats, puis envoyer la requête. Les sources de données ne sont pas obligatoires pour prendre en charge le langage de requête de source de données des outils de graphique. Si la source de données n'est pas compatible avec le langage de requête, elle ignorera la chaîne de requête SQL, mais renverra tout de même une erreur DataTable. Le langage de requête est une variante du langage SQL. Pour en savoir plus sur la syntaxe complète du langage de requête, consultez cette page.
  4. Envoyez la requête en spécifiant un gestionnaire de rappel qui sera appelé à la réception de la réponse. Pour en savoir plus, consultez la section suivante.

Voici un exemple d'envoi d'une demande de données figurant dans une plage de cellules d'une feuille de calcul Google Sheets. Pour savoir comment obtenir l'URL d'une feuille de calcul Google, cliquez ici:

function initialize() {
  var opts = {sendMethod: 'auto'};
  // Replace the data source URL on next line with your data source URL.
  var query = new google.visualization.Query('http://spreadsheets.google.com?key=123AB&...', opts);

  // Optional request to return only column C and the sum of column B, grouped by C members.
  query.setQuery('select C, sum(B) group by C');

  // Send the query with a callback function.
  query.send(handleQueryResponse);
}

function handleQueryResponse(response) {
  // Called when the query response is returned.
  ...
}

Si vous envoyez votre requête à partir d'Apps Script, veillez à utiliser le mode IFRAME.

Traiter la réponse

Votre fonction de gestionnaire de réponses sera appelée lorsque la requête sera renvoyée. Le paramètre transmis à votre fonction de gestionnaire de réponses est du type google.visualization.QueryResponse. Si la requête aboutit, la réponse contient une table de données (classe google.visualization.DataTable). Si la requête échoue, la réponse contient des informations sur l'erreur, mais pas de DataTable.

Votre gestionnaire de réponses doit procéder comme suit:

  1. Vérifiez si la requête a réussi ou échoué en appelant response.isError(). Vous ne devriez pas avoir besoin d'afficher de messages d'erreur à l'utilisateur. La bibliothèque Visualization affichera un message d'erreur dans votre conteneur <div>. Toutefois, si vous souhaitez gérer les erreurs manuellement, vous pouvez utiliser la classe goog.visualization.errors pour afficher des messages personnalisés (consultez l'exemple de wrapper de requête pour obtenir un exemple de gestion personnalisée des erreurs).
  2. Si la requête aboutit, la réponse inclura un DataTable que vous pouvez récupérer en appelant getDataTable(). Transmettez-la à votre graphique.

Le code suivant illustre le traitement de la requête précédente pour dessiner un graphique à secteurs:

function handleQueryResponse(response) {

  if (response.isError()) {
    alert('Error in query: ' + response.getMessage() + ' ' + response.getDetailedMessage());
    return;
  }

  var data = response.getDataTable();
  var chart = new google.visualization.PieChart(document.getElementById('chart_div'));
  chart.draw(data, {width: 400, height: 240, is3D: true});
}

Lire des fichiers CSV

Si vous souhaitez créer un graphique à partir de données CSV (valeurs séparées par des virgules), deux possibilités s'offrent à vous. Convertissez manuellement les données CSV au format de table de données Google Charts ou placez le fichier CSV sur le serveur Web diffusant le graphique, puis interrogez-le à l'aide de la technique décrite sur cette page.

En savoir plus