Business Rules debuggen
Das Debugging von Business Rules kann mit den verfügbaren Ressourcen im ServiceNow-Produkt erreicht werden.
1. Tools
Der erste Schritt im Prozess besteht darin, Tools zu identifizieren, mit denen Sie herausfinden können, was nicht stimmt.
| Debugging-Tool | Beschreibung |
|---|---|
| System-Dictionary | Navigieren zu an. Das Wörterbuch bietet 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 Warnungsanweisungen in Ihrer Business-Regel platzieren, die Informationen in das Protokoll schreiben können. |
| Business-Regel Debuggen (Details) | Navigieren zu an. Dieses Debugging-Modul zeigt die Business-Regeln der Ergebnisse an. Verwenden Sie dieses Modul, um zu sehen, ob Bedingungen erfüllt sind und Werte wie erwartet festgelegt werden. |
| Warnungsnachrichten | Es gibt mehrere Systemfunktionen, mit denen Sie Nachrichten auf die Seite, das Feld oder die Protokolldatei drucken können. Weitere Informationen finden Sie unter Warnungen, Informationen und Fehlermeldungen zur Skripterstellung. |
| Business-Regel-Beispiele | Manchmal finden Sie, was Sie suchen, in Skripts, die andere geschrieben haben, einschließlich Fehlermeldungen für Business-Regeln, oder indem Sie eine ODER-Abfrage erstellen. |
| GlideRecord-Informationen | Dies ist die grundlegende Syntax, die zum Abfragen der Datenbank nach Informationen verwendet wird. Weitere Informationen finden Sie unter Tabellen im Skript werden abgefragt. GlideRecord umfasst auch Zusammenfassungsunterstützung. |
2. Variablen
Der nächste Schritt besteht darin, Einblicke in das Verhalten Ihrer Business-Regel zu erhalten. Für jede Aktion mit Ausnahme 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, die Sie verwenden können gs.addInfoNachricht Zum Anzeigen von Informationen oben auf dem Bildschirm.
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 sicherzustellen, dass jede Variable in Ihrer Business-Regel erwartete Werte enthält.
3. Informationen werden gesucht
Der letzte Schritt besteht darin, sicherzustellen, dass Sie wissen, wo Sie die Informationen finden, nach denen Ihre Regel sucht.
In ServiceNow Anwendung, eine Tabelle kann eine andere Tabelle erweitern. Dies bedeutet, dass Sie bei der Suche nach Informationen möglicherweise die übergeordnete Tabelle nach der sys_ID der erweiterten Tabelle abfragen müssen, um zu finden, was Sie suchen.
Ein gutes Beispiel ist die Tabelle „sc_Task“, die die Aufgabentabelle erweitert. Das folgende Skript fragt die erweiterte Tabelle (sc_Task) nach der aktuellen sys_ID ab, fragt dann die übergeordnete Tabelle (Aufgabe) nach Datensätzen mit der übereinstimmenden sys_ID ab, und druckt dann das Feld „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);
}
}