Calcul de la priorité d'après l'urgence et la gravité

ITIL définit la priorité d'un incident comme la somme de son urgence et de sa gravité, moins un :
Priorité = Urgence + Gravité -1

Nous avons déjà vu comment réaliser des calculs arithmétiques simples (reportez-vous à Ajout simultané de plusieurs attributs). Nous pouvons donc maintenant créer un calcul afin de déterminer une valeur numérique pour la priorité sur la base des valeurs numériques d'urgence et de gravité. Créez trois attributs numériques sur Incident, et nommez-les Urgence, Gravité et Priorité, puis ajoutez le calcul suivant à l'attribut Priorité :

Copier
import System
static def GetAttributeValue(Incident):
    Value = Incident._Urgency + Incident._Severity – 1
    return Value

Vous pouvez alors ajouter Urgence, Gravité et Priorité à votre fenêtre Incident, et le calcul déterminera la valeur numérique de priorité.

Vous pouvez toutefois modifier ces attributs en vue d'utiliser des listes triées contenant différentes valeurs nommées. Vous pouvez avoir des valeurs Urgence et Gravité appelées Élevée, Moyenne et Faible (d'ordre 3 à 1) et cinq valeurs Priorité nommées Priorité 1 (la plus élevée, d'ordre 5) à Priorité 5 (la plus faible, d'ordre 1) :

Gravité

Nom

Ordre

 

Élevée

3

 

Moyenne

2

 

Faible

1

Urgence

Nom

Ordre

 

Élevée

3

 

Moyenne

2

 

Faible

1

Priorité

Nom

Ordre

 

Priorité 1

5

 

Priorité 2

4

 

Priorité 3

3

 

Priorité 4

2

 

Priorité 5

1

La priorité est alors déterminée à partir des valeurs d'urgence et de gravité, comme le montre le tableau suivant :

 

Gravité

Élevée

Moyenne

Faible

Urgence

Élevée

Priorité 1

Priorité 2

Priorité 3

Moyenne

Priorité 2

Priorité 3

Priorité 4

Faible

Priorité 3

Priorité 4

Priorité 5

Par exemple :
Gravité Moyenne = Ordre 2
Urgence Faible = Ordre 1
Par conséquent, l'ordre Priorité = 2 + 1 - 1 = 2
Et Priorité Ordre 2 = Priorité 4

Cet exemple utilise les objets classés Incident - Urgence et Gravité fournis par le module Gestion des incidents pour calculer un numéro d'ordre qui servira à déterminer la valeur du nouvel attribut classé nommé Priorité calculée, que nous allons créer dans le module Gestion des incidents.

La réalisation de ce calcul comprend trois étapes :

  1. Créez le nouvel objet classé, liez-le à Incident, puis remplissez-le. Il est recommandé de ne pas utiliser l'Assistant de création d'attributs pour cette opération, afin de mieux pouvoir contrôler les conventions d'appellation.
  2. Ajoutez le calcul au nouvel objet classé.
  3. Ajoutez les contrôles à la fenêtre Incident.
Pour créer un nouvel objet classé :
  1. Dans Concepteur d'objet, cliquez sur le module Gestion des incidents dans l'arborescence Objets d'affaires, puis cliquez sur Nouvel objet d'affaires dans la liste Actions.
    La fenêtre de message Sélection du comportement s'affiche et vous demande si vous souhaitez indiquer un comportement.
  2. Cliquez sur Oui.
    La boîte de dialogue Sélection du comportement s'affiche.
  3. Dans la liste Éléments disponibles, sélectionnez Classé (Création uniquement), puis cliquez sur .
    L'entrée Classé (Création uniquement) est ajoutée à la liste Éléments sélectionnés.
  4. Cliquez sur OK.
    Le nouvel objet d'affaires est créé.
  5. Dans la grille des propriétés, entrez le titre Priorité calculée, puis cliquez sur .
    Le programme vous demande si vous souhaitez créer un attribut Nom.
  6. Cliquez sur Oui.
    L'objet Priorité calculée est enregistré. Remarquez que ce nom est _PrioritéCalculée. Nous l'utiliserons plus tard. Notez également que l'attribut Ordre est ajouté. Vous devez à présent lier cet objet à l'objet Incident.
  7. Dans l'arborescence Objets d'affaires, faites glisser l'objet Priorité calculée vers l'objet Incident.
    Un message vous demande si vous souhaitez pouvoir accéder à toutes les instances liées d'Incident depuis Priorité calculée.
  8. Cliquez sur Non.
    La relation est créée. Dans l'arborescence Attributs de l'incident, vous pouvez voir l'entrée Priorité calculée.
  9. Cliquez sur .
    L'objet est enregistré. Il faut maintenant créer une fenêtre pour l'objet, puis créer les valeurs à l'aide du composant Administration.
  10. Dans Gestionnaire de fenêtre, créez une nouvelle fenêtre pour Gestion des incidents\Priorité calculée en ajoutant uniquement Nom.
  11. Dans le composant Administration, affichez l'arborescence Listes triées, puis créez cinq valeurs Priorité calculée.

Nous pouvons maintenant ajouter le calcul requis à l'attribut Priorité calculée dans l'objet Incident. Ce calcul lit la valeur requise dans la liste triée Priorité calculée.

Pour ajouter le calcul :
  1. Dans Concepteur d'objet, ouvrez l'objet Gestion des incidents\Incident, puis cliquez sur Priorité calculée.
  2. Dans la grille des propriétés pour Priorité calculée, définissez Type de calcul sur Avant sauvegarde.
    La fenêtre Modifier la formule correspondant à Priorité calculée s'affiche.
  3. Dans le champ Éditeur, transformez le calcul en :
Copier
import System
static def GetAttributeValue(Incident):
    if Incident._IncidentUrgency == null:
        return null
    if Incident.Severity == null:
        return null
    Value = Incident._IncidentUrgency.Rank + Incident.Severity.Rank - 1
    return Incident.GetRankedObject("IncidentManagement._CalculatedPriority", Value)
  1. Cliquez sur Tester la syntaxe pour vérifier que le calcul ne contient aucune erreur de structure, puis cliquez sur OK.
    Le calcul est ajouté à l'attribut.
  2. Cliquez sur .
    Les modifications sont enregistrées.

Les lignes if et return null définissent la valeur de Priorité calculée sur NULL (vide) si l'une des listes Gravité ou Urgence est effacée. Sinon, la valeur précédemment calculée pour Priorité calculée est conservée.
La ligne finale return Incident.GetRankedObject("IncidentManagement._CalculatedPriority", Value) renvoie le nom de l'entrée Priorité calculée qui correspond à la valeur d'ordre calculée.

L'étape finale consiste à ajouter les contrôles à la fenêtre Incident.

Pour ajouter les contrôles à la fenêtre :
  1. Dans Gestionnaire de fenêtre, ouvrez la fenêtre Incident, et ajoutez les champs Urgence de l'incident, Gravité et Priorité calculée.
  2. Dans la grille des propriétés pour Urgence de l'incident et Gravité, configurez Est calculé en cas de changement sur True (Vrai), puis enregistrez la fenêtre.
    Lorsque vous journalisez un incident, et que vous remplissez les champs Urgence de l'incident et Gravité, le champ Priorité calculée est automatiquement rempli avec la valeur appropriée.