Alerte d'expédition de commande en retard - Gestionnaire d'événements de workflow
Lorsqu'une commande est expédiée en retard, et qu'un utilisateur mobile s'est abonné aux alertes d'expédition de commande en retard pour un client particulier, ce gestionnaire d'événements envoie à l'utilisateur une notification relative à l'expédition.
Lorsque le gestionnaire d'événement est activé, un nouveau trigger d'événement est créé pour l'alerte afin de contrôler l'ordonnancement des notifications par courriel pour cette alerte. Par défaut, les notifications relatives aux alertes d'expédition de commande sont envoyées à l'activation du gestionnaire, puis toutes les 24 heures. (Vous pouvez modifier les valeurs par défaut associées à l'ordonnancement de l'événement dans l'écran Triggers d'événement, en y redéfinissant les valeurs de condition, d'intervalle de nouveau test de la condition et d'intervalle de réinitialisation du trigger.)
Une fois le gestionnaire d'événements activé et le trigger d'événement OrderShippingAlert créé, le système utilise une table TrackRows afin de répertorier les expéditions pour lesquelles des notifications doivent être envoyées (s'il existe des abonnés à l'alerte d'expédition de commande en retard) et met à jour la liste chaque fois qu'une commande en retard est expédiée.
Le trigger d'événement exécute la procédure enregistrée LateOrderShippingAlertsSp chaque jour à l'heure indiquée. Celle-ci exécute les tâches suivantes :
- Elle recherche les éventuels abonnés à l'alerte d'expédition de commande en retard, en utilisant le numéro de client. Les abonnés à une publication figurent dans l'écran Publications/abonnements, où Nom de publication = 'OrderShippingAlert' et Valeur clé = numéro de client.
- S'il existe des abonnés à la publication, la procédure enregistrée récupère leurs adresses de courriel, définies dans l'écran Utilisateurs.
- Pour chaque abonné à une publication, la procédure enregistrée recherche tous les enregistrements d'expédition de commande en retard concernant ce client créés depuis la dernière exécution de la procédure enregistrée. Elle les insère dans une variable qui constituera le corps de message du courriel.
- La procédure enregistrée sort les valeurs suivantes :
- Une liste des abonnés, stockée dans une variable.
- Un corps de message pour le courriel de l'alerte d'expédition de commande en retard.
Le corps de message du courriel ne doit contenir qu'une commande et ses lignes/articles correspondants. Le corps du message peut contenir approximativement 4 000 caractères (environ 40 lignes). S'il dépasse 4 000 caractères, un autre courriel est créé avec les lignes/articles qui ne sont pas rentrés dans le premier courriel.
La procédure enregistrée DeleteCoShipTrackRowsSp efface la table TrackRows lorsque la notification par courriel relative à l'expédition de commande a été envoyée avec succès.
Evénement associé et procédures enregistrées
L'événement LateOrderShippingAlert comporte 3 actions :
- Type d'action : Appeler méthode BD - Appelle LateOrderShippingAlertsSp et renvoie deux variables, une pour la liste des abonnés et l'autre pour le corps du message.
- Type d'action : Envoyer courriel - Crée un courriel et l'envoie à la liste des abonnés à l'aide des variables transmises à partir de LateOrderShippingAlertsSp.
- Type d'action : Appeler méthode BD - Appelle DeleteCoShipTrackRowsSp. Cette méthode n'est appelée qu'en cas de réussite de l'envoi d'un courriel généré lors de l'action précédente.
Trigger d'événement
- Condition : TRUE
- Intervalle nv test condition : 86400
- Intervalle réinit. trigger : 86400
- Ordonnancement : S'exécute pour la première fois lors de l'activation du gestionnaire. Le trigger se déclenche ensuite toutes les 24 heures.