Prise en compte des évènements métiers (bp)
De Wiki1000
Version du 17 juillet 2020 à 13:12 par Syfre (discuter | contributions)
Lorsqu'un processus métier déclenché par un évènement métier ne se déclenche pas, vous pouvez vérifier les points suivants :
- Vérifier que l'évènement est bien créé
- Vérifier que la machine est bien associée à la base de données dans lequel se produit l'évènement
- Vérifier que les évènement sont bien postérieur à la date de démarrage du processus.
Si malgré ces vérifications vous ne pouvez pas diagnostiquer la raison :
- Exécuter le processus sur une machine locale dans la console de Conception des processus métier
- Activer la trace des requêtes (Ctrl+T)
Vous devez constatez des requêtes périodiquement émises sur la table des évènements, par exemple :
select t0.* from dbo.TDBMEVENT t0 where (((t0.EventDataBaseURL = 'mssql://xxx/dbTestWorkflow?prefix="dbo."') or (t0.EventDataBaseURL IS NULL)) and ((t0.EventDate > Convert(DateTime,'2014-05-21 14:02:25',120)) or ((t0.EventDate = Convert(DateTime,'2014-05-21 14:02:25',120)) and (t0.Sequence > 0))) and (t0.EventQueueName IS NULL)) order by t0.Sequence,t0.EventDate, t0.oid
Dans cette requête :
- L'URL de la base correspond à la base de données associée au moteur de WF
- La date correspond à la date de dernière exécution du processus ou à la date de démarrage du processus.
- La séquence correspond au numéro de séquence de la dernière exécution ou à zéro.
- EventQueueName IS NULL parce que la classe d'évènement n'est pas basée sur une file d'attente
Récupérez l'évènement censé déclencher votre processus, par exemple le dernier évènement :
select TOP 1 t0.* from dbo.TDBMEVENT t0 order by UpdDate desc
Comparez cet évènement aux critères de sélection de la requête et identifiez la raison pour laquelle l'évènement n'est pas pris en compte.