Exemple Automate déclenché par SQL
(Page créée avec « __TOC__ 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 ... ») |
(→Création du message) |
||
Ligne 38 : | Ligne 38 : | ||
[[image:queue-automate-4.png]] | [[image:queue-automate-4.png]] | ||
− | {{tip | + | {{tip|Cette classe mappe l'attribut QueueName sur le sujet de la file}} |
===Déclenchement de l'automate=== | ===Déclenchement de l'automate=== |
Version du 9 octobre 2017 à 13:19
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, pour simplifier nous utiliserons la classe générique 'TdbmStoredQueueMessage' qui est pré-définie dans le référentiel.
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.
Puis utilisez cet évènement comme évènement déclencheur de votre automate.
Création du message
Pour créer le message utilisez l'exploreur d'objet.
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é"