Prise en compte des évènements métiers (bp)
De Wiki1000
(Différences entre les versions)
(Page créée avec « 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... ») |
|||
(Une révision intermédiaire par un utilisateur est masquée) | |||
Ligne 9 : | Ligne 9 : | ||
* Exécuter le processus sur une machine locale dans la console de Conception des processus métier | * 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) | * Activer la trace des requêtes (Ctrl+T) | ||
+ | |||
+ | [[image:Wf-local-machine.png|800px]] | ||
Vous devez constatez des requêtes périodiquement émises sur la table des évènements, par exemple : | Vous devez constatez des requêtes périodiquement émises sur la table des évènements, par exemple : | ||
Ligne 14 : | Ligne 16 : | ||
<pre> | <pre> | ||
select t0.* from dbo.TDBMEVENT t0 | select t0.* from dbo.TDBMEVENT t0 | ||
− | where (((t0.EventDataBaseURL = 'mssql:// | + | 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 | order by t0.Sequence,t0.EventDate, t0.oid | ||
</pre> | </pre> |
Version actuelle en date du 17 juillet 2020 à 13:12
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.