Dans eADM, des notifications sont envoyées lorsqu'un ensemble de règles correspond à un utilisateur en fonction de critères spécifiques. Ces critères peuvent être liés à des événements (par exemple, « Un utilisateur a été créé ») ou à une sélection d'objets présentant certaines valeurs d'attributs (par exemple, « La date d'entrée en fonction de l'utilisateur est dans deux jours »).
Un problème peut se poser avec les règles basées sur des attributs plutôt que sur des événements. Par exemple, une règle visant à envoyer un SMS de bienvenue à un nouveau collaborateur deux jours avant sa date d'entrée en fonction pourrait être déclenchée plusieurs fois si plusieurs synchronisations du système ont lieu ce jour-là. Sans vérification supplémentaire, l'utilisateur recevrait le même message à plusieurs reprises.
Pour éviter cela, vous devez ajouter une condition à l'ensemble de règles qui vérifie si le message a déjà été envoyé. Pour ce faire, utilisez la[COUNTMESSAGESENT] fonction.
Procédure
Suivez ces étapes pour vous assurer qu'une notification ne soit envoyée qu'une seule fois.
-
Accédez à l'ensemble de règles qui déclenche la notification que vous souhaitez modifier, puis ouvrez-le.
-
Ajoutez une nouvelle condition de règle comportant les trois parties suivantes :
-
Attribut :
[COUNTMESSAGESENT; MessageID]. (Par exemple :[COUNTMESSAGESENT; 816]) -
État :
is equal to -
Argument :
0
-
Cette condition garantit que la règle ne s'appliquera que si le message spécifié n'a jamais été envoyé à l'utilisateur.
Variantes de la [COUNTMESSAGESENT] Fonction
Cette fonction peut être utilisée de différentes manières, selon vos besoins.
-
Vérifiez s'il y a un message provenant de l'ensemble de règles. Si un ensemble de règles s'applique à plusieurs messages, vous pouvez laisser le champ « ID du message » vide pour vérifier si un message a été envoyé par cette règle.
Lorsque l'identifiant du message n'est pas renseigné — ce qui revient à passer 0, par exemple : [COUNTMESSAGESENT;] — l'expression ne vérifie pas un modèle fixe unique. Elle s'évalue plutôt dans le contexte du modèle de message dont l'envoi a effectivement déclenché l'ensemble de règles. En pratique, cela signifie que la condition pose toujours la question suivante : « Est-ce que ceci « Un message sortant a déjà été envoyé à ce destinataire », quel que soit le modèle utilisé pour l'envoi.
Cela permet de réutiliser un même ensemble de règles pour empêcher l'envoi en double de plusieurs modèles de messages différents, au lieu de créer un ensemble de règles quasi identique avec un identifiant de message codé en dur pour chacun d'entre eux.
Remarque : lorsque vous utilisez cette fonction, la fonction d'aperçu de l'éditeur de règles ne fonctionne pas.
C'est une conséquence directe de la liaison au contexte décrite ci-dessus : l'aperçu du générateur d'expressions évalue l'ensemble de règles de manière autonome, en dehors de tout envoi effectif de message ; il n'y a donc pas de modèle de message déclencheur disponible pour fournir le contexte à la variable vide messageId sur lequel il s'appuie. Cela s'applique que l'ensemble de règles soit ouvert directement dans le générateur d'expressions ou prévisualisé depuis un flux de messages qui ne s'est pas encore déclenché.
-
Autoriser le renvoi après un délai déterminé. Vous pouvez ajouter un paramètre de date pour permettre l'envoi de la notification une nouvelle fois après un certain laps de temps. Par exemple, l'expression
[COUNTMESSAGESENT;816;[NOW-32]]permettra de renvoyer le message si le précédent a été envoyé il y a plus de 32 jours.