In eADM worden meldingen verstuurd wanneer een regelset overeenkomt met een gebruiker op basis van specifieke criteria. Deze criteria kunnen gebaseerd zijn op gebeurtenissen (bijv. "Gebruiker is aangemaakt") of op een selectie van objecten met bepaalde attribuutwaarden (bijv. "Startdatum gebruiker is over twee dagen").
Er kan een probleem ontstaan met regels die gebaseerd zijn op attributen in plaats van gebeurtenissen. Bijvoorbeeld, een regel om een welkomst-sms te sturen naar een nieuwe werknemer twee dagen voor hun startdatum zou meerdere keren getriggerd kunnen worden als er verschillende systeemsynchronisaties lopen op die dag. Zonder een extra controle zou de gebruiker herhaaldelijk hetzelfde bericht ontvangen.
Om dit te voorkomen moet je een voorwaarde toevoegen aan de regelset die controleert of het bericht al verzonden is. Dit wordt gedaan met behulp van de[COUNTMESSAGESENT] functie.
Procedure
Volg deze stappen om ervoor te zorgen dat een melding slechts één keer wordt verzonden.
-
Navigeer naar en open de regelset die de melding triggert die je wilt wijzigen.
-
Voeg een nieuwe regelvoorwaarde toe met de volgende drie onderdelen:
-
Attribuut:
[COUNTMESSAGESENT; MessageID]. (Bijv.[COUNTMESSAGESENT; 816]) -
Staat:
is equal to -
Argument:
0
-
Deze voorwaarde zorgt ervoor dat de regel alleen wordt toegepast als het gespecificeerde bericht nul keer naar de gebruiker is verzonden.
Variaties van de [COUNTMESSAGESENT] Functie
De functie kan op verschillende manieren worden gebruikt, afhankelijk van je behoeften.
-
Controleer op berichten uit de regelset. Als een regelset wordt gebruikt voor meerdere berichten, kun je de bericht-ID leeg laten om te controleren of er een bericht is verzonden door de regel.
Wanneer het bericht-ID leeg wordt gelaten — wat neerkomt op het doorgeven van 0, bijv. [COUNTMESSAGESENT;] — de uitdrukking controleert niet één vast sjabloon. In plaats daarvan wordt deze geëvalueerd in de context van het berichtensjabloon waarvan de verzending de regelset daadwerkelijk heeft geactiveerd. In de praktijk betekent dit dat de voorwaarde altijd vraagt: „heeft dit "Er is al een uitgaand bericht naar deze ontvanger verzonden", ongeacht welk sjabloon het bericht verstuurt.
Hierdoor is het mogelijk om één regelset te hergebruiken als beveiliging tegen dubbele verzending voor verschillende berichtensjablonen, in plaats van voor elk sjabloon een vrijwel identieke regelset te moeten opstellen met een vastgelegde bericht-ID.
Opmerking: Als je deze functie gebruikt, werkt de voorbeeldfunctie in de regelseteditor niet.
Dit is een direct gevolg van de hierboven beschreven contextbinding: het voorbeeld van de expressiebouwer evalueert de regelset op zichzelf, los van het daadwerkelijk verzenden van een bericht, waardoor er geen triggerend berichtsjabloon beschikbaar is om de context aan de lege messageId waarop het is gebaseerd. Dit geldt zowel wanneer de regelset rechtstreeks in de expressie-editor wordt geopend als wanneer deze wordt bekeken vanuit een berichtenstroom die nog niet is geactiveerd.
-
Opnieuw verzenden na een bepaalde periode toestaan. Je kunt een datumparameter toevoegen om de melding opnieuw te laten verzenden nadat een bepaalde tijd is verstreken. Bijvoorbeeld, de uitdrukking
[COUNTMESSAGESENT;816;[NOW-32]]staat toe dat het bericht opnieuw wordt verzonden als het vorige meer dan 32 dagen geleden werd verzonden.