Exemple Automate déclenché par SQL

De Wiki1000

Sommaire


Dans cet exemple nous allons déclencher un automate par une simple requête SQL.

Le principe est le suivant :

  • Un automate est déclenché par un évènement file d'attente de type base de donnée.
  • La file d'attente est configurée pour conserver les messages sur acquitement.
  • Un message initial dans l'état Traité est créé
  • L'automate est déclenché en modifiant l'état du message à "Prêt".

Définition de la file d'attente

La file d'attente peut être définie sur une classe de stéréotype file d'attente de l'application métier, mais pour simplifier nous utiliserons la classe générique 'TdbmStoredQueueMessage' qui est pré-définie dans le référentiel.

Queue-automate-1.png

Les champs importants sont :

  • Sujet
Indiquer un sujet unique qui sera utilisé pour déclencher votre automate
  • Action sur succès
Sélectionner 'Conserver le message' de sorte que le message ne soit pas supprimer après déclenchement.

Définition de l'automate

Définisez un évènement 'File d'attente' sur la file d'attente que vous avez précédemment créée.

Queue-automate-2.png

Puis utilisez cet évènement comme évènement déclencheur de votre automate.

Queue-automate-3.png

Création du message

Pour créer le message utilisez l'exploreur d'objet.

Queue-automate-4.png

Tip-20px.png Tip : Cette classe mappe l'attribut QueueName sur le sujet de la file

Déclenchement de l'automate

Pour déclencher l'automate exécutez la requête suivante :

  update TDBMSTOREDQUEUEMESSAGE set queueState=0 where queueTopic='DoMyTask'

Cette requête passe le message dans l'état "Prêt" ce qui déclenchera l'automate à la prochaine exécution de sa boucle, une fois déclenché l'état du message est automatiquement repositionné à "Traité"

Outils personnels