Business Rules debuggen

  • Freigeben Version: Australia
  • Aktualisiert 12. März 2026
  • 2 Minuten Lesedauer
  • 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.

    Tabelle : 1. Debugging-Tools
    Debugging-Tool Beschreibung
    System-Dictionary Navigieren zu Systemdefinition > Wörterbuchan. 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 Systemprotokolle > Systemprotokollan. Sie können Warnungsanweisungen in Ihrer Business-Regel platzieren, die Informationen in das Protokoll schreiben können.
    Business-Regel Debuggen (Details) Navigieren zu Systemdiagnostik > Sitzungs-Debugging > Business-Regel Debuggen (Details)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.

    Tipp:
    Teilen Sie Ihr Skript bei Bedarf in einzelne Teile auf, und stellen Sie sicher, dass jedes Teil getrennt vom Ganzen funktioniert, und fügen Sie sie dann alle Schritt für Schritt wieder zusammen.

    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);
      }
     
     }