Une application sans mail, ça existe ? Jamais vu ! 😆
Plusieurs solutions pour gérer les mails sont disponibles lorsque vous travaillez sur : K2 Blackpearl :
- Directement dans le paramétrage du mail event ?
C’est possible, ça fonctionne, mais niveau maintenance c’est complexe et pas souple du tout, on oublie !
- La seconde solution est de déporter les mails en base de données, et d’utiliser une procédure stockée et une série de tags pour rendre le mail générique. Un peu plus de détails ci-dessous :
Créer la table qui va contenir le mail
Premièrement, créer une table qui va permettre de gérer le contenu des différents mails, on va avoir besoin d’un code du mail, pour l’identifier facilement côté processus, de l’objet du mail et de son corps :
Exemple de mail (simple) :
- Code : NEWTASK
- Objet : [Blog] – Validation de la demande %ID% %Title%
- Corps : Bonjour %UserDisplayName%, <br/><br/>Vous devez valider la demande %ID% (Titre : %Title%).<br /><br /><a href=’%LinkToTask%’>Cliquez ici pour valider</a>
💡 Astuce : comme vous pouvez le voir, on peut mettre du HTML dans le corps et l’objet du mail, vous pouvez du coup faire des jolis mails avec plein de couleurs super facilement 😎
Créer la procédure stockée qui va restituer le mail
Notre processus ne va pas pouvoir directement aller chercher le contenu du mail dans la table, car les mails ont des contenus dynamiques (nom de la personne qui reçoit le mail, lien vers la tâche, information sur la demande en cours de validation, …). Une procédure stockée va devoir être utilisée pour générer le corps du mail avec le bon contenu.
Si vous souhaitez plus de détails sur la création de procédures stockées et leur utilisation dans K2, Thomas vous explique tout dans son article sur enK2besoin.
Les modèles de mails contenus dans la table créée ci-dessus devront posséder des tags, qui seront remplacés par la procédure stockée par les vraies valeurs. Dans mon exemple, les tags ont la forme %NomDuTag%, ce format de tag peut-être modifié en fonction de vos besoins.
La procédure stockée prendra a minima en paramètre :
- Le code du mail que l’on cherche à retourner
- L’ID métier de la demande (en fonction de notre application, il pourra varier)
- Le lien vers la tâche (doit être présent de façon optionnelle)
- L’utilisateur destinataire du mail (login + display name)
La procédure stockée va :
- Récupérer le modèle du mail en fonction du code passé en paramètre
- Récupérer les informations de la table métier (business data dans l’exemple)
- Remplacer les tags du mail par les informations récupérées de la table métier ou passées en paramètre
- Renvoyer le mail
Côté processus
Côté processus, rien de plus simple, dans nos mails event, on va faire appel à notre procédure stockée et lui renseigner les informations en entrée comme ci-dessous :
C’est bon, on peut tester maintenant, et voici le résultat :
A vous de jouer 😉