Programmer la diffusion de messages dans Teams – 1ère Partie
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Ut elit tellus, luctus nec ullamcorper mattis, pulvinar dapibus leoL’objectif de ce tutoriel est de vous montrer comment mettre en place un système de publication programmé dans vos équipes Teams. Plûtot que d’envoyer une publication instantanée, je vous proposer de mettre en place une solution qui permet de définir la date et le jour de publication de vos messages dans vos équipes Teams.
Les éléments que nous allons utiliser et mettre en place.
- Une Microsoft List
- Un flux Power Automate
Cette première version, publiera mon message dans toutes les équipes pour lequel je suis soit membre, soit propriétaire.
Nous verrons dans des tutoriels suivants, comment cibler certaines équipes. Un peu de patiente !
Tout d’abord la mise en place d’une liste via Microsoft List
Création d’une liste « Vierge »
Il va falloir maintenant mettre en place les colonnes nécessaires à notre traitement
- Titre : Colonne existante, va nous servir pour définir le sujet de notre publication
- Contenu : Colonne de plusieurs ligne, avec du contenu enrichi (images, tableaux, hyperliens), colonne obligatoire
- Diffusion : Colonne de type Date et heure, incluant l’heure, colonne non obligatoire
- Traitement : Colonne de type texte, colonne non obligatoire, valeur par défaut « En attente »
Contenu
Diffusion
Traitement
Remarque : Nous venons de créer une Microsoft List dans notre espace personnel ! Pour rappel, chaque utilisateur de Microsoft 365 possède son propre site SharePoint : https://xxxxxxxxx.sharepoint.com/personal/arnaud_mytic_eu
Cet espace personnel, hébergeait déjà votre OneDrive, et maintenant vos listes Microsoft
Il est important de vérifier que les paramètres régionaux de cet espace sont correctement configurés, car nous allons jouer avec des dates de publication, et il serait dommage d’être face à un problème de fuseau horaire.
Voici le lien pour régler les paramètres régionaux de vos listes SharePoint et votre OneDrive
https://xxxxxx.sharepoint.com/personal/arnaud_mytic_eu/_layouts/15/regionalsetng.aspx
Création du flux de publication
On va donc créer un flux Planifié, à partir de zéro
Dans un premier temps, je défini la fréquence de mon flux, à une fois par jour, sur base de la date du jour et d’une heure arrondie !
Cette fréquence sera revue par la suite, en fonction de la précision que vous souhaitez pour l’envoi de vos publications.
Si je programme une publication pour demain à 09h35, si mon flux tourne une fois par jour à 11h00, mon message sera publié à 11h00 et non 09h35, donc 1h25 de décalage. Si je programme mon flux pour tourner toutes les heures, mon message sera publié demain à 10h00, donc 25 minutes de décalage. Si je programme mon flux pour tourner toutes les 10 minutes, mon message sera publié demain à 09h40, donc un décalage de 5 minutes. Etc …
Plus votre fréquence sera courte, moins de décalage vous aurez, mais n’oubliez pas que vous avez droit à 2000 exécution de flux par jour maximum. Il faut donc trouver un juste milieu entre le nombre d’exécutions inutiles et le décalage accepté. Une répétition toutes les 5 minutes occasionne 288 exécution journalière.
L’étape suivante est de définir les paramètres du fuseau horaire sur lequel votre flux doit tourner, pour correspondre au fuseau horaire défini sur votre liste !
Mon environnement Power Automate est défini dans la langue Française. Les termes utilisés sont donc francophone.
Lors de l’ajoute de mon action, je cherche sur le terme « Fuseau », et on me propose l’action « Convertir le fuseau horaire » du connecteur « Date/heure »
utcNow() est une expression qui retourne la date et l’heure système actuelle, au format universel.
On va donc convertir ce format sur un autre fuseau horaire pour le faire correspondre à celui de mon espace personnel, UTC+01 – Bruxelles
Et on va formater la valeur pour quelle corresponde à ce que les listes Microsoft supportent : yyyy-MM-ddTHH:mm:ssZ
Ensuite, je vais initialiser une variable de type chaine de caractères « DateTimeNow » pour sauvegarder la date et heure actuelle formatée correctement
Maintenant, il faut récupérer tous les éléments de ma liste Microsoft qui doivent faire l’objet d’une publication dans Teams.
Ma logique est donc de récupérer tous les éléments dont
- La colonne « Traitement » est égale à la valeur « En attente »
- La colonne « Diffusion » doit être plus petite ou égale à la date et heure actuelle
Rappel : Une Microsoft List est avant tout une liste SharePoint, je vais donc utiliser l’action « Obtenir les éléments » du connecteur « SharePoint »
- L’adresse du site : Il attend l’url de votre espace personnel , dans mon cas https://xxxxxxxxx.sharepoint.com/personal/arnaud_mytic_eu
- Nom de la liste, quand vous allez introduire manuellement l’adresse du site, il devrait vous proposez les Microsoft List disponibles : Publications Teams
- Requête de filtre : On va introduire une requête pour récupérer uniquement les éléments à traiter : Traitement eq ‘En attente’ and Diffusion le ‘{x}DateTimeNow’
{x}DateTimeNow est ma variable contenant la date et heure actuelle formatée sur le bon fuseau horaire !
Je limite aussi le nombre de résultat remontés à 1000
A ce stade-là, je vous invite à sauvegarder votre flux !!!!
Voici un aperçu globale du flux
L’action « Obtenir les éléments » va me remonter une collection d’éléments qui répondent à mon filtre. Il y a peut-être un élément, peut-être plusieurs, peut-être aucun. Quoiqu’il en soit, je dois les traiter un par un, et je vais donc avoir besoin d’effectuer une boucle itérative sur chaque élément remonté.
Je dois lui dire de boucler sur les valeurs remontée par l’action précédente
Toutes les actions suivantes vont se faire au sein de la boucle « Appliquer à chacun »
La première action est de récupérer le détail de l’élément en cours dans une itération. Cet élément pour rappel est un élément de ma liste Microsoft, donc un élément SharePoint.
- L’adresse du site : Il attend l’url de votre espace personnel , dans mon cas https://xxxxxxxxx.sharepoint.com/personal/arnaud_mytic_eu
- Nom de la liste, quand vous allez introduire manuellement l’adresse du site, il devrait vous proposez les Microsoft List disponibles : Publications Teams
L’action suivante sera de mettre à jour la valeur de la colonne Traitement pour cet élément. Afin d’éviter que celui-ci soit traité plusieurs fois !
Les colonnes Title, Contenu sont obligatoires, donc on doit renseigner une valeur. Il faut donc y mettre les valeurs actuelles de l’élément obtenu à l’action précédente. En définitif, la seule colonne qui va réellement changer, c’est la colonne Traitement qui prend la valeur « En cours »
La colonne Diffusion peut rester vide, ainsi elle ne sera pas mise à jour.
Pour rappel, la publication programmée doit être diffusée dans toutes les équipes auxquelles j’ai accès !
Je vais donc lister, répertorier, toutes ces équipes.
Pour chacune des équipes trouvées, je vais aussi effectuer une boucle de traitement.
Pour rappel, une publication se fait au sein d’un canal d’une équipe, donc je vais aussi lister, répertorier, tous les canaux de chaque équipe trouvée.
Pour chacun des canaux trouvés, je vais aussi effectuer une boucle de traitement.
Mon objectif est de publier mon message dans le canal Général de toutes les équipes auxquelles j’ai accès !
Je compare donc le Nom du canal à la valeur « General » (même en français)
Si je suis sur le canal Général d’une équipe, alors je publie mon message.
D’abord l’identifiant de l’équipe : Valeur manuelle
Ensuite l’identifiant du canal : Valeur manuelle
Et enfin le message
A ce stade-là, je vous invite à sauvegarder votre flux !!!!
Voici un aperçu globale de mes 3 boucles
Il ne reste plus qu’une chose à faire, mettre à jour l’élément pour signifier qu’il a été traité et que le message a été publié !
Test manuel de notre solution
Depuis ma liste
Je vais donc créer
une publication comme ceci :
Attention à bien
mettre une date et heure antérieure à la date et heure actuelle, et aussi à
laisser la colonne traitement à la valeur « En attente »
Ensuite depuis Power
Automate, « Mes Flux »
Vous pouvez
manuellement exécuter votre flux, apparaitra sur la droite une fenêtre pour
lancer son exécution.
Ensuite je click sur
le flux, pour obtenir l’historique d’exécution, et vérifier que celui-ci est en
cours d’exécution
Je peux voir aussi
sur ma liste
Selon le nombre
d’équipes auxquelles vous avez accès, cette exécution peut prendre un certain
temps ! Patiente.
Dans mon cas, ce
flux à durer 1 minute 55
Et si j’ouvre le
canal général d’une de mes équipes
Maintenant il s’agit
de faire d’autres tests avec des messages dont la date de diffusion est
postérieure à la date et l’heure actuelle, pour s’assurer qu’ils ne seront pas
publiés avant l’échéance. Vous pouvez
aussi tester des messages sans date de diffusion, ils ne devraient pas être
pris en compte non plus.
Une fois vos tests
effectués, on va adapter la fréquence du flux !
Je décide que celui doit tourner toutes les 15 minutes !
On enregistre une dernière fois, le flux et on le laisse tourner, mais n’hésitez pas à vérifier son historique d’exécution de temps en temps pour vérifier qu’il tourne bien selon vos critères de fréquence.
Dans un article à venir, nous adapterons le flux pour que les messages programmés soient publiés sur des équipes ciblées plutôt que sur toutes nos équipes.
Je vous donne donc rendez-vous pour la 2ème partie de cet article.
Comment avez-vous trouvé ce billet ?
N'hésitez pas à voter !
Score moyen 5 / 5. Nombre de vote 4
Très bon tuto! Merci!
Il semble long mais cette longueur est nécessaire pour expliquer toutes les étapes pas à pas.
Lors de l’étape
j’avais bêtement oublié un simple guillemet après la variable « {x}DateTimeNow« . Juste pour signaler qu’il faut trouver un moment où l’on ne sera pas interrompu pour suivre l’ensemble.
Personnellement, j’ai dû attendre la 2e partie pour lancer l’exécution du flux, je ne pouvais pas me permettre d’envoyer un message sur tous les canaux généraux de mes équipes.
Hum… Tuto disparu ? 🙁