Un déclencheur est une action que le système doit poser automatiquement par réaction à une activation. Il existe deux méthodes d’activation :
-L’utilisateur a enregistré un changement (insertion, mise à jour ou suppression)
-Un activeur s’exécute à intervalle régulier et évalue une expression. Si celle-ci retourne des valeurs, l’action se déclenche.
Ouvrez la fenêtre WKF003.
Il permet de déterminer l’instant où une action sera déclenchée.
1. Section « Conditions d’activation »-Table à surveiller : sélectionnez la table dans laquelle vous voulez surveiller les actions de l’utilisateur. Vous aurez accès au @idrcod de cette table dans cet onglet. Cet idrcod se transforme en @idrcodprov dans l’onglet « Traitements après activation » -Table de traitement : sélectionnez la table dans laquelle vous voulez effectuer un traitement après le déclenchement. Si la table de traitement est différente de la table surveillée, vous devrez obligatoirement aller indiquer une requête dans le champ « Enregistrements affectés par le traitement » pour identifier le(s) idrcod lié(s) entre la table surveillée et la table de traitement. Les idrcod obtenus deviendront les @idrcod dans l’onglet « Traitements après activation ». -Ordre : si plusieurs déclencheurs s’activent dans une même opération, vous pouvez déterminer dans quel ordre ils se déclencheront en attribuant un ordre dans ce champ -Insertion, Mise à jour et Suppression : précisez si le déclencheur doit s’activer suite à un INSERT, un UPDATE ou un DELETE de la part de l’utilisateur*.
*Nota Bene : Si vous souhaitez que ce déclencheur soit activé automatiquement par suite d’un calcul à un moment prédéterminé (activeur), laissez les cases Insertion, Mise à jour et Suppression vide, et inscrivez une requête dans le champ « Activeur ». (Voir ci-dessous).
2. Section « Condition avancée »Il est possible d’inscrire ici une requête qui sera évaluée (sous format « IF EXISTS ») tout au long de la transaction pour déterminer si le déclencheur doit se déclencher à nouveau. En cochant la case « N’existe pas », la requête inscrite sera évaluée en « IF NOT EXISTS ».
3. Champ « Enregistrements affectés par le traitement »Si la table surveillée est différente de la table de traitement, vous devez inscrire une requête pour aller identifier les idrcod à traiter (c’est-à-dire faire le lien entre la table surveillée vs la table de traitement) Exemple : table surveillée = PRIMPosteCandidat. Table traitée = PRIMPoste. Alors le champ « Enregistrements affectés par le traitement » contiendrait un SELECT comme ceci : SELECT p.idrcod Où @idrcod est le idrcod de la table surveillée.
4. Section « Conditions sur les champs de la table ciblée (Ancienne valeur ou valeur de départ) »Les conditions indiquées ici sont évaluées avant la transaction. Ainsi, si un champ surveillé ici change durant la transaction, de manière que la condition ne soit plus atteinte, le déclencheur ne pourra pas se déclencher une deuxième fois durant la transaction.
5. Section « Conditions sur les champs de la table ciblée (suite aux modifications) »Les conditions indiquées ici sont évaluées lorsque l’utilisateur a tenté de faire sa modification. Dans ces 2 sections, il est possible de spécifier des colonnes qui sont présentes dans la structure du flux opérationnel. -IS NULL -IS NOT NULL -= 2 -= ‘A’ -IN (1,2,3) -IN (‘A’,’B’,’C’) -Etc.
6. Section « Activeur »Inscrivez dans le champ SQL la requête à tester. Elle doit retourner une liste d’idrcod ou simplement 1 pour signifier un déclenchement systématique. Cochez ensuite le (ou les) activeur(s) au(x)quel(s) vous souhaitez lier le déclencheur. Cela déterminera le moment auquel vous souhaitez évaluer l’expression ci-dessus. Attention, les activeurs doivent être créés et activés dans la fenêtre de gestion des activeurs. |
1. Événement généré suite au déclenchement (facultatif) : Sélectionnez un événement à insérer. Le type d’événement doit être lié à la table de traitement et être coché « insertion déclencheur ».
2. Tâche générée à la suite du déclenchement (facultatif) : Sélectionnez une tâche à générer. Le type de tâche doit être lié à la table de traitement et être coché « insertion déclencheur ».
3. Scripts : insérer le script SQL à exécuter suite au déclenchement. Il est préférable d’appeler des procédures plutôt que d’y injecter des requêtes complètes, afin de faciliter les opérations de maintenance et d’assurer des transitions douces vers les versions futures. |