Frappe Framework
Google GSuite
On publie un script Apps, on enregistre un client OAuth Drive, puis un modèle GSuite. Attach File génère le document et le joint.
Rôle
Frappe peut prendre un document Google GSuite comme modèle, en produire un nouveau dans un dossier choisi, et le laisser associé au DocType comme pièce jointe. Les variables, au format Jinja2, remplissent le corps et le nom. La génération passe par Attach File. Un usage cité : des contrats remplis depuis un client, un employé ou un fournisseur.
Activer
Si le script par défaut suffit, passez à l’accès Google. Sinon :
- Ouvrez script.google.com, File, New, Project.
- Copiez le code de Desk, Explore, Integrations, GSuite Settings, Google Apps Script, dans un Code.gs vide.
- Enregistrez le projet, puis Publish, Deploy as web app.
- Collez Current web app URL dans Script URL de GSuite Settings. Validez sans fermer le script.
Ensuite, dans la console Google, activez Google Drive API. Créez un identifiant OAuth, type Web Application. L’URI de redirection autorisée est http://{{ yoursite }}/?cmd=frappe.integrations.doctype.gsuite_settings.gsuite_settings.gsuite_callback. Copiez Client ID et Client Secret dans GSuite Settings, puis enregistrez.
Allow GSuite Access redirige vers le choix du compte. En cas d’erreur, vérifiez l’URI : le protocole http:// ou https:// doit être celui du site. L’URI complet est en fin d’URL de la page d’erreur. Run Script test doit demander la permission.
Modèle
Dans le document Google, une variable est {{VARIABLE}}, le nom de champ du DocType. Pour un employé dont le champ est name, écrivez {{name}}. L’identifiant du document est le segment après /d/ dans l’URL. Celui du dossier de destination est le segment après /folders/. Sans dossier, les fichiers vont à la racine de Drive.
Nouveau GSuite Template :
- Template Name, par exemple Employee Contract ;
- Related DocType, par exemple Employee ;
- Template ID, l’identifiant du document ;
- Document name, le nom des fichiers, avec un champ, par exemple
Employee Contract of {name}; - Destination ID, l’identifiant du dossier.
Produire
Ouvrez un document du DocType lié, Attach File, section GSuite Document, choisissez le modèle, Attach. Le fichier généré est déjà joint. Un clic l’ouvre dans GSuite.
Point d’attention
L’exemple de nom de fichier publié utilise {name}, une seule paire d’accolades, alors que le corps du document utilise {{name}}. L’URI de redirection doit reprendre exactement le protocole du site.
