Au hasard de vos essais, vous avez peut-être trouvé comment générer des fichiers avec AppSheet. La mécanique est simple : le fichier est généré puis rangé dans votre Drive.
Mais comment le récupérer ensuite ? C’est ce que nous allons voir dans cet article.
Etape 1 : Préparer la structure de la table avec la colonne File
Pour cela, nous avons d’abord besoin de préparer une colonne de type File dans la table voulue.
Par souci de commodité, on la nommera également “File”.
Il faut ensuite mettre en place un bot pour créer le PDF.
Etape 2 : Mettre en place le Bot de génération
Sur ce bot, le processus appelé doit comporter au moins deux actions :
- le nommage du fichier avec son chemin relatif selon l’endroit où on veut qu’il soit rangé après
- l’action qui crée le PDF avec le template associé
Action 1 : Nommage du fichier dans la colonne File
La première action du bot consiste à nommer le futur fichier avec son chemin relatif, pour que l’application puisse le retrouver correctement. Formulé autrement, on écrit le futur chemin d’accès relatif vers le document.
Dans l’exemple ci-dessous, le dossier sera “monDossier” et le nom du fichier sera la valeur contenue dans la colonne “NomFichier” de l’enregistrement en cours.
Le résultat en sortie pourrait être par exemple “/monDossier/monPremierFichier.pdf”
Action 2 : Création du fichier
Template
Il vous faut d’abord un template pour le PDF que l’on va créer. Pour cela il suffit de le créer via Appsheet en utilisant le bouton “Create” (en français : “Créer”)
Pour le modifier et avoir la forme que l’on souhaite, il faut cliquer sur “View”, puis modifier le document selon notre envie.
Note:
- sur les comptes Google, le bouton de création génère un document Google Docs
- sur les comptes Microsoft, celui-ci génère un document HTML, peu manipulable. Il est idéal dans ce cas de s’en inspirer pour créer son propre template sur Microsoft Word, puis de le sélectionner en navigant dans son espace OneDrive, en utilisant la petite icône de fichier
Extraction du chemin
Si le chemin du fichier ne comporte aucun changement quel que soit le fichier, alors on peut mettre le chemin directement, ou le laisser vide. Il faut avoir en tête que le dossier par défaut s’appelle “File”.
Cependant, si un dossier dans le chemin change selon où le fichier doit être, alors on doit penser à ajouter les éléments dont on a besoin pour avoir le bon chemin de fichier tout en prenant soit qu’il soit le même que celui renseigné dans la colonne File.
Nota: “monDossier” ici fait référence au dossier dans l’arborescence, dans lequel seront stockés les documents générés.
Extraction du nom
Pour le nom du fichier c’est le champ “File Name Prefix” qu’il faut modifier.
Il faut que l’on obtienne le nom voulu en remplaçant les termes inutiles.
Comme pour l’extraction du chemin, il faut penser à enlever correctement tous les éléments qui sont en plus, pour ne garder finalement que le nom.
Par exemple ici, on peut voir que dans la base le chemin est “monDossier/2023/monPremierFichier.pdf”, alors dans les dossiers de l’application après la création du pdf, il se trouvera dans le dossier “2023” du dossier “File”.
Note:
- Il faut penser à désactiver le Timestamp sinon on ne pourra pas récupérer le fichier sur l’application
- Si aucun doute n’est possible, il est possible de se passer des expressions SUBSTITUTE() pour utiliser directement l’expression [NomFichier] dans les exemples de cet article.
- On aurait pu faire simple et utiliser “NomFichier” pour la génération du document. Mais il est recommandé de créer en fait son propre horodatage pour éviter que deux fichiers portent le même nom dans le même dossier et qu’ils soient télescopés ensuite. Exemple ci-dessous:
Conclusion
Pour résumer en quelques mots, la mécanique consiste à:
- définir le futur chemin d’accès du document
- utiliser ce chemin pour extraire le futur nom du document
- générer le fichier au bon endroit avec le nom correct
En fin de circuit, nous obtenons un fichier qui a été créé dans le dossier de l’application que l’on voulait, et l’application arrive à le trouver pour le visualiser dans l’application.