Les règles métier


Definition

Une règle métier est un mécanisme permettant d'exécuter des processus lors de la survenue d'un événement dans une table d'une base Service Manager : insertion d'un enregistrement, modification des champs d'un enregistrement.

EndDefinition

Ces processus sont séquencés en un ensemble d'actions réalisées au cours d'étapes définies via un éditeur graphique, et sont démarrés lorsque la condition SQL de déclenchement associée à la règle est vérifiée. Un outil de débogage permet d'en suivre le déroulement.

Chaque étape :

  • décrit le type d'action à réaliser : il s'agit uniquement d'actions automatiques, sans intervention humaine ;

    exemple  Envoi d'un e-mail ; Appel d'un web service SOAP ; Appel d'une API REST

  • peut être réalisée de façon linéaire ou en parallèle d'autres étapes ;
  • peut être associée à des conditions d'entrées (étapes conditionnelles) ;
  • peut conserver en mémoire des informations sous la forme de variables d'instance, réutilisables dans la suite du processus.

Exemple

Lors de l'entrée d'un nouveau matériel dans le parc, ou lors de l'affectation d'un matériel à un nouvel utilisateur, une notification par mail est envoyée au responsable du matériel concerné ; dans les 2 cas, le contenu de l'e-mail est identique ==> Comment définir des règles métier utilisant un processus commun ?

1. Créez 2 règles métier :

  • Règle métier 1, déclenchée à la création d'une nouvelle fiche Matériel :
    • table principale AM_ASSET ; déclencheur en ajout
  • Règle métier 2, déclenchée à la mise à jour du champ Prochain utilisateur d'une fiche Matériel existante :
    • table AM_ASSET ; déclencheur en modification, sur le champ NEXT_USER_ID

2. Associez le même processus, en créant les étapes suivantes :

  • une étape Début
  • une étape Envoi de mail :
    • envoi d'un e-mail au rôle Responsable du matériel
    • contenu du message : référence du matériel et date de la mise à jour
  • une étape Fin

Remarques

  • Les règles métier sont gérées par plusieurs paramètres divers (paramètres préfixés par {ADMIN} BR (Business Rule)).
  • Les événements de création concernant des demandes au service informatique sont gérés par des workflows et non par des règles métier. 
  • La définition d'une règle métier se fait en 2 phases : déclaration de la règle puis association des processus qu'elle doit exécuter.
  • Les processus peuvent être définis :
    • soit de façon autonome : dans ce cas, ils sont disponibles pour l'ensemble des règles utilisant la même table, et deviennent actifs uniquement lorsqu'ils sont liés à une règle métier ;
    • soit directement depuis une règle métier : dans ce cas, ils sont directement liés à la règle, et deviennent également disponibles pour d'autres règles utilisant la même table.
  • Un processus défini sur une table peut être associé à une ou plusieurs règles métier définies sur la même table.
  • Toute modification apportée à un processus lié s'applique automatiquement à l'ensemble des règles métier auxquelles il est associé.
  • Il ne peut pas y avoir de fin prématurée d'un processus lié : celui-ci doit toujours se dérouler jusqu'à l'étape Fin.
  • Les règles métier dont les processus n'ont pas pu se dérouler jusqu'à la fin sont placées dans le filtre Erreur de la liste des règles. Il peut s'agir :
    • d'une règle dont la condition SQL de déclenchement est erronée ;
    • d'une règle dont l'un des processus possède une incohérence au niveau de l'enchaînement des étapes.

