Débogage des règles métier
Le débogage des règles métier peut être réalisé avec les ressources disponibles dans le ServiceNow produit.
1. Outils
La première étape du processus consiste à identifier les outils qui vous aideront à comprendre ce qui ne va pas.
| Outil de débogage | Description |
|---|---|
| Dictionnaire système | Accédez à la . Le dictionnaire fournit une liste de toutes les tables au sein de votre instance et peut s’avérer précieux lorsque vous essayez de localiser des informations. |
| Journal système | Accédez à la . Vous pouvez placer des déclarations d’alerte dans votre règle métier qui peuvent écrire des informations dans le journal. |
| Déboguer une règle métier (détails) | Accédez à la . Ce module de débogage affiche les résultats des règles métier. Utilisez ce module pour voir si les conditions sont remplies et si les valeurs sont définies comme prévu. |
| Messages d'alerte | Il existe plusieurs fonctions système qui vous permettent d’imprimer des messages sur la page, le champ ou le fichier journal. Consultez Alertes, informations et messages d’erreur de scripting. |
| Exemples de règles métier | Parfois, vous pouvez trouver ce que vous cherchez dans les scripts que d’autres ont écrits, y compris les messages d’erreur de règle métier ou en créant une requête OR. |
| Informations GlideRecord | Il s’agit de la syntaxe de base utilisée pour interroger la base de données à la recherche d’informations. Consultez Interrogation des tables dans le script. GlideRecord inclut également la prise en charge de l’agrégation. |
2. Les variables
L’étape suivante consiste à mieux comprendre le comportement de votre règle métier. Pour chaque action, à l’exception d’une insertion, vous utiliserez probablement une requête pour obtenir votre ou vos enregistrements.
var rec = new GlideRecord('incident');
rec.addQuery('active',true);
rec.query();
while (rec.next()) {
gs.print(rec.number + ' exists');
}
Pour vérifier si votre requête renvoie réellement des enregistrements, vous pouvez utiliser gs.addInfoMessage pour afficher des informations en haut de l’écran.
var rec = new GlideRecord('incident');
rec.addQuery('active',true);
rec.query();
gs.addInfoMessage("This is rec.next: " + rec.next());
while (rec.next()) {
gs.print(rec.number + ' exists');
}
Si votre requête ne renvoie aucun enregistrement, les éléments suivants s’affichent :
This is rec.next: false
Utilisez cette technique pour vérifier que chaque variable de votre règle métier contient des valeurs attendues.
3. Localisation de l’information
La dernière étape consiste à vous assurer que vous savez où trouver les informations recherchées par votre règle.
Dans l’application ServiceNow , une table peut en étendre une autre. Cela signifie que lorsque vous recherchez des informations, vous devrez peut-être interroger la table parente pour obtenir le sys_id de la table étendue afin de trouver ce que vous recherchez.
Un bon exemple est la table sc_task, qui étend la table de tâches. Le script ci-dessous interroge la table étendue (sc_task) pour le sys_id actuel, puis interroge la table parente (tâche) pour les enregistrements avec le sys_id correspondant, puis imprime le champ Notes de travail.
var kids = new GlideRecord('sc_task');
kids.query();
gs.addInfoMessage("This is requested item number: " + current.number);
gs.print("This is the requested item number: " + current.number);
while (kids.next()) {
var parents = new GlideRecord('task');
parents.addQuery('sys_id', '=', kids.sys_id);
parents.query();
while(parents.next()) {
gs.addInfoMessage("This is task number: " + parents.number);
gs.print("This is task number: " + parents.number);
gs.addInfoMessage("These are the work notes: " + parents.work_notes);
gs.print("These are the work notes: " + parents.work_notes);
}
}