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://l1000-portal/dbTestSyfreWorkflow620?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))
+
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)

Wf-local-machine.png

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.

Outils personnels