Alarm bei verspäteter Auftragslieferung - Workflow-Ereignis-Handler

Wenn ein Auftrag zu spät ausgeliefert wird und ein mobiler Anwender die Alarmmeldungen bei verspäteter Auftragslieferung für einen bestimmten Kunden abonniert hat, sendet dieser Ereignis-Handler eine Benachrichtigung über die Lieferung an diesen Anwender.

Wenn der Ereignis-Handler aktiviert wird, wird ein neuer Ereignis-Trigger für den Alarm erstellt, um die Terminierung der Email-Benachrichtigungen für diesen Alarm zu steuern. Standardmäßig werden Benachrichtigungen mit Alarmen zur Auftragslieferung bei Aktivierung des Handlers und danach alle 24 Stunden gesendet. (Die Standardeinstellungen im Zusammenhang mit der Terminierung des Ereignisses können Sie in der Maske Ereignis-Trigger ändern, indem Sie die Werte für die Bedingung, für das Intervall für das erneute Testen der Bedingung und für das Trigger-Zurücksetzungsintervall in der Maske zurücksetzen.

Wenn der Ereignis-Handler aktiviert und der Ereignis-Trigger OrderShippingAlert für die Auftragsauslieferungsalarme erstellt wurde, verwendet das System die Tabelle TrackRows, um eine Liste der Lieferungen zu führen, für die Benachrichtigungen gesendet werden müssen (sofern Abonnenten für die Alarmmeldung bei verspäteter Auftragslieferung vorhanden sind). Diese Liste wird bei jeder Lieferung eines verspäteten Auftrags aktualisiert.

Der Ereignis-Trigger führt täglich zum angegebenen Zeitpunkt die gespeicherte Prozedur LateOrderShippingAlertsSp aus. Dabei werden die folgenden Tasks ausgeführt:

  • Anhand der Kundennummern wird geprüft, ob Publikationsabonnenten für die Alarmmeldung bei verspäteter Auftragslieferung vorhanden sind. Die Publikationsabonnenten werden in der Maske Publikationsabonnenten mithilfe von Publikationsname = 'OrderShippingAlert' und Schlüsselwert = Kundennummer gesucht.
  • Wenn Publikationsabonnenten vorhanden sind, ruft die gespeicherte Prozedur die Email-Adressen für die Abonnenten ab. Dabei wird die Adresse verwendet, die in der Maske Anwender definiert wurde.
  • Für jeden Publikationsabonnenten sucht die gespeicherte Prozedur alle Datensätze zu verspäteten Auftragslieferungen für diesen Kunden, die seit der letzten Ausführung der gespeicherten Prozedur erstellt wurden. Diese werden in eine Variable eingefügt, die als Nachrichtentext einer Email verwendet wird.
  • Die gespeicherte Prozedur gibt die folgenden Werte aus:
    • Eine Variable mit einer Liste der Abonnenten.
    • Ein Nachrichtentext für die Email mit der Alarmmeldung zur verspäteten Auftragslieferung.

    Der Nachrichtentext einer Email sollte immer nur einen Auftrag und die zugehörigen Positionen enthalten. Der Nachrichtentext hat eine Kapazität von etwa 4.000 Zeichen (ungefähr 40 Zeilen). Wenn der erstellte Nachrichtentext mehr als 4.000 Zeichen enthält, wird eine weitere Email mit den Positionen erstellt, die nicht mehr in die vorherige Email gepasst haben.

Nachdem die Email mit der Benachrichtigung über die verspätete Auftragslieferung erfolgreich gesendet wurde, wird der Inhalt der Tabelle "TrackRows" durch die gespeicherte Prozedur "DeleteCoShipTrackRowsSp" gelöscht.

Verknüpftes Ereignis und gespeicherte Prozeduren

Das Ereignis LateOrderShippingAlert enthält 3 Aktionen:

  • Aktionstyp: Datenbankmethode aufrufen - Ruft LateOrderShippingAlertsSp auf und gibt zwei Variablen zurück, eine Variable für die Liste der Abonnenten und die zweite Variable für den Nachrichtentext.
  • Aktionstyp: Email senden - Erstellt eine Email und sendet sie an die Abonnenten in der Liste und verwendet dabei die Variablen, die von LateOrderShippingAlertsSp übergeben wurden.
  • Aktionstyp: Datenbankmethode aufrufen - Ruft DeleteCoShipTrackRowsSp auf. Dieser Aufruf erfolgt nur dann, wenn eine Email, die in der vorherigen Aktion generiert wurde, erfolgreich gesendet wurde.

Ereignis-Trigger

  • Bedingung: TRUE
  • Intervall für erneutes Testen der Bedingung: 86400
  • Trigger-Zurücksetzungsintervall: 86400
  • Planung: Löst erstmalig bei Aktivierung des Handlers aus. Danach löst der Trigger alle 24 Stunden aus.