Business Rules debuggen
Das Debugging von Business Rules kann mit den verfügbaren Ressourcen im ServiceNow-Produkt erreicht werden.
1. Werkzeuge
Der erste Schritt in diesem Prozess besteht darin, Werkzeuge zu identifizieren, mit denen Sie herausfinden können, was falsch ist.
| Debugging-Tool | Beschreibung |
|---|---|
| System-Dictionary | Navigieren zu an. Das Dictionary enthält eine Liste aller Tabellen in Ihrer Instanz und kann bei der Suche nach Informationen von unschätzbarem Wert sein. |
| Systemprotokoll | Navigieren zu an. Sie können in Ihre Business Rule Warnungsanweisungen einfügen, die Informationen in das Protokoll schreiben können. |
| Business-Regel debuggen (Details) | Navigieren zu an. Dieses Debugging-Modul zeigt die Ergebnisse für Business Rules an. Verwenden Sie dieses Modul, um festzustellen, ob die Bedingungen erfüllt sind und die Werte wie erwartet festgelegt werden. |
| Warnmeldungen | Es gibt verschiedene Systemfunktionen, mit denen Sie Meldungen auf die Seite, das Feld oder die Protokolldatei drucken können. Weitere Informationen finden Sie unter Warnungen, Informationen und Fehlermeldungen zur Skripterstellung. |
| Beispiele für Business Rule | Manchmal finden Sie das, wonach Sie suchen, in von anderen geschriebenen Skripts, einschließlich Fehlermeldungen zu Business Rules, oder indem Sie eine ODER-Abfrage erstellen. |
| GlideRecord-Informationen | Dies ist die grundlegende Syntax, die zum Abfragen von Informationen in der Datenbank verwendet wird. Weitere Informationen finden Sie unter Tabellen im Skript werden abgefragt. GlideRecord bietet auch Unterstützung für die Zusammenfassung. |
2. Variablen
Im nächsten Schritt erhalten Sie einen Einblick in das Verhalten Ihrer Business Rule. Für jede Aktion (außer einer Einfügung) verwenden Sie höchstwahrscheinlich eine Abfrage, um Ihre Datensätze abzurufen.
var rec = new GlideRecord('incident');
rec.addQuery('active',true);
rec.query();
while (rec.next()) {
gs.print(rec.number + ' exists');
}
Um zu überprüfen, ob Ihre Abfrage tatsächlich Datensätze zurückgibt, können Sie gs.addInfoMessage verwenden, um Informationen oben auf dem Bildschirm anzuzeigen.
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');
}
Wenn Ihre Abfrage keine Datensätze zurückgibt, wird Folgendes angezeigt:
This is rec.next: false
Verwenden Sie diese Technik, um zu überprüfen, ob jede Variable innerhalb Ihrer Business Rule die erwarteten Werte enthält.
3. Informationen finden
Der letzte Schritt besteht darin, sicherzustellen, dass Sie wissen, wo Sie die Informationen finden, nach denen Ihre Regel sucht.
In der ServiceNow-Anwendung kann eine Tabelle eine andere Tabelle erweitern. Wenn Sie nach Informationen suchen, müssen Sie möglicherweise die übergeordnete Tabelle nach der sys_id der erweiterten Tabelle abfragen, um das Gesuchte zu finden.
Ein gutes Beispiel ist die Tabelle sc_task, welche die Aufgabentabelle erweitert. Das folgende Skript fragt die erweiterte Tabelle (sc_task) nach der aktuellen sys_id ab, und fragt dann die übergeordnete Tabelle (Aufgabe) nach Datensätzen mit der entsprechenden sys_id ab, und druckt dann das Feld für die Arbeitsnotizen aus.
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);
}
}