Aller au contenu principal

Mapping des arguments

Lorsque vous créez une règle Open Tickets (à la page Configuration > Notifications > Règles), vous pouvez définir des champs à afficher dans la popup de création de ticket. Les informations saisies par l'utilisateur seront insérées dans le corps du ticket lors de sa création.

Dans l'exemple du corps du ticket par défaut, ces informations seront importées dans le ticket par la ligne {include file="file:$centreon_open_tickets_path/providers/Abstract/templates/display_selected_lists.ihtml" separator=""}.

La personnalisation se fait via les sections suivantes :

Mapping ticket arguments​

La section Mapping ticket arguments définit les données qui vont être envoyées par Centreon à l'outil ITSM lors de l'ouverture du ticket. Le détail des données correspondantes est défini dans les sections Lists et Custom list definition. Attention, si une donnée apparaît dans les autres listes mais pas dans celle-ci, elle ne sera simplement pas envoyée à l'outil ITSM.

Chaque ligne comprend deux éléments :

  • Argument : une information prise en charge par le provider. La liste des arguments est une liste prĂ©dĂ©finie pour chaque provider. RĂ©fĂ©rez-vous Ă  la documentation correspondante pour connaĂ®tre les informations prises en charge par chaque provider.
  • Value : une fois le code interprĂ©tĂ©, la valeur exacte qui va ĂŞtre envoyĂ©e Ă  l'outil ITSM. La valeur est gĂ©nĂ©ralement constituĂ©e de code Smarty dont la signification est très importante. Prenons l'exemple ci-dessous :
{$select.urgency.value}

Il est possible de décomposer en trois éléments l'expression ci-dessus :

  • $select : la variable qui indique que l'on va prendre une valeur dans une liste d'arguments.
  • urgency : ceci est un identifiant. Il doit absolument correspondre au champ Id des Lists et des Custom list definition. Il ne peut ĂŞtre constituĂ© que de valeurs alphanumĂ©riques et d'un _. En rĂ©sumĂ©, cela doit correspondre Ă  l'expression rĂ©gulière [A-Za-Z0-9_].
  • value : dans cet exemple, la valeur exacte de la donnĂ©e va ĂŞtre envoyĂ©e Ă  l'outil ITSM et non son ID. Voir les formats des types.

Les arguments suivants ont une syntaxe différente : ne les modifiez pas.

  • Title par dĂ©faut, le titre du ticket a le format suivant : pour les hĂ´tes, Nom de l'hĂ´te/Statut de l'hĂ´te, pour les services : Nom de l'hĂ´te/Nom du service/Statut du service.
  • Content : la valeur devra ĂŞtre {$body} pour appeler l'entrĂ©e Default dans la section Body list definition .

Lists​

La section Lists définit quels champs seront affichés dans la popup de création de tickets, et dans quel ordre (en-dessous du titre et du champ Custom message). Elle est constituée des champs suivants :

  • Id : Cet ID doit absolument correspondre Ă  l'ID qui a Ă©tĂ© dĂ©fini dans la section Mapping ticket arguments. Dans l'exemple ci-dessus, le champ Value ayant Ă©tĂ© dĂ©fini par {$select.urgency.value}, l'ID dans la section Lists sera obligatoirement urgency.
  • Label : Ce libellĂ© sera le nom qui sera affichĂ© dans la popup d'ouverture du ticket.
  • Type : Correspond Ă  la source des donnĂ©es.
  • Filter : Un filtre pour limiter les rĂ©sultats obtenus.
    • Les filtres s'appliquent uniquement sur le champ Label et non pas sur le champ ID.
    • Vous pouvez utiliser des expressions rĂ©gulières PHP, ou bien appliquer directement des filtres dans l'appel aux API de l'outil ITSM.
  • Mandatory : Si la case est cochĂ©e, le ticket ne pourra ĂŞtre ouvert que si le champ est renseignĂ© dans la popup.
  • Sort : Dans la popup d'ouverture de tickets, les valeurs possibles pour cette liste seront triĂ©es par ordre alphabĂ©tique.

Vous pouvez changer l'ordre des éléments de la liste en utilisant la croix bleue à la fin de chaque ligne. L'ordre de la liste sera l'ordre d'affichage des données dans la popup d'ouverture des tickets.

Types​

Il existe trois types de listes :

  • Certaines listes rĂ©cupèrent les donnĂ©es depuis l'outil ITSM
  • Certaines rĂ©cupèrent les donnĂ©es depuis Centreon (Host Group, Host Category, Host Severity, Service Group, Service Category, Service Severity, Contact Group). Celles-ci ne sont gĂ©nĂ©ralement pas utilisĂ©es.
  • Custom: celles-ci rĂ©cupèrent les donnĂ©es depuis les Custom list definition.

