TUTO : Comment créer ou modifier un trigger ?
- Cyril Vigne
Problématique
Le responsable du service commercial souhaite être informé à chaque création, modification ou suppression de données dans l'activité des devises. Pour ce faire, je dois définir un flux d'information sur l'entité des devises.
J'ouvre l'activité "Définition des flux d'information V2" et je passe en mode création d'un nouveau flux d'information.
Je renseigne la partie "Généralités" qui concerne l'envoi du mail.
Les destinatairesIl est possible renseigner 3 types de destinataire :
- Un code utilisateur de S7.
- Un groupe d'utilisateur de S7
- Une adresse mail
Le destinataire "CC" n'est pas obligatoire.
La prioritéIl est possible définir la priorité du mail qui sera envoyé :
- Maximale
- Haute
- Normale
- Basse
- Minimale
Je renseigne la partie "Choix de la table et des champs"
Je sélectionne la table. Si elle possède déjà des triggers, SYLOB 7 me les montre.
NB : Pour en savoir plus sur la liste des triggers, voir ici.Je sélectionne les attributs de l'entité.
Un double-clic sur l'icône ou permet de sélectionner ou de désélectionner un attribut.
Remarque
Tous les attributs avec une coche verte sont considérées comme des valeurs potentiellement utilisables dans le corps du mail.
Il est possible de sélectionner jusqu'à 20 attributs sauf dans le cas d'un événement de type "Update" qui a été créé avec l'option "Valeurs précédentes" cochée. Dans ce cas le nombre d'attribut à sélectionner est de 10 : chacun possédant 2 valeurs, l'actuelle et la précédente.
ExempleSur cet écran, on peut remarquer le trigger "t_tab_devise_189_u" sur l'événement "Update".
10 clés sont utilisées (val_cle1 → val_cle10) et vont contenir des valeurs de différents types :- Type "val.___" qui sont les valeurs après mise à jour (Exemple : val.cd_devise, val.libelle, val.change, val.unit_ch, et val.cd_cmptb)
- Type "pre.___" qui sont les valeurs précédent la mise à jour (Exemple : pre.cd_devise, pre.libelle, pre.change, pre.unit_ch et pre.cd_cmptb)
Ci-dessous, le détail des balises utilisables avec leur correspondance:
La balise ^1 correspond au code devise après modification
La balise ^2 correspond au libellé après modification
La balise ^3 correspond au change après modification
La balise ^4 correspond à l'unité de change après modification
La balise ^5 correspond au code comptable après modification
La balise ^6 correspond au code devise avant modification
La balise ^7 correspond au libellé après modification
La balise ^8 correspond au change après modification
La balise ^9 correspond à l'unité de change après modification
La balise ^10 correspond au code comptable après modificationles valeurs de type pre.____ ne sont utilisées que pour des événements "Update" avec prise en compte des valeurs précédentes.
Je renseigne la partie "Choix des sociétés".
Un double-clic sur l'icône ou permet de sélectionner ou de désélectionner une société.
Remarque
Attention, le choix des sociétés ne concerne que le déploiement du trigger, mais en aucun cas, le flux d'information. C'est-à-dire que pour un trigger déployé sur plusieurs sociétés, il sera quand même nécessaire de se connecter sur chacune d'elles pour paramétrer le flux d'information associé.
Par exemple, je suis connecté sur la société 1 et je déploie un trigger sur la société 99. La validation de ma saisie est enregistrée sur la société 1.
Sur la société 99, le trigger est déjà créé mais pour l'utiliser, il me faut lui paramétrer un flux d'information.
Je peux cliquer sur le bouton "Requête SQL".
L'écran ci-dessous s'ouvre et je peux consulter la requête de création du trigger :
Je coche la case "Déploiement trigger"
NB : Dans le cas d'un événement "Update", le bouton "Valeurs précédentes" permet d'indiquer si le trigger doit traiter les données avant leur mise à jour. (Cf l'exemple du paragraphe 4)Je renseigne la partie "Condition d'envoi".
Dans ce cas le déclenchement du trigger ne suffit plus pour envoyer le mail, la condition doit être aussi valide.ExempleDans cet exemple le système va envoyer un mail uniquement si la devise est créée avec un change supérieur à 1.
Le bouton "Tester" permet de valider la bonne syntaxe de la requête.
- Je clique sur l'onglet "Message & Champs utilisateurs"
NB : La saisie de la zone "Entête" est obligatoire. En effet elle est le sujet du mail qui sera reçu par les destinataires.
Pour savoir comment renseigner le corps du mail, voir ici.
Je valide ma saisie. Je confirme la validation en répondant "Oui" au message d'avertissement.
Quelque soit l’événement, "Delete", "Update" ou "Insert", la méthode de création du trigger est identique.
Pour que les modifications d'un trigger soient prises en compte, il faut systématiquement cocher "Déploiement trigger".