Bonnes pratiques

  • Pour faciliter l'écriture des règles métier, des alias (modèles) sont fournis par EasyVista. Toutes les fois que cela est possible, utilisez-les et affinez si nécessaire la condition SQL de déclenchement.

    exemple  Utilisez l'alias standard Incident et affinez la condition pour définir une règle valable uniquement pour le statut Suspendu

  • Si vous affinez la condition SQL de déclenchement d'un alias standard, sauvegardez-la dans un nouvel alias afin de créer vos propres modèles de règles métier.
  • Créez des processus liés pouvant être utilisés par plusieurs règles : cela vous permet de les associer à des règles différentes sans redéfinir tout le paramétrage des étapes.
  • Utilisez l'outil de débogage pour suivre le déroulement des processus liés aux règles métier placées dans le filtre Erreur.
  • Respectez les règles suivantes pour garantir les performances d'exécution des processus.
    • Spécifiez toujours une condition de déclenchement pour limiter les appels au processus ; déplacez les tests présents dans le processus au niveau de cette condition.
    • Évitez le déclenchement sur la totalité des champs de la table car le processus peut boucler indéfiniment (notamment lors d'une mise à jour des données). Pour une règle métier déclenchée en mise à jour sur un champ donné, n'effectuez pas une mise à jour de ce champ dans une étape de mise à jour interne.
    • Évitez les processus occasionnant le déclenchement d'autres règles métier.
    • Ne multipliez pas les règles métier sur les tables à forte volumétrie (ex. : AM_ACTION, SD_REQUEST).
    • Créez plusieurs processus simples plutôt qu'un processus complexe, en définissant une condition de déclenchement par processus.
    • Optimisez le code SQL en évitant les requêtes comportant des sous-requêtes, et préférez les jointures dans les processus -  Open url.png  voir Règles d'écriture des requêtes SQL
    • Testez la règle métier sur l'environnement de test/recette avant de la mettre en production.
    • Consultez les logs d'exécution dans leur intégralité. Vérifiez que chaque règle métier s'exécute dans le délai le plus bref possible afin d'éviter les interactions (réexécution d'une règle alors que le déclenchement précédent n'est pas terminé). Une règle métier traitée ne signifie pas qu'il n'y a pas eu une erreur d'exécution.

Description des écrans

Définition d'une règle métier

Accès menu : Administration > Règles métier > Définition

Étape 1
         Business rule - step 1.png

Utiliser un alias : Modèle de règle métier permettant d'initialiser les informations d'une nouvelle règle : table principale de la règle, champs impactés dans le cas d'un déclencheur en modification, condition SQL de déclenchement. Vous pouvez ensuite affiner ces informations.

  • Une liste d'alias standard est fournie par EasyVista.
  • Si vous affinez la condition de déclenchement d'un alias standard, vous pouvez la sauvegarder en créant un nouvel alias (étape 3).

Table (Note : Renseignée automatiquement et non modifiable lorsqu'un alias est sélectionné) : Nom de la table principale utilisée par la règle métier, permettant de définir la requête SQL de déclenchement et de filtrer les processus liés à la règle (uniquement ceux définis sur la même table).
 

Étape 2
        Business rule - step 2.png

Libellé : Nom de la règle métier. 

Active : Indique si la règle est active ou non. La condition de déclenchement est évaluée uniquement pour une règle active.

Forcer l'exécution lors d’une intégration : Lors de l'exécution de la règle métier et lorsque les processus liés impactent des champs mis à jour par une intégration de données externes (ex. : intégration depuis l'annuaire LDAP), indique si les valeurs de l'intégration doivent être remplacées par les valeurs Service Manager (case cochée) ou si elles doivent être conservées (case non cochée).

Commentaire : Commentaire détaillant le fonctionnement de la règle métier. 

Table (Note : Non modifiable, sélectionnée à l’étape précédente) : Nom de la table principale de la règle métier.

Déclencheur en ajout / modification : Indique si la règle métier doit être déclenchée lors de la création d'un enregistrement ou lors de la modification d'un ou plusieurs champs liés à la table principale. Si vous sélectionnez l'option Déclenchement en modification, indiquez les champs dont la mise à jour déclenche la règle.

[ ÉDITER LA CONDITION ] (Note : Uniquement pour affiner la condition SQL de déclenchement de l'alias)
        Business rule - SQL Condition.png

  • MSSQL / Oracle : Condition SQL : Instruction SQL détaillant la condition de déclenchement de la règle métier en fonction de l'environnement de données (base SQL ou base Oracle).
    • Note : La syntaxe MSSQL doit toujours se terminer par BEGIN @@FIRETRIGGER@@ END.
  • [ ENREGISTRER COMME ALIAS ] : Sauvegarde la règle métier en tant que modèle, afin d'initialiser les informations d'une nouvelle règle métier utilisant la même table.
     

Étape 3
        Business rule - step 3.png

[ CRÉER UN NOUVEAU PROCESSUS ] : Crée un nouveau processus automatiquement lié à la règle ; il devient également disponible pour les autres règles définies sur la même table principale.

Plus icon.png : Lie un autre processus à la règle métier. Note : Seuls les processus utilisant la même table principale que celle utilisée par la règle métier sont proposés.

Edit form icon.png : Ouvre l'éditeur graphique en mode Édition, permettant de définir les étapes du processus. Note : Les modifications sont prises en compte par l'ensemble des règles métier auxquelles le processus est associé. 

Display popup icon.png : Ouvre l'éditeur graphique en mode Visualisation.
 

Définition d'un processus lié à une règle métier

BusinessRuleProperties

        Business rule - Associated process.png

Accès menu : Administration > Règles métier > Processus associés puis sur l'éditeur graphique, double-clic sur l'étape Début Graphical process editor - Start step icon.png ou clic sur Graphical process editor - Toolbar - Process properties icon.png

Nom : Nom du processus. 

Table cible : Nom de la table principale du processus, définissant son contexte d'utilisation. Seules les règles métier utilisant la même table principale peuvent être associées au processus.

Requête parent : Requête parent utilisée par le processus, permettant de définir les tags et rôles disponibles au niveau de chaque étape.

Conserver la trace d'exécution : Indique si le mode débogage est activé pour suivre le déroulement du processus via des fichiers de log (case cochée) ou non (case non cochée). Note : Pour consulter les fichiers : Administration > Règles métier > Monitoring.

BusinessRulePropertiesEnd

Procédures et Assistants

Comment créer une règle métier

Étape 1 : Création de la règle métier

1. Allez sur l'option de menu Administration > Règles métier > Définition.

2. Cliquez sur Add icon.png.
 

Étape 2 : Saisie des paramètres de la règle métier

1. Renseignez les paramètres de l'étape 1.

  • Sélectionnez l'alias de la règle pour initialiser la condition SQL de déclenchement.
  • Cliquez sur Suivant.

2. Renseignez les paramètres de l'étape 2.

  • Vous avez sélectionné l'option Déclencheur en modification : indiquez les champs dont la mise à jour va déclencher la règle.
    • soit cochez la case Tous les champs de la table si la mise à jour de n'importe quel champ déclenche la règle ;
    • soit sélectionnez les champs manuellement parmi ceux associés à la table principale ; cliquez sur Plus icon.png pour ajouter un autre champ.
  • Pour affiner la condition SQL de déclenchement de la règle métier, cliquez sur Éditer la condition.
  • Cliquez sur Suivant

3. Indiquez dans l'étape 3 les processus à exécuter lorsque la règle métier est déclenchée.

  • Cliquez sur Créer un nouveau processus.
  • Renseignez les propriétés.
  • Cliquez sur Enregistrer.
    Le tableau des processus liés est réactualisé.
  • Cliquez sur Edit form icon.png en regard du nouveau processus.
  • Configurez les étapes du processus en utilisant l'éditeur graphique.
     

Ajout d'un processus

  • Cliquez sur Plus icon.png.
     

Modification d'un processus

  • Cliquez sur le libellé N/A dans le tableau des processus liés.
    Les processus dont la requête parent contient la table principale utilisée par la règle métier sont affichés.

4. Sauvegardez la nouvelle règle métier via Enregistrer.

Note : Cliquez sur Enregistrer comme alias pour conserver la règle comme nouveau modèle.

Comment définir un séquencement de règles métier

Étape 1 : Affichage des règles métier

1. Allez sur l'option de menu Administration > Règles métier > Définition.
 

Étape 2 : Définition du séquencement des règles

Manuellement via les niveaux de priorité

1. Sélectionnez la première règle de la séquence.

  • Lancez l'assistant Niveau de priorité.
  • Saisissez le niveau de priorité 1.
  • Cliquez sur Terminer.

2. Sélectionnez la 2ème règle de la séquence.

  • Lancez l'assistant Niveau de priorité.
  • Saisissez le niveau de priorité 2.
  • Cliquez sur Terminer.

3. Répétez ces actions pour chaque règle de la séquence.

 

Via l'aide à la saisie, en définissant le séquencement par rapport à une règle de référence

1. Sélectionnez la première règle de la séquence.

  • Lancez l'assistant Niveau de priorité.
  • Saisissez le niveau de priorité 1.
  • Cliquez sur Terminer.

2. Indiquez la règle de référence.

  • Sélectionnez l'une des autres règles de la séquence.
  • Lancez l'assistant Niveau de priorité.
  • Cliquez sur le lien N/A du champ Règle métier de référence.
    La liste des règles rattachées à la même table principale et ayant un niveau de priorité est affichée.
  • Cliquez sur la règle de référence.

3. Ordonnez chacune des autres règles par rapport à la règle de référence.

  • Sélectionnez l'option souhaitée : avant, en même temps (exécution en parallèle) ou après l'exécution de la règle de référence.
    Le niveau de priorité de la règle est automatiquement calculé.
  • Cliquez sur Terminer.

Comment déboguer un processus associé à une règle métier

Étape 1 : Sélection du processus à déboguer

1. Allez sur l'option de menu Administration > Règles métier > Processus associés.

2. Ouvrez le processus à déboguer.

3. Cochez la case Conserver la trace d'exécution.

4. Enregistrez le processus.
 

Étape 2 : Consultation du rapport de déboguage

1. Attendez que la règle métier liée au processus soit exécutée.

2. Allez sur l'écran Administration > Règles métier > Monitoring - Historique.

3. Cliquez sur Display popup icon.png en regard du processus pour afficher le détail de son exécution.

Les assistants

Règles métier

Activer : Active la règle métier ; sa condition de déclenchement est alors testée. 

Désactiver : Désactive la règle métier : sa condition de déclenchement n'est alors plus testée.

Best Practice icon.png  Pour visualiser les règles métier désactivées : utilisez le filtre Archivés.

Éditeur de règle métier : Ouvre l'écran de définition de la règle métier. 

Niveau de priorité : Définit le séquencement de la règle métier par rapport à d'autres règles rattachées à la même table principale, soit en saisissant un niveau de priorité pour la règle, soit en positionnant celle-ci par rapport à une règle de référence.

Supprimer (Note : Uniquement pour un élément non utilisé dans l'application) : Supprime la règle métier. Note : Les processus liés à la règle métier ne sont pas supprimés.

Processus liés

Supprimer : Supprime le processus. Note : Vous devez d'abord supprimer toutes les liaisons entre le processus et les règles métier : Administration > Règles métier > Définition.

Tags:
Modifié par Philippe Franck le 2020/10/21 18:52
Créé par Administrator XWiki le 2013/03/25 18:11

Raccourcis

L'actualité mensuelle
•  Newsletter

Tous les changements
•  Service Manager
•  Service Apps
•  Self Help
•  Service Bots

Glossaire

Powered by XWiki ©, EasyVista 2020