Dans la section Mapping ticket arguments, il a été évoqué le code Smarty {$select.urgency.value}. L'ID urgency a été expliqué, il est temps de se concentrer sur le .value.

Pour tous les Types (sauf le type Custom) les données récupérées sont souvent de la forme suivante :

  • L'ID de la donnĂ©e dans l'outil ITSM (ou, dans de rares cas, dans Centreon).
  • Une valeur qui correspond gĂ©nĂ©ralement Ă  un label comprĂ©hensible pour les utilisateurs.

Dans notre exemple avec urgency, nous pourrions avoir comme label High et comme ID 911 lorsque la donnée est récupérée depuis l'outil ITSM. Il existe alors deux possibilités pour afficher la valeur correspondante dans la popup de création de ticket/envoyer la donnée à l'outil ITSM.

  • Si vous souhaitez envoyer l'ID Ă  l'outil ITSM lors de l'ouverture du ticket, utilisez la syntaxe {$select.urgency.id}.
  • Si vous souhaitez envoyer le label Ă  l'outil ITSM lors de l'ouverture du ticket, utilisez la syntaxe {$select.urgency.value}.

Custom list definition​

Les Custom lists servent à définir les valeurs possibles d'un champ de l'outil ITSM qui figurera dans la popup d'ouverture de tickets. Cela permet de gérer principalement deux cas de figure :

  • Il n'existe pas d'API sur l'outil ITSM pour rĂ©cupĂ©rer ce type d'objet, soit parce que l'endpoint n'existe pas, soit parce qu'il s'agit d'un champ personalisĂ© que vous avez créé vous-mĂŞme dans votre outil ITSM (seuls certains providers prennent ce cas en charge). Il faut donc dĂ©finir manuellement les valeurs possibles.
  • La règle utilisera toujours la mĂŞme valeur pour une information. Il n'est donc pas jugĂ© pertinent de faire un appel Ă  une API qui retournera le mĂŞme rĂ©sultat des centaines de fois. (Exemple: le compte utilisateur qui sera indiquĂ© comme crĂ©ateur du ticket.)

Les listes custom sont constituées des champs suivants :

  • Id : Cet ID doit absolument correspondre Ă  l'ID qui a Ă©tĂ© dĂ©fini dans le Mapping ticket arguments. Dans l'exemple ci-dessus, le champ Value ayant Ă©tĂ© dĂ©fini par {$select.urgency.value}, l'ID dans la section Custom lists sera obligatoirement urgency.
  • Une valeur : Il y est gĂ©nĂ©ralement renseignĂ© la valeur qui va ĂŞtre acceptĂ©e par les API de l'outil ITSM (c'est l'ID de la donnĂ©e dans l'outil ITSM).
  • Un label (aussi nommĂ© placeholder) : C'est la valeur qui va ĂŞtre affichĂ©e aux utilisateurs dans la popup d'ouverture de ticket.
  • Default : Cochez cette case pour dĂ©finir la valeur qui sera sĂ©lectionnĂ©e par dĂ©faut dans la popup d'ouverture de ticket.

Vous pouvez changer l'ordre des éléments de la liste en utilisant la croix bleue à la fin de chaque ligne. L'ordre de la liste sera l'ordre d'affichage des données dans le champ correspondant dans la popup d'ouverture des tickets.

Reprenons donc l'exemple du paramètre urgency. Cette fois-ci, imaginons que la valeur provient d'une custom list definition et non des API de l'outil ITSM. Nous souhaitons donc avoir une urgency nommée Low avec pour ID 118218.

La liste custom doit alors être renseignée de la façon suivante :

IdValueLabel
urgency118218Low

Vous pouvez alors choisir la donnée exacte à envoyer à l'outil ITSM :

  • Pour envoyer 118218, saisissez {$select.urgency.value} dans la section Mapping ticket arguments. C'est le paramètre value que vous voudrez envoyer dans la plupart des cas.
  • Pour envoyer Low, saisissez {$select.urgency.placeholder} dans la section Mapping ticket arguments.
  • L'expression {$select.urgency.id} renverrait le libellĂ© urgency lui-mĂŞme, mais cela n'aurait pas de sens.

Schéma​

Voici une représentation en couleur de la correspondance entre les 3 sections décrites ci-dessus :

mapping relations