Vous êtes sur la page 1sur 38

Les rgles mtier

1
Historique du document
Version Date Auteur Modifications effectues
1.0 18/07/2010 Laurent SEYMAN Cration du document
1.1 05/10/2012 Laurent SEYMAN Ajout de la section relative aux bonnes pratiques
1.2 11/10/2012 Laurent SEYMAN Mise la charte graphique 2012
1.3 13/08/2013 Laurent SEYMAN Mise jour pour EasyVista 2013

Le prsent document traite des rgles mtier d'EasyVista accessibles depuis le menu Rgles mtier du module
Administration. Il constitue un recueil des rgles mtier mises en place lors de prestations ralises chez nos clients et
auprs de nos partenaires aussi son contenu est-il susceptible d'voluer en permanence.

2
Sommaire
A. Dfinition 5

B. Principe de fonctionnement 5

C. Les tapes de cration dune rgle mtier 6


C.1. Dfinition de la rgle mtier........................................................................6
C.2. Dfinition du ou des processus associ(s)...............................................7
C.3. Test de la rgle mtier.................................................................................8

D. Les rgles mtier prsentes en standard 9


D.1. Email aux intervenants/groupes ayant des actions faire.....................9
D.2. Calcul du dlai de prise en charge d'un incident...................................11
D.3. Calcul du temps de traitement d'un info-grant sur un incident..........14

E. Exemples de rgles mtier mises en uvre 19


E.1. Mise jour du responsable de l'employ avec le responsable d'entit19
E.2. Recopie de la date de ralisation souhaite...........................................20
E.3. Notification du demandeur lors du traitement de son incident............21
E.4. Notification du demandeur lors de la redirection ou l'escalade
de son incident...........................................................................................23
E.5. Reprise automatique des incidents suspendus.....................................26
E.5.1. Paramtrage de l'alerte planifie 26
E.5.2. Dfinition du WebService 28
E.5.3. Paramtrage de la rgle mtier 29

E.6. Mise jour du groupe responsable de l'incident...................................30


E.7. Alignement de la localisation de l'incident sur celle du demandeur....32

F. Les paramtres divers des rgles mtier33


F.1. PROCESS_MAX_RECURSION..................................................................33
F.2. PROCESS_TIME_RECURSION.................................................................33
F.3. PROCESS_POOLING_MAX_THREAD......................................................33
F.4. PROCESS_POOLING_TIME......................................................................34

3
G. Import/Export de rgles mtier 34
G.1. Export de rgles mtier.............................................................................34
G.2. Import de rgles mtier.............................................................................34

H. Les assistants des rgles mtier 34


H.1. Activer.........................................................................................................34
H.2. Dsactiver...................................................................................................34
H.3. Editeur de rgle mtier..............................................................................34
H.4. Niveau de priorit.......................................................................................35
H.5. Supprimer...................................................................................................35

I. Le menu Monitoring 35
I.1. Monitoring - Activit...................................................................................35
I.2. Monitoring - Historique..............................................................................35

J. Prcautions : les bonnes pratiques 36

4
A. Dfinition
Les rgles mtier sont des mcanismes permettant dexcuter des processus (ou workflows) lors de la survenue dun
vnement de base de donnes (ajout, modification dun ou de plusieurs champs). Ces processus sont limits aux types
d'action suivants :

Calcul de la date de rsolution maximum

Envoi de mail

Etape conditionnelle

Etape de mise jour interne

Etape WebService

Traitement automatique

.. lexception des tapes ncessitant une intervention manuelle (traitement, validation, valuation) qui ne sont pas
autorises. Les rgles mtier ont t introduites par la version 2010 d'EasyVista, par consquent il n'est pas envisageable de
les utiliser dans une version antrieure.

B. Principe de fonctionnement
Le principe de fonctionnement est le suivant :

A chaque vnement rfrenc sur une table, le systme ajoutera automatiquement un trigger (si plusieurs
vnements sont lis une seule table, un seul trigger sera ajout).

Ce trigger sera charg lors de la survenue de lvnement concern dcrire dans une table ddie
(SD_PROCESS_POOL) des informations sur lvnement (champs modifis, valeurs avant et aprs etc.)

Un mcanisme systme (le Pool Manager) situ dans le serveur applicatif scanne en permanence cette table
pour chacun des comptes grs et lance le(s) processus associ(s) lvnement. Le dlai de scanning est, par
dfaut, de deux minutes. Il peut tre modifi via un paramtre divers (voir la fin de ce document). Ce scan est
important pour toute modification effectue hors de lenvironnement directe dutilisation dEasyVista (comme des
intgrations).

A chaque survenue dun vnement dinsertion ou de mise jour dans la base, le serveur applicatif vrifie si une
rgle de gestion est associe cet vnement et rveille le cas chant le Pool Manager pour lui permettre
dexcuter le(s) processus correspondant.

Les principaux constituants dune rgle mtier sont :

Le trigger SQL : Ce trigger est gnr par le systme lorsquune rgle mtier est ajoute sur une table. Il
contient le mcanisme dcriture dans la table du pool de processus. Il existe en version SQL et en version
Oracle. Vous avez la main sur ce trigger afin den diter les conditions dentre.

Les paramtres : Il sagit dindiquer les conditions dexcution de la rgle mtier. Une rgle mtier peut
sexcuter en ajout ou modification et dans ce cas sur un ou plusieurs champs de la table concerne.

Le processus associ : Ce workflow est excut chaque survenue de lvnement. Cette procdure est
valable quel que soit lobjet importer.

5
C. Les tapes de cration dune rgle mtier
Dans lexemple qui suit, nous allons utiliser un processus trs simple afin de modifier le statut d'un matriel pr-affect un
utilisateur. Cet vnement se produit en modification de la valeur contenue dans le champ Prochain utilisateur
(NEXT_USER_ID). La cration dune rgle mtier passe par une tape de dfinition, une tape de gestion des workflows
associs et une tape de test.

C.1. Dfinition de la rgle mtier

Lajout dune rgle seffectue laide du bouton du menu Rgles mtier > Dfinition :

Il est possible dutiliser un alias cest dire un modle prexistant ou de slectionner directement la (ou les) table(s) sur laquelle
va porter la rgle. La slection dun alias vise simplifier lcriture de rgles complexes dans la mesure o elle intgre dj la
table et le test correspondants. Dans notre exemple, la rgle mtier mettre en place nimplique pas de filtre complexe aussi
est-il possible de slectionner directement la table des matriels (AM_ASSET) :

6
Les champs renseigner sont les suivants :

Libell : nom de la rgle mtier

Active : cocher pour activer le fonctionnement de la rgle mtier

Forcer lexcution lors dune intgration : pour activer le processus correspondant la rgle mtier lors dune
intgration de donnes

Commentaire : commentaire dtaillant le fonctionnement de la rgle mtier

Table : nom de la table impacte par la rgle mtier (en lecture seule car choisie ltape prcdente)

Dclencheur en ajout : dclenche la rgle mtier en insertion denregistrement

Dclencheur en modification : dclenche la rgle mtier en dition denregistrement.

Cliquer sur le bouton afin de saisir la condition SQL de dclenchement de la rgle mtier. L'opration de
mise jour, quant elle, sera ralise par le processus associ. La syntaxe peut tre lgrement diffrente selon quon travaille
sur une base SQL ou Oracle. Dans notre exemple (SQL) celle-ci doit toujours se terminer par BEGIN @@FIRETRIGGER@@
END :

Une fois saisie, la condition peut tre enregistre comme alias ce qui permettra de lutiliser sur dautres rgles mtier.

C.2. Dfinition du ou des processus associ(s)


Les workflows associs des rgles mtiers sont spcifiques et de ce fait leur conception ne seffectue pas dans la table de
rfrence ddie mais directement sur lassistant :

7
Dans l'exemple ci-dessous, nous allons utiliser une tape de mise jour interne afin de modifier le statut du matriel :

Rappel : la spcificit des workflows associs aux rgles mtier limite les types dactions disponibles aux valeurs
suivantes : Envoi de mail, Calcul de la date de rsolution maximum, Etape conditionnelle, Etape de mise jour interne,
Etape WebService, Traitement Automatique.

C.3. Test de la rgle mtier


La phase de test est indispensable pour sassurer du bon fonctionnement de la rgle mtier. Dans notre exemple celle-ci
consiste renseigner le nom du prochain utilisateur du matriel laide de lassistant Pr affectation afin de constater le
changement de statut du matriel :

8
Le bon droulement dune rgle mtier peut galement tre visualis dans lhistorique du monitoring (menu Rgles mtier >
Monitoring - Historique) :

D. Les rgles mtier prsentes en standard


Les exemples dcrits ci-dessous sont prsents en standard dans la base de jeu d'essai d'EasyVista. Seules les rgles mtier
oprationnelles sont dcrites l'exception des modles de rgles.

D.1. Email aux intervenants/groupes ayant des actions


faire
Objectif : envoyer une relance sous forme de mail aux intervenants ayant des actions faire
Prrequis : aucun

La condition ci-dessous permet de limiter le dclenchement de la rgle mtier aux seules actions d'incident :

9
IF EXISTS (SELECT * FROM INSERTED INNER JOIN SD_CATALOG ON SD_CATALOG.SD_CATALOG_ID =
INSERTED.SD_CATALOG_ID INNER JOIN AM_REFERENCE SD_CATALOG_REF ON SD_CATALOG.CATEGORY_ID =
SD_CATALOG_REF.REFERENCE_ID WHERE SD_CATALOG_REF.REFERENCE_GUID = '{E9C336A1-F7A7-4145-9F28-
FDD883BFF389}') BEGIN @@FIRETRIGGER@@ END

Le processus appliquer se compose d'une unique tape d'envoi de mail:

Ci-joint le dtail de l'tape d'envoi de mail :

10
D.2. Calcul du dlai de prise en charge d'un incident
Objectif : calculer le temps qui s'coule entre la cration de l'incident et le dbut de traitement de celui-ci
Prrequis : le champ libre 1 doit tre rendu visible sur la fiche de l'incident

La condition permet de limiter le dclenchement du calcul de dlai de prise en charge aux seuls incidents :

IF EXISTS (SELECT * FROM INSERTED INNER JOIN SD_REQUEST ON SD_REQUEST.REQUEST_ID =


INSERTED.REQUEST_ID INNER JOIN SD_CATALOG ON SD_CATALOG.SD_CATALOG_ID =
SD_REQUEST.SD_CATALOG_ID INNER JOIN AM_REFERENCE SD_CATALOG_REF ON SD_CATALOG.CATEGORY_ID =
SD_CATALOG_REF.REFERENCE_ID WHERE SD_CATALOG_REF.REFERENCE_GUID = '{E9C336A1-F7A7-4145-9F28-
FDD883BFF389}') BEGIN @@FIRETRIGGER@@ END

11
Le processus appliquer se compose d'une tape conditionnelle et de deux tapes de mise jour interne :

SELECT * FROM AM_ACTION WHERE AM_ACTION.ACTION_ID = @@ID@@ AND AM_ACTION.START_DATE_UT


IS NOT NULL AND AM_ACTION.ACTION_ID IN ( SELECT MIN(AM_ACTION.ACTION_ID) FROM AM_ACTION
INNER JOIN AM_ACTION_TYPE ON AM_ACTION_TYPE.ACTION_TYPE_ID = AM_ACTION.ACTION_TYPE_ID
INNER JOIN SD_REQUEST ON SD_REQUEST.REQUEST_ID = AM_ACTION.REQUEST_ID
INNER JOIN SD_CATALOG ON SD_CATALOG.SD_CATALOG_ID = SD_REQUEST.SD_CATALOG_ID
INNER JOIN AM_REFERENCE SD_CATALOG_REF ON SD_CATALOG_REF.REFERENCE_ID =
SD_CATALOG.CATEGORY_ID WHERE AM_ACTION_TYPE.ACTION_TYPE_GUID in ('{73A8ECF9-DBB0-49CA-
8D3B-55D6C46008D7}', '{5A2C97E9-9982-4A0C-8E8A-29BEC12B39D1}', '{F51E3FAA-05B1-474F-AA32-
0BB8C3D261BD}') AND AM_ACTION.REQUEST_ID IN (SELECT REQUEST_ID FROM AM_ACTION WHERE
ACTION_ID=@@ID@@) GROUP BY AM_ACTION.REQUEST_ID)

12
SELECT {@getSLADelay(SD_REQUEST.SUBMIT_DATE_UT,AM_ACTION.START_DATE_UT, SD_REQUEST.SLA_ID,
AM_REQUESTOR.LOCATION_ID)@} FROM AM_ACTION INNER JOIN SD_REQUEST ON
SD_REQUEST.REQUEST_ID = AM_ACTION.REQUEST_ID INNER JOIN AM_EMPLOYEE AM_REQUESTOR ON
AM_REQUESTOR.EMPLOYEE_ID = SD_REQUEST.REQUESTOR_ID WHERE AM_ACTION.ACTION_ID = @@ID@@

13
UPDATE SD_REQUEST SET SD_REQUEST.AVAILABLE_FIELD_2='#[VAR.MY_DELAY]#' FROM SD_REQUEST
INNER JOIN AM_ACTION ON AM_ACTION.REQUEST_ID = SD_REQUEST.REQUEST_ID WHERE
AM_ACTION.ACTION_ID = @@ID@@

D.3. Calcul du temps de traitement d'un info-grant sur


un incident
Objectif : calculer le temps pass par une quipe de support sur un incident
Prrequis : le champ libre 1 doit tre rendu visible sur la fiche de l'incident

La condition permet de limiter le dclenchement du calcul du temps de traitement aux incidents ayant un mta-statut termin :

IF EXISTS (SELECT * FROM INSERTED INNER JOIN SD_CATALOG ON SD_CATALOG.SD_CATALOG_ID =


INSERTED.SD_CATALOG_ID INNER JOIN AM_REFERENCE SD_CATALOG_REF ON SD_CATALOG.CATEGORY_ID =
SD_CATALOG_REF.REFERENCE_ID INNER JOIN SD_STATUS ON SD_STATUS.STATUS_ID = INSERTED.STATUS_ID
INNER JOIN SD_META_STATUS ON SD_META_STATUS.META_STATUS_ID = SD_STATUS.META_STATUS_ID WHERE
SD_META_STATUS.META_STATUS_GUID = '{FADD193C-E50F-4AB8-BE4B-928D6E2B2CD4}' AND
SD_CATALOG_REF.REFERENCE_GUID = '{E9C336A1-F7A7-4145-9F28-FDD883BFF389}') BEGIN @@FIRETRIGGER@@
END

14
Le processus appliquer se compose d'une succession d'tapes conditionnelles et de mise jour interne :

15
16
17
18
E. Exemples de rgles mtier mises en uvre
Les exemples ci-dessous constituent un ventail des rgles mtier mises en place auprs de nos clients ou partenaires. Elles
seront listes par niveau de difficult croissant. Pour chaque rgle, on dcrira le traitement raliser, l'vnement dclencheur
et le processus appliqu. Seule la version SQL du code pour la condition sera fournie.

E.1. Mise jour du responsable de l'employ avec le


responsable d'entit
Objectif : recopier sur la fiche de l'employ le responsable de l'entit de cet employ
Prrequis : les responsables d'entits doivent tre associs chaque entit sans exception

19
La condition permet de limiter le dclenchement de la rgle mtier aux seuls employs pour lesquels le responsable
hirarchique est vide :

IF EXISTS (SELECT MANAGER_ID FROM INSERTED WHERE MANAGER_ID IS NULL) BEGIN @@FIRETRIGGER@@
END

Le processus appliquer se compose d'une unique tape de mise jour interne :

UPDATE AM_EMPLOYEE SET MANAGER_ID=AM_DEPARTMENT.MANAGER_ID FROM AM_DEPARTMENT INNER JOIN


AM_EMPLOYEE ON AM_DEPARTMENT.DEPARTMENT_ID = AM_EMPLOYEE.DEPARTMENT_ID WHERE
AM_EMPLOYEE.EMPLOYEE_ID=@@ID@@

20
E.2. Recopie de la date de ralisation souhaite
Objectif : faire en sorte que la date de ralisation souhaite d'une demande, saisie via un questionnaire, soit recopie sur la
fiche de la demande
Prrequis : le questionnaire permettant la saisie de la date de ralisation souhaite de la demande doit tre associ au
workflow.

La condition permet de limiter le dclenchement de la rgle mtier la rponse effectue dans le questionnaire :

IF EXISTS (SELECT * FROM INSERTED WHERE QUESTION_ID = 3) BEGIN @@FIRETRIGGER@@ END

Le processus appliquer se compose d'une unique tape de mise jour interne :

UPDATE SD_REQUEST SET SD_REQUEST.REQUESTED_CHANGE_DATE_END=SD_QUESTION_RESULT.RESULT_DATE


FROM SD_REQUEST INNER JOIN SD_QUESTION_RESULT ON
SD_QUESTION_RESULT.REQUEST_ID=SD_REQUEST.REQUEST_ID AND SD_REQUEST.REQUEST_ID = (SELECT
REQUEST_ID FROM SD_QUESTION_RESULT WHERE @@ID@@)

21
E.3. Notification du demandeur lors du traitement de son
incident
Objectif : envoyer un mail de notification au demandeur lorsque l'action de traitement de son incident/demande/problme est
prise en compte par un intervenant
Prrequis : aucun

La condition permet de limiter le dclenchement de la rgle aux seules actions de traitement opration et traitement transition
engendres par le traitement d'un incident, d'une demande de service ou de changement, un problme.

IF EXISTS (SELECT * FROM INSERTED


INNER JOIN AM_ACTION_TYPE ON AM_ACTION_TYPE.ACTION_TYPE_ID = INSERTED.ACTION_TYPE_ID
INNER JOIN SD_REQUEST ON SD_REQUEST.REQUEST_ID = INSERTED.REQUEST_ID
INNER JOIN SD_CATALOG ON SD_CATALOG.SD_CATALOG_ID = SD_REQUEST.SD_CATALOG_ID
INNER JOIN AM_REFERENCE SD_CATALOG_REF ON SD_CATALOG_REF.REFERENCE_ID =
SD_CATALOG.CATEGORY_ID
INNER JOIN AM_DEPARTMENT ON SD_REQUEST.DEPARTMENT_ID = AM_DEPARTMENT.DEPARTMENT_ID
WHERE AM_ACTION_TYPE.ACTION_TYPE_GUID IN ('{5A2C97E9-9982-4A0C-8E8A-29BEC12B39D1}', '{79D3DE90-FF41-
408D-9705-35599029F2D3}')
AND SD_CATALOG_REF.REFERENCE_GUID IN ('{E9C336A1-F7A7-4145-9F28-FDD883BFF389}', '{78B158B9-13BC-461B-
BFDF-7FFFA1F6F34F}', '{E93064E7-CAA7-4994-A790-49B5F1FE4EA4}', '{30EAC00A-C4D0-41B9-85E9-090C11248D06}',
'{DAD06D4C-D4A1-4F26-B715-7FB8D3E88B71}')) BEGIN @@FIRETRIGGER@@
END

22
Le processus appliquer consiste dans l'envoi d'un mail de notification au demandeur de l'incident/demande/problme :

23
E.4. Notification du demandeur lors de la redirection ou
l'escalade de son incident
Objectif : envoyer un mail de notification au demandeur lorsque son incident/demande/problme est redirig ou escalad
Prrequis : aucun

La condition permet de limiter le dclenchement de la rgle aux seules actions de traitement opration et traitement transition
engendres par la redirection ou l'escalade d'un incident, d'une demande ou d'un problme.

IF EXISTS (SELECT * FROM INSERTED INNER JOIN AM_ACTION_TYPE ON AM_ACTION_TYPE.ACTION_TYPE_ID =


INSERTED.ACTION_TYPE_ID INNER JOIN SD_REQUEST ON SD_REQUEST.REQUEST_ID = INSERTED.REQUEST_ID
INNER JOIN SD_CATALOG ON SD_CATALOG.SD_CATALOG_ID = SD_REQUEST.SD_CATALOG_ID INNER JOIN
AM_REFERENCE SD_CATALOG_REF ON SD_CATALOG_REF.REFERENCE_ID = SD_CATALOG.CATEGORY_ID INNER
JOIN AM_DEPARTMENT ON SD_REQUEST.DEPARTMENT_ID = AM_DEPARTMENT.DEPARTMENT_ID WHERE
AM_ACTION_TYPE.ACTION_TYPE_GUID IN ('{5A2C97E9-9982-4A0C-8E8A-29BEC12B39D1}', '{79D3DE90-FF41-408D-
9705-35599029F2D3}') AND SD_CATALOG_REF.REFERENCE_GUID IN ('{E9C336A1-F7A7-4145-9F28-FDD883BFF389}',
'{78B158B9-13BC-461B-BFDF-7FFFA1F6F34F}', '{E93064E7-CAA7-4994-A790-49B5F1FE4EA4}', '{30EAC00A-C4D0-41B9-
85E9-090C11248D06}', '{DAD06D4C-D4A1-4F26-B715-7FB8D3E88B71}')) BEGIN @@FIRETRIGGER@@ END

Le processus appliquer consiste dans l'envoi d'un mail de notification au demandeur de l'incident / demande / problme
escalad ou redirig :

24
SELECT * FROM AM_ACTION INNER JOIN AM_ACTION_TYPE ON AM_ACTION_TYPE.ACTION_TYPE_ID =
AM_ACTION.ACTION_TYPE_ID WHERE AM_ACTION_TYPE.ACTION_TYPE_GUID = '{D389211B-E8CF-49D1-9D41-
B74C4C68B9D7}' AND AM_ACTION.ORIGIN_ACTION_ID IN (SELECT ORIGIN_ACTION_ID FROM AM_ACTION WHERE
ACTION_ID = @@ID@@ AND ORIGIN_ACTION_ID IS NOT NULL)

SELECT * FROM AM_ACTION INNER JOIN AM_ACTION_TYPE ON AM_ACTION_TYPE.ACTION_TYPE_ID =


AM_ACTION.ACTION_TYPE_ID WHERE AM_ACTION_TYPE.ACTION_TYPE_GUID IN ('{E7D59FBA-0EA4-4268-ADA0-
D2A93DF1BE37}', '{BD4103BF-AE42-42AD-9C7A-E6E7AC1665CC}') AND AM_ACTION.ORIGIN_ACTION_ID IN (SELECT
ORIGIN_ACTION_ID FROM AM_ACTION WHERE ACTION_ID = @@ID@@ AND ORIGIN_ACTION_ID IS NOT NULL)

25
26
E.5. Reprise automatique des incidents suspendus
Objectif : faire en sorte que la reprise des incidents suspendus soit automatique lorsque la date de reprise prvue est atteinte
(cette date est renseigne lors de la suspension)
Prrequis : la date de reprise prvue doit tre renseigne lors de la suspension. Ce champ doit tre rendu obligatoire sur
l'assistant de suspension. La mise en place d'une alerte planifie est indispensable afin de renseigner un champ qui sera utilis
comme dclencheur pour la rgle mtier.

E.5.1. Paramtrage de l'alerte planifie

E.5.1.1 Filtre
Le filtre contenu dans l'alerte planifie a pour objet de slectionner les incidents ayant :

un mta-statut gal Suspendu

une date de reprise postrieure la date courante

SD_REQUEST.STATUS_ID IN (SELECT STATUS_ID FROM SD_STATUS WHERE META_STATUS_ID=4) AND


SD_REQUEST.REQUEST_ID IN (SELECT REQUEST_ID FROM AM_ACTION WHERE END_DATE_UT IS NULL AND
EXPECTED_START_DATE_UT<GETUTCDATE())

27
E.5.1.2 Planification
Le lancement de lalerte interviendra toutes les heures :

E.5.1.3 Script excuter


Le script de l'alerte planifi va insrer un texte intitul 'Reprise suspension automatique' dans le champ libre 1 de la table des
incidents/demandes (SD_REQUEST) :

UPDATE SD_REQUEST SET AVAILABLE_FIELD_1='REPRISE SUSPENSION AUTOMATIQUE' WHERE


SD_REQUEST.REQUEST_ID IN (#LIST_ID#)

28
E.5.2. Dfinition du WebService

La dfinition du WebService s'effectue depuis le menu Paramtrages > WEBServices du module Administration en ajoutant

un enregistrement l'aide de l'icne :

http://localhost/webservice/smobridge.php?wsdl

29
E.5.3. Paramtrage de la rgle mtier

La condition de dclenchement consiste dans la mise jour du champ libre 1 de la table SD_REQUEST
(SD_REQUEST.AVAILABLE_FIELD_1) :

La condition permet de limiter le dclenchement de la rgle mtier aux seuls incidents ayant le champ libre 1 de renseign :
30
IF EXISTS (SELECT REQUEST_ID FROM INSERTED WHERE AVAILABLE_FIELD_1 IS NOT NULL) BEGIN
@@FIRETRIGGER@@ END

31
Le processus appliquer se compose d'une unique tape de lancement du WebService de reprise d'un incident
(EZV_RestartRequest) :

E.6. Mise jour du groupe responsable de l'incident


Objectif : changer le groupe responsable de l'incident sur la fiche de l'incident. Par dfaut, le groupe responsable de l'incident
est le groupe de l'intervenant ayant saisi cet incident. Le but est de remplacer ce groupe par celui qui est en charge de raliser
l'action de traitement. La mise jour du nom de groupe intervient lors de la gnration de l'action de traitement
Prrequis : aucun

32
La condition permet de limiter le dclenchement de la rgle mtier la gnration d'une action de type Traitement Opration
(ACTION_TYPE_ID =20) ou Clture Opration (ACTION_TYPE_ID =34) :

IF EXISTS (SELECT GROUP_ID FROM INSERTED WHERE GROUP_ID IS NOT NULL AND (ACTION_TYPE_ID=20 OR
ACTION_TYPE_ID=34)) BEGIN @@FIRETRIGGER@@ END

Le processus appliquer se compose d'une unique tape de mise jour interne :

UPDATE SD_REQUEST SET OWNING_GROUP_ID=AM_ACTION.GROUP_ID FROM AM_ACTION INNER JOIN


SD_REQUEST ON AM_ACTION.REQUEST_ID = SD_REQUEST.REQUEST_ID WHERE (AM_ACTION.ACTION_TYPE_ID=20
OR ACTION_TYPE_ID=34) AND SD_REQUEST.REQUEST_ID=(SELECT REQUEST_ID FROM AM_ACTION WHERE
ACTION_ID = @@ID@@)

33
E.7. Alignement de la localisation de l'incident sur celle
du demandeur
Objectif : changer la localisation de l'incident laquelle est, par dfaut, identique celle du bnficiaire au profit de celle du
demandeur
Prrequis : aucun

La condition permet de limiter le dclenchement de la rgle mtier aux seuls incidents pour lesquels le demandeur est diffrent
du bnficiaire :

IF EXISTS (SELECT REQUEST_ID FROM INSERTED WHERE RECIPIENT_ID <> REQUESTOR_ID) BEGIN
@@FIRETRIGGER@@ END

34
Le processus appliquer se compose d'une unique tape de mise jour interne :

UPDATE SD_REQUEST SET LOCATION_ID = (SELECT a.LOCATION_ID FROM AM_EMPLOYEE a


INNER JOIN SD_REQUEST b ON a.EMPLOYEE_ID = b.REQUESTOR_ID WHERE b.REQUEST_ID = @@ID@@) WHERE
REQUEST_ID = @@ID@@

Note : une rgle mtier identique peut tre mise en place afin d'aligner l'entit de l'incident sur celle du demandeur.

F. Les paramtres divers des rgles mtier


Les paramtres divers sont accessibles via le menu Paramtrages > Paramtres divers du module Administration.

Les paramtres divers relatifs aux rgles mtier sont au nombre de 4 :

F.1. PROCESS_MAX_RECURSION
Ce paramtre est li la mcanique des rgles mtier. Il permet dviter les boucles infinies entre processus qui sappelleraient
mutuellement. La valeur par dfaut du paramtre est 4 ce qui signifie que le processus rend la main si lon appelle 4 fois le
mme processus sur une dure dfinie au paramtre ci-dessous.

F.2. PROCESS_TIME_RECURSION
Ce paramtre permet de dfinir lintervalle de temps entre deux appels de procdure. La valeur par dfaut est de 2 (secondes).
Ainsi si lon cre involontairement une boucle infinie, le service SmoServer la dtecte ds quun processus est appel 4 fois en
moins de 2 secondes sur un mme enregistrement.

F.3. PROCESS_POOLING_MAX_THREAD
Ce paramtre dfinit le nombre maximal de processus pouvant tre excuts simultanment. Une valeur leve peut provoquer
des problmes de performance (10)

35
F.4. PROCESS_POOLING_TIME
Ce paramtre permet de spcifier la frquence de traitement de certains processus dclenchs par lutilisation doutils externes
(intgration modification directe dans le SQL) (120000ms soit 2 minutes)

G. Import/Export de rgles mtier

G.1. Export de rgles mtier


Il est possible d'exporter des rgles mtier et les processus associs via le menu Import/Export et Export du module
Administration. L'exportation s'effectue en deux temps : export de la rgle mtier, export de workflow / processus associ.
L'ordre dans lequel s'effectue l'export importe peu.

G.2. Import de rgles mtier


L'importation de rgles mtier doit imprativement s'effectuer dans l'ordre suivant :

import du workflow / processus associ

import de la rgle mtier

faute de quoi le processus ne serait pas automatiquement associ la rgle et ncessiterait d'tre rattach manuellement
cette dernire.

H. Les assistants des rgles mtier

H.1. Activer
Permet l'activation d'une rgle mtier. Cette fonctionnalit est galement disponible via l'assistant Editeur de rgle mtier en
cochant la case Active sur la premire page de l'assistant.

H.2. Dsactiver
Permet la dsactivation d'une rgle mtier. Cette fonctionnalit est galement disponible via l'assistant Editeur de rgle mtier
en dcochant la case Active sur la premire page de l'assistant.

H.3. Editeur de rgle mtier


Permet l'dition d'une rgle mtier et l'association d'un processus une rgle mtier.

36
H.4. Niveau de priorit
Permet de spcifier un niveau de priorit pour l'excution d'une rgle mtier. Pour ce faire, il est ncessaire qu'un niveau de
priorit ait t associ une rgle mtier (valeur numrique). Plusieurs rgles mtier peuvent avoir le mme niveau de priorit,
elles seront alors dclenches avant les rgles dont le niveau de priorit est infrieur. Un niveau de priorit de 1 est plus
prioritaire qu'un niveau de priorit de 2. Seules les rgles ayant un niveau de priorit associ peuvent tre slectionnes
comme rgles mtier de rfrence. Le choix d'une rgle mtier de rfrence permet de rcuprer le niveau de priorit de cette
dernire pour l'appliquer la rgle courante :

avec le mme niveau de priorit si l'option Insrer au mme niveau est slectionne

avec un niveau de priorit plus lev si l'option Insrer avant est slectionne

avec un niveau de priorit moins lev si l'option Insrer aprs est slectionne

H.5. Supprimer
Permet de supprimer une rgle mtier. Attention, la suppression d'une rgle mtier n'entraine pas celle du processus associ.

I. Le menu Monitoring
Ce menu est accessible depuis le module Administration > Rgles mtier.

I.1. Monitoring - Activit


Affiche l'tat de la file d'attente des rgles mtier traiter. L'absence d'enregistrements dans cette liste indique que les
processus induits par les rgles mtier sont traits.

I.2. Monitoring - Historique


Permet la visualisation de l'historique d'excution des rgles mtier et de s'assurer, el cas chant, du bon traitement effectu
par le processus :

37
Le log d'excution dtaill peut tre consult via l'icne et la section Log :

J. Prcautions : les bonnes pratiques


Les rgles mtier ncessitent de se conformer aux rgles suivantes sous peine de nuire aux performances de lapplication :

ne jamais omettre de spcifier une condition de dclenchement afin de limiter les appels au processus. A cet
effet, il est recommand, lorsque cest possible, de dplacer les tests prsents dans le processus au niveau de la
condition de dclenchement

viter le dclenchement sur la totalit des champs de la table notamment lorsquon met jour des donnes de
cette table (le processus peut alors boucler indfiniment) et viter pour une rgle mtier dclenche en mise
jour (update) sur un champ donn deffectuer une mise jour de ce mme champ dans une tape de mise jour
interne.

viter les processus occasionnant le dclenchement dautres rgles mtier

viter de multiplier les rgles mtier sur les tables forte volumtrie comme les incidents ou les actions
(SD_REQUEST et AM_ACTION).

prfrer plusieurs processus simples un seul processus compliqu en dfinissant une condition de
dclenchement par processus

veiller optimiser le code SQL en vitant, lorsque cest possible, les requtes comportant des sous-requtes et
en leur prfrant des jointures dans les processus

tester la rgle mtier sur lenvironnement de test ou de recette avant de la mettre en production

consulter les logs dexcution dans leur intgralit et veiller ce que la rgle mtier sexcute dans le dlai le
plus bref possible afin dviter les interactions (la rgle mtier se re-dclenche alors que le dclenchement
prcdent nest pas encore termin). Une rgle mtier qui est traite ne signifie pas quil ny a pas eu derreur
dexcution (plantage SQL par exemple). Il ne faut pas hsiter consulter rgulirement les logs pour vrifier
que chacune des tapes sest droule correctement.

38

Vous aimerez peut-être aussi