Débogage de 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 instructions d’alerte dans votre règle métier qui peut é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ègles métier des résultats. 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 Scripting des messages d’alerte, d’informations et d’erreur. |
| Exemples de règles métier | Parfois, vous pouvez trouver ce que vous cherchez dans des scripts que d’autres ont écrits, y compris des 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 afin d’obtenir des 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 à obtenir un aperçu du comportement de votre règle métier. Pour chaque action à l’exception d’une insertion, vous utiliserez plus que 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 les 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 que votre règle recherche.
Dans l’application ServiceNow , une table peut en étendre une autre. Par conséquent, lorsque vous recherchez des informations, vous devrez peut-être interroger la table parent pour connaître 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);
}
}