Français
Générer un document
Remplit un modèle Word avec les données du workflow (champs, tableaux répétés, conditions) et produit un PDF ou un .docx, ajouté aux pièces jointes de l’exécution pour qu’« Envoyer » le joigne.
Générer un document remplit un modèle Word (.docx) avec les données du workflow — champs, lignes de tableau répétées, conditions — et produit un PDF, un .docx, ou les deux. Le document est ajouté aux pièces jointes de l’exécution : un nœud Envoyer placé après le joint comme n’importe quelle pièce.
Le nœud n’est proposé que si l’instance a un service de documents.
En bref
- Type :
document.generate· version 1 - Catégorie : Données
- Nature : Étape — s’exécute pendant une exécution
- Effet : Sans effet externe (
none) — rien n’est écrit hors de Loop & Roll ; rejouable sans risque - Exige un mail porteur : Non
- Connexion : Aucune
- Entrées :
main - Sorties :
main
Paramètres
source
Le modèle vient de
- Type : Un choix (
options) - Requis : Oui
- Défaut :
library - Options :
library— La bibliothèque de modèles : Un modèle Word téléversé dans Paramètres › Modèles de documents.attachment— Une pièce jointe de l’exécution : Un .docx reçu par mail, ou rapatrié de SharePoint ou de Drive à une étape précédente.
template
Modèle — Les champs {{ … }} du modèle s’écrivent comme partout ailleurs : {{ data.extraire.acquereur }}, {{ email.from.name }}.
- Type : Ressource distante (
resourceLocator) - Requis : Oui
- Façons de choisir : dans une liste, saisir un identifiant (
document_template) - Affiché quand :
sourcevautlibrary
templateName
Nom du fichier modèle — Le premier .docx de l’exécution dont le nom correspond. * remplace n’importe quoi.
- Type : Texte (
string) - Requis : Oui
- Défaut :
*.docx - 200 caractères au plus
- Exemple :
*.docx - Affiché quand :
sourcevautattachment - Expressions :
{{ }}accepté
output
Format produit
- Type : Un choix (
options) - Requis : Oui
- Défaut :
pdf - Options :
pdf— PDF : Ce qu’on envoie à un client : la mise en page ne bouge plus.docx— Word (.docx) : Un brouillon qu’on retouchera avant de le signer.both— Les deux : Le PDF à envoyer, et le Word à archiver.
filename
Nom du fichier produit — Sans extension, elle est ajoutée selon le format. Peut contenir des champs : attestation-{{ data.extraire.nom }}.
- Type : Texte (
string) - Requis : Non
- Défaut :
""(vide) - 300 caractères au plus
- Exemple :
attestation - Expressions :
{{ }}accepté
onMissingField
Si un champ n’a pas de valeur
- Type : Un choix (
options) - Requis : Oui
- Défaut :
empty - Options :
empty— Le laisser vide : Le document est produit ; les champs manquants sont listés dans les données de l’étape.fail— Faire échouer l’étape : Pour un acte : mieux vaut aucun document qu’un compromis sans le nom de l’acquéreur.
- Rangé sous « Avancé » dans l’éditeur
Sorties
main
Données produites
Ce que ce nœud ajoute aux données de l’exécution, et comment le lire dans une expression. <step> désigne la clé de l’étape : le nom du nœud ramené à un identifiant (voir Données et expressions).
{{ data.<step>.position }}—number. La position du document produit (le PDF s’il y en a un, sinon le .docx) dans les pièces de l’exécution : celle qu’un nœud Envoyer ou un dépôt sur un drive sélectionne.{{ data.<step>.files }}—array of { position, filename, mime, size, origin }. Les fichiers produits, déjà ajoutés aux pièces jointes de l’exécution.{{ data.<step>.pdf }}—{ position, filename, mime, size }. Le PDF produit, quand le format le demande.docxdécrit le .docx de la même façon.{{ data.<step>.pages }}—number. Le nombre de pages du PDF produit.{{ data.<step>.template }}—{ name, fields }. Le modèle employé (son nom dans la bibliothèque, ou le nom de la pièce jointe) et son nombre de champs.{{ data.<step>.missingFields }}—array of string. Les champs du modèle restés vides faute de valeur (data.extraire.notaire). Vide quand tout a été rempli.{{ data.<step>.summary }}—string. Une phrase pour le détail d’exécution, dans la langue du membre.
Exemple
Un mail demande une attestation de visite. Un nœud Extraire nommé extraire en tire le nom du visiteur, l’adresse du bien et la date. Le modèle « Attestation de visite » de la bibliothèque contient :
Je soussigné, agence Pierre & Sens, atteste que {{ data.extraire.visiteur }}
a visité le bien situé {{ data.extraire.adresse }} le {{ data.extraire.date }}.
{{#if data.extraire.accompagne}}La visite était accompagnée.{{/if}}Le nœud :
source: library
template: Attestation de visite
output: pdf
filename: "attestation-{{ data.extraire.visiteur }}"Puis un nœud Envoyer qui répond au mail avec « Pièces jointes » sur « Celles de l’exécution, filtrées » et le nom attestation-*.pdf : l’attestation part avec la réponse.
Le modèle
La syntaxe est décrite dans Documents › Écrire un modèle : {{ chemin | filtre }} pour un champ, {{#each liste}} … {{/each}} pour répéter une ligne de tableau ou des paragraphes ({{ item.x }}, {{ index }} dedans), {{#if valeur}} … {{else}} … {{/if}} pour une condition. Le contexte est le même que celui des paramètres : data (les sorties des étapes précédentes) et email (le mail déclencheur).
Le modèle vient de la bibliothèque (Templates › Modèles de documents), ou d’une pièce jointe de l’exécution : un .docx reçu par mail, ou rapatrié de SharePoint ou de Drive à une étape précédente — le premier dont le nom correspond au motif (*.docx par défaut).
Conseils
- Champs manquants. Par défaut, un champ sans valeur est laissé vide et listé dans
missingFields. Pour un acte, réglez « Si un champ n’a pas de valeur » sur « Faire échouer l’étape » : rien n’est produit, et l’étape échoue endocument.invalid_template. - Nom du fichier. Sans extension (elle est ajoutée selon le format) ; les caractères interdits dans un nom de fichier sont remplacés.
- Essais. Produire une pièce d’exécution n’écrit rien hors de Loop & Roll : en essai, le document est réellement produit, et vous pouvez l’ouvrir dans le détail d’exécution.
- Erreurs. Service injoignable ou occupé :
document.service_unavailable, retenté. Modèle supprimé ou introuvable :document.template_not_found. Modèle mal formé :document.invalid_template. Sans service configuré :document.not_configured.