Retour à toutes les applications
Google Apps Script

Google Apps Script

Retrouvez nos trucs et astuces Google Workspace classés par application.

3 astuces trouvées
Débutant Gérer les configurations de script avec ScriptProperties

Stockez et accédez facilement aux paramètres de configuration de vos scripts Google Apps Script sans modifier le code, en utilisant le service ScriptProperties.

Plutôt que de "hardcoder" des valeurs comme des IDs de feuilles, des adresses email d'administrateurs ou des seuils, utilisez le service PropertiesService. Cela facilite la maintenance et le déploiement de vos scripts dans différents environnements.

Définir une propriété :
function setMyConfig() {
  const scriptProperties = PropertiesService.getScriptProperties();
  scriptProperties.setProperty('ADMIN_EMAIL', 'admin@example.com');
  scriptProperties.setProperty('SHEET_ID_DATA', '1ABC...XYZ');
  Logger.log('Propriétés définies.');
}

Récupérer une propriété :
function getMyConfig() {
  const scriptProperties = PropertiesService.getScriptProperties();
  const adminEmail = scriptProperties.getProperty('ADMIN_EMAIL');
  const sheetId = scriptProperties.getProperty('SHEET_ID_DATA');
  Logger.log('Email Admin : ' + adminEmail);
  Logger.log('ID Feuille : ' + sheetId);
}

Vous pouvez également gérer ces propriétés via l'interface utilisateur d'Apps Script : ouvrez votre script, cliquez sur l'icône en forme d'engrenage "Paramètres du projet" (Project Settings), puis faites défiler jusqu'à "Propriétés du script" (Script properties). Vous pouvez y ajouter, modifier ou supprimer des propriétés manuellement.
Gérer les configurations de script avec ScriptProperties
Intermédiaire Mettre en place une gestion d'erreurs robuste avec notifications

Assurez la fiabilité de vos scripts Apps Script en implémentant une gestion d'erreurs avec des notifications automatiques par email en cas de problème.

Pour des scripts exécutés de manière autonome (déclencheurs, Web Apps), une gestion d'erreurs efficace est vitale. Utilisez des blocs try...catch et envoyez des notifications par email pour être alerté immédiatement.

Exemple :
function myMonitoredFunction() {
  try {
    // Votre code qui pourrait potentiellement échouer
    const sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Données');
    if (!sheet) {
      throw new Error('La feuille "Données" est introuvable.');
    }
    // ... le reste de votre logique ...
  } catch (e) {
    const scriptName = ScriptApp.getProjectKey();
    const functionName = arguments.callee.name; // Ou simplement 'myMonitoredFunction'
    const adminEmail = 'votre.email@example.com'; // Ou stocké dans ScriptProperties

    const subject = `[ERREUR GAS] ${scriptName} - ${functionName}`; 
    const body = `Une erreur est survenue dans le script "${scriptName}", fonction "${functionName}" :

Message : ${e.message}
Nom : ${e.name}
Fichier : ${e.fileName}
Ligne : ${e.lineNumber}
Pile : ${e.stack}`;

    MailApp.sendEmail(adminEmail, subject, body);
    Logger.log(body); // Pour le journal d'exécution
  }
}

N'oubliez pas d'autoriser le script à envoyer des emails lors de la première exécution.
Mettre en place une gestion d'erreurs robuste avec notifications
Intermédiaire Optimiser les performances avec les opérations par lots

Réduisez drastiquement le temps d'exécution de vos scripts Google Apps Script en utilisant des opérations par lots pour interagir avec les services Google.

Lorsque vous manipulez des données dans Google Sheets, Docs ou d'autres services, il est crucial d'éviter les appels individuels répétés à l'API. Chaque appel a une latence. Au lieu de cela, utilisez des opérations par lots.

Mauvaise pratique (lent) :
function slowUpdate() {
  const sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
  for (let i = 1; i <= 100; i++) {
    sheet.getRange(i, 1).setValue('Value ' + i);
  }
}

Bonne pratique (rapide) :
function fastUpdate() {
  const sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
  const data = [];
  for (let i = 0; i < 100; i++) {
    data.push(['Value ' + (i + 1)]);
  }
  sheet.getRange(1, 1, data.length, data[0].length).setValues(data);
}

Cette astuce est applicable à presque tous les services Google Workspace. Collectez vos données, puis effectuez une seule opération de lecture ou d'écriture en bloc.
Optimiser les performances avec les opérations par lots