« Prise en compte des évènements métiers (bp) » : différence entre les versions

De Wiki1000
(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... »)
 
Aucun résumé des modifications
 
(Une version intermédiaire par le même utilisateur non affiché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>

Dernière version du 17 juillet 2020 à 12: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.