Alerte d'expédition de commande - Gestionnaire d'événements de workflow
Lorsqu'une commande est expédiée à une société et qu'un utilisateur du portail appartenant à cette société a souscrit aux alertes d'expédition de commande, ce gestionnaire d'événements envoie une notification de l'expédition à cet utilisateur.
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 tous les jours à 15 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 (si le client compte des abonnés à l'alerte d'expédition de commande) et met à jour la liste chaque fois qu'une commande est expédiée.
Détails techniques
Le trigger d'événement exécute la procédure enregistrée OrderShippingAlertsSp 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 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 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.
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.
L'événement OrderShippingAlert comporte 3 actions :
- Type d'action : Appeler méthode BD Appelle OrderShippingAlertsSp 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 d'OrderShippingAlertsSp.
- 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.
Les valeurs par défaut suivantes sont utilisées pour ordonnancer le déclencheur d'événement OrderShippingAlert :
- Condition : CONDITION(DATEPART(hour, CURDATETIME()) = 15)
- Intervalle nv test condition : 60
- Intervalle réinit. trigger : 85,500
- Ordonnancement : S'exécute chaque jour à 15h00. Le trigger attend pendant 23 heures et 45 minutes, puis s'active et procède à une vérification toutes les minutes jusqu'à ce qu'il soit de nouveau 15 heures.