So versenden Sie eine Benachrichtigung nur einmal

In eADM werden Benachrichtigungen versendet, wenn ein Regelsatz anhand bestimmter Kriterien auf einen Benutzer zutrifft. Diese Kriterien können auf Ereignissen basieren (z. B. „Benutzer wurde angelegt“) oder auf einer Auswahl von Objekten mit bestimmten Attributwerten (z. B. „Das Startdatum des Benutzers ist in zwei Tagen“).

Bei Regeln, die auf Attributen statt auf Ereignissen basieren, kann ein Problem auftreten. Beispielsweise könnte eine Regel, die vorsieht, dass zwei Tage vor dem Arbeitsbeginn eine Willkommens-SMS an einen neuen Mitarbeiter gesendet wird, mehrfach ausgelöst werden, wenn an diesem Tag mehrere Systemsynchronisierungen stattfinden. Ohne eine zusätzliche Überprüfung würde der Benutzer dieselbe Nachricht wiederholt erhalten.

Um dies zu verhindern, müssen Sie dem Regelsatz eine Bedingung hinzufügen, die prüft, ob die Nachricht bereits gesendet wurde. Dies geschieht mithilfe der[COUNTMESSAGESENT] Funktion.



Vorgehensweise

Befolgen Sie diese Schritte, um sicherzustellen, dass eine Benachrichtigung nur einmal versendet wird.

  1. Navigieren Sie zu dem Regelsatz, der die Benachrichtigung auslöst, die Sie ändern möchten, und öffnen Sie ihn.

  2. Fügen Sie eine neue Regelbedingung mit den folgenden drei Teilen hinzu:

    • Attribut: [COUNTMESSAGESENT; MessageID]. (z. B. [COUNTMESSAGESENT; 816])

    • Zustand: is equal to

    • Argument: 0

Diese Bedingung stellt sicher, dass die Regel nur dann zur Anwendung kommt, wenn die angegebene Nachricht noch kein einziges Mal an den Benutzer gesendet wurde.



Variationen des [COUNTMESSAGESENT] Funktion

Die Funktion kann je nach Bedarf auf verschiedene Arten genutzt werden.

  1. Prüfen Sie, ob eine Nachricht aus dem Regelsatz vorliegt. Wenn ein Regelsatz für mehrere Nachrichten verwendet wird, können Sie das Feld „Nachrichten-ID“ leer lassen, um zu prüfen, ob eine Nachricht über die Regel gesendet wurde.

Wenn das Feld „Nachrichten-ID“ leer gelassen wird – was der Übergabe von 0, z. B. [COUNTMESSAGESENT;] — Der Ausdruck prüft nicht eine einzige festgelegte Vorlage. Stattdessen wird er im Kontext derjenigen Nachrichtenvorlage ausgewertet, deren Versand die Regel tatsächlich ausgelöst hat. In der Praxis bedeutet dies, dass die Bedingung immer fragt: „Hat dies „An diesen Empfänger wurde bereits eine ausgehende Nachricht gesendet“, unabhängig davon, welche Vorlage den Versand durchführt.

Dadurch lässt sich ein und derselbe Regelsatz als Schutz vor doppelten Sendungen für mehrere verschiedene Nachrichtenvorlagen wiederverwenden, anstatt für jede Vorlage einen nahezu identischen Regelsatz mit einer fest codierten Nachrichten-ID zu erstellen.


Hinweis: Bei Verwendung dieser Funktion steht die Vorschau-Funktion im Regel-Editor nicht zur Verfügung.

Dies ist eine direkte Folge der oben beschriebenen Kontextbindung: Die Vorschau des Ausdrucksgenerators wertet den Regelsatz eigenständig aus, unabhängig von einer tatsächlichen Nachrichtenübermittlung, sodass keine auslösende Nachrichtenvorlage vorhanden ist, um den Kontext für die leere messageId auf dem er basiert. Dies gilt unabhängig davon, ob der Regelsatz direkt im Ausdrucksgenerator geöffnet oder innerhalb eines noch nicht ausgelösten Nachrichtenflusses in der Vorschau angezeigt wird.


  1. Neusendung nach Ablauf einer bestimmten Zeitspanne zulassen. Sie können einen Datumsparameter hinzufügen, damit die Benachrichtigung nach Ablauf einer bestimmten Zeitspanne erneut versendet wird. Beispielsweise der Ausdruck [COUNTMESSAGESENT;816;[NOW-32]] ermöglicht es, die Nachricht erneut zu versenden, wenn die vorherige vor mehr als 32 Tagen gesendet wurde.

Zuletzt aktualisiert: