HistoryWalker: Bereichsbezogen, global

  • Freigeben Version: Yokohama
  • Aktualisiert 30. Januar 2025
  • 17 Minuten Lesedauer
  • Die HistoryWalker Die API verwendet die Audit-/Verlaufstabellen, um eine Verlaufsversion eines vorhandenen Datensatzes zu generieren. Diese historische Version enthält alle Updates für alle Felder für den angegebenen Glide-Datensatz.

    Diese API bietet die Möglichkeit, einen GlideRecord auf eine vorherige Update-Anzahl (geführter GlideRecord) zurückzusetzen, wobei die entsprechenden Glide-Elemente ausgefüllt sind. Nachdem der gelaufene GlideRecord abgerufen wurde, bietet die API die Möglichkeit, zwischen den Update-Nummern vorwärts und rückwärts zu wechseln und durch die historischen Updates zu navigieren.

    Mit dieser API können Sie:

    • Weisen Sie an HistoryWalker API zur Verwendung einer bestimmten History Walker-Implementierung zum Abrufen von Audit-Daten.
    • Navigieren Sie durch die historische Version eines Glide-Datensatzes.
    • Wenden Sie die entsprechenden Verlaufs-/Audit-Daten an, um einen vorhandenen GlideRecord auf den Status abzurufen, in dem er sich in einer bestimmten Update-Anzahl befand.
    • Deaktivieren Sie die Zugriffssteuerung auf Zeilenebene.
    • Deaktivieren Sie die Zugriffssteuerung auf Feldebene.
    • Deaktivieren Sie den Abruf und die Verarbeitung von „Changes“-Daten.
    • Journalfelder aktivieren.
    • Aktivieren Sie Variablen.

    Die HistoryWalker Die API bietet vier Möglichkeiten zum Abrufen von Audit-Daten:

    1. VERLAUF: VERLAUF-Walker

      Wenn nicht verfügbar oder nicht aktuell, wird ein Verlaufssatz-Datensatz [sys_history_Set] für den Glide-Datensatz erstellt, den Sie beim Instanziieren von übergeben haben HistoryWalker API, die die Daten in der Tabelle „SYS-Audit“ [sys_Audit] verwendet. Die Tabelle „sys_history_Set“ enthält den Namen der zugehörigen Verlaufstabelle [sys_history_line]. Die Tabelle „sys_history_line“ enthält einen Datensatz für jeden Feldwert, der in der zu bearbeitenden Tabelle aktualisiert wurde. Mit dieser Abrufmethode HistoryWalker Methoden rufen Verlaufsdaten aus der generierten Tabelle „sys_history_line“ ab, anstatt die Tabelle „sys_Audit“ direkt abzufragen.

      Die Datensätze in der Tabelle „sys_history_line“ werden nach aufsteigenden „Aktualisieren“-Feldwerten [Update] und nicht nach chronologischer Reihenfolge sortiert und gruppiert. Das Aktualisierungsfeld ist lose mit dem Feld „Updates [sys_mod_count]“ in der Aufgabentabelle verknüpft.
      Hinweis:
      Aktualisierungen von sys_mod_count durch Clients werden nicht synchronisiert und können daher überschrieben werden, was diese Anzahl unzuverlässig macht.
    2. AUDIT: Audit-Walker

      Fragt die Tabelle „sys_Audit“ für den Glide-Datensatz ab, den Sie beim Instanziieren von übergeben haben HistoryWalker API. Jeder Datensatz in der Tabelle „sys_Audit“ enthält die Änderungen an Feldwerten, die während der Lebensdauer des Datensatzes aufgetreten sind.

      Datensätze werden aufsteigend nach dem Feld „Anzahl aktualisieren“ [RECORD_Checkpoint] und nicht nach chronologischer Reihenfolge sortiert. Das Feld „Record_Checkpoint“ ist lose mit dem Feld „Updates“ [sys_mod_count] in der Aufgabentabelle verknüpft. Eine 1-zu-1-Korrelation ist nicht garantiert.

      Aspekte, die bei der Entscheidung, ob die AUDIT-Abrufmethode verwendet werden soll, zu berücksichtigen sind:
      • Größe der Tabelle „sys_Audit“. Die Tabelle „sys_Audit“ kann ziemlich groß werden, da die Änderungen für alle Felder in allen Datensätzen in dieser Tabelle beibehalten werden.
      • Möglicherweise fehlt der Update-Null-Datensatz je nach Einstellung der Systemeigenschaft glide.sys.audit_inserts. Diese Eigenschaft definiert, ob ein Audit-Datensatz mit den anfänglichen Feldwerten erstellt wird, wenn ein Datensatz zum ersten Mal in eine Tabelle eingefügt wird. In einem Basissystem ist diese Eigenschaft auf „falsch“ festgelegt, was den verursacht HistoryWalker API zum Ausführen zusätzlicher Verarbeitungen zur Berücksichtigung dieser fehlenden Informationen.
      Daher wird ausgeführt HistoryWalker API mit AUDIT ist nicht so leistungsfähig wie VERLAUF oder PRÜFPUNKT.
    3. PRÜFPUNKT: Prüfpunkt-Walker

      Verwendet einen Hybridansatz, um Verlaufsdaten aus der Tabelle „sys_history_Set“ oder „sys_Audit“ abhängig von der Einstellung der Systemeigenschaft abzurufen com.glide.history_walker.max_history_count. Wenn für den zu bearbeitenden Datensatz ein sys_mod_count vorhanden ist, der den in dieser Eigenschaft festgelegten Wert überschreitet, Standardwert = 1.000, verwendet der Prüfpunkt-Walker die Tabelle „sys_Audit“, um Verlaufsdaten abzurufen. Andernfalls wird die Tabelle „sys_history_Set“ verwendet.

      Der Grund für diese Prüfung besteht darin, dass die Tabelle „sys_history_Set“ einen leistungsfähigeren Ansatz für Walking-Verlaufsdaten bietet, jedoch nur bis zu einem bestimmten Punkt. Wenn die Gesamtzahl der Feldaktualisierungen eine bestimmte Ebene erreicht, etwa 10.000, kann die Generierung der Tabelle „sys_history_Set“ die Zeitüberschreitung der Anwendertransaktion überschreiten. Wenn die Zeitüberschreitung überschritten wird, sind die Gesamtergebnisse leistungsschlechter als die Ausführung für die Tabelle „sys_Audit“, die alle Tabellenaktualisierungen enthält. Der Prüfpunkt-Walker verwendet com.glide.history_walker.max_history_countUm den optimalen Datensatzsatz zu bestimmen, der verwendet werden soll, um die beste Leistung zu erzielen.

      Datensätze werden in aufsteigender Reihenfolge nach dem Feld „Interner Prüfpunkt für Datensatz“ [internal_checkpoint] gruppiert und sortiert. Da das Feld „internal_checkpoint“ ein Zeitstempel ist, befinden sich die Datensätze in chronologischer Reihenfolge. Außerdem hat das Feld „internal_checkpoint“ keine Zuordnung zum Feld „Task.sys_mod_count“.

      Der wichtigste Unterschied zwischen dem Prüfpunkt-Walker und anderen Walkern besteht darin, dass die anderen Walker an Task.sys_mod_count-Einträge gekoppelt und von diesen gesteuert werden und sich auf sys_Audit.Record_checkpoint und sys_history_line.Update beziehen. Der Prüfpunkt-Walker verwendet die Felder „sys_audit.internal_checkpoint“ und „sys_history_line.internal_checkpoint“.

      Der interne Prüfpunkt des Datensatzes behebt beide dieser Probleme, wodurch der Prüfpunkt-Walker die zuverlässigste Möglichkeit zum Abrufen von Audit-Verlaufsdaten ist.

    4. OFFLINE: Offline-Verlaufswalker

      Stellt die Offline-Verlaufsfunktion bereit, die von Anwendungen wie der mobilen Offline-App für Außendienst verwendet wird. Wenn für eine Aufgabentabellenerweiterung Felder festgelegt sind, für die das Wörterbuchattribut offline_timestamp_field festgelegt ist, wird der Offline-Verlaufswalker unabhängig von einer Eigenschaft oder expliziten Anweisung zur Verwendung eines anderen Walkers ausgeführt. Der Offline-Verlaufswalker verwendet die Tabellen „sys_history_line“ und „sys_history_Set“, die Verlaufsdaten enthalten, die absichtlich nach Datum und Uhrzeit sortiert sind, um Offline-Updates zu unterstützen. Nur der Offline-Verlaufswalker kann genaue Ergebnisse für solche Tabellen liefern.

      Hinweis:
      Für Offline-Updates: HistoryWalker API wird automatisch initiiert, und die einzigen zwei Methoden, die Sie verwenden können, sind: Walk-To (0) Und Walk Forward() . Sie können keine anderen anrufen HistoryWalker Methoden für Offline-Updates.

    Die Systemeigenschaft com.snc.walker.defaultDefiniert den Standardtyp des Datensatzgangs, der beim Instanziieren von ausgeführt werden soll HistoryWalker API. Für das Upgrade von Kunden wird diese Eigenschaft auf „VERLAUF“ festgelegt. Für neue Kunden ist diese Eigenschaft auf „PRÜFPUNKT“ festgelegt.

    Wenn Sie instanziieren HistoryWalker API wie folgt com.snc.walker.defaultDie Eigenschaft bestimmt, welche Datensatz-Walker-Implementierung die API verwendet.
    var hw = new sn_hw.HistoryWalker(<table name>, <sys_id>);
    Sie können auch den Typ des Datensatzwalkers übergeben, der beim Instanziieren der API verwendet werden soll. Es ist ratsam, bei der Instanziierung dieser API immer die gewünschte Walker-Implementierung einzubeziehen.
    var hw = new sn_hw.HistoryWalker(<table name>, <sys_id>, <walker>);
    Z. B.:
    var hw = new sn_hw.HistoryWalker('incident', '1c741bd70b2322007518478d83673af3', 'CHECKPOINT');

    Um diese Klasse in bereichsbezogenen und globalen Anwendungen zu verwenden, verwenden Sie sn_hw Namespace-Bezeichner. Das standardmäßig aktivierte Plugin „Verlaufswandler“ (com.Glide.history_Walker) ist für den Zugriff auf erforderlich HistoryWalker API.

    HistoryWalker – HistoryWalker (Zeichenfolge tableName, Zeichenfolge sysId, Zeichenfolge-Walker)

    Instanziiert das HistoryWalker-Objekt und ruft die Verlaufsdaten für den angegebenen Glide-Datensatz ab.

    Tabelle : 1. Parameter
    Name Typ Beschreibung
    tableName Zeichenfolge Name der Tabelle, die den abzurufenden Datensatz enthält.
    Sys-ID Zeichenfolge SYS_ID des Datensatzes, dessen Verlaufsdaten Sie abrufen möchten.
    walker Zeichenfolge Optional. Name des Verlaufswalkers, der zum Abrufen der Verlaufsdaten für den angegebenen Datensatz verwendet werden soll.
    Gültige Werte:
    • AUDIT
    • PRÜFPUNKT
    • VERLAUF
    • OFFLINE

    Standard: Walker, der in der Systemeigenschaft com.snc.walker.default angegeben ist.

    Das folgende Codebeispiel zeigt, wie diese Methode aufgerufen wird, um die am GlideRecord vorgenommenen Änderungen mit dem Prüfpunkt-Walker durchzugehen.

    
    var gr_Hw = new GlideRecord('sc_req_item');
    gr_Hw.get('b0d3335d49534210f877468e89703a7c');
     
    var hw = new sn_hw.HistoryWalker(gr_Hw.getTableName(), gr_Hw.getUniqueValue(), 'CHECKPOINT');
    hw.walkTo('19096afcc800000001');
    printChangedFields(hw);
     
    function printChangedFields(hw) {
       var walkedGr = hw.getWalkedRecord();
       var fields = GlideScriptRecordUtil.get(walkedGr).getChangedFieldNames();
       gs.info('Fields changed at update ' + hw.getUpdateNumber() + ' were:');
       for (var j = 0; j < fields.size(); j++) {
          var fieldName = fields.get(j) + '';
          if (fieldName !== 'variables')
             gs.info(walkedGr.getValue('sys_updated_on') + ' ' + fieldName + '=' + walkedGr.getValue(fieldName));
       }
     
       var variables = walkedGr.variables;
       for (var variableName in variables) {
          if (variables[variableName].changes())
             gs.info(walkedGr.getValue('sys_updated_on') + ' ' + variableName + '=' + variables[variableName].getValue());
       }
       gs.info('');
    }

    Ausgabe:

    Fields changed at update 3 were:
    2024-07-09 08:50:21 price=1499
    2024-07-09 08:50:21 state=2
    2024-07-09 08:50:21 priority=2
    2024-07-09 08:50:21 recurring_price=100

    HistoryWalker – HistoryWalker (Zeichenfolge tableName, SYS-ID der Zeichenfolge, boolescher Wert useAudit)

    Ruft den Datenbankdatensatz basierend auf den Parametern ab und verwendet die Verlaufssätze oder Auditdaten, um die Verlaufsdaten abzurufen, je nach drittem Parameter.

    Tabelle : 2. Parameter
    Name Typ Beschreibung
    tableName Zeichenfolge Name der Tabelle, die den abzurufenden Datensatz enthält.
    Sys-ID Zeichenfolge SYS_ID des abzurufenden Datensatzes.
    UseAudit Boolean Kennzeichnung, die angibt, ob Auditdaten zum Abrufen des historischen Datums verwendet werden sollen.
    Gültige Werte:
    • Wahr: Verwenden Sie Audit-Daten, um das historische Datum abzurufen.
    • Falsch: Verwenden Sie den Verlaufssatz, um das historische Datum abzurufen.

    Das folgende Codebeispiel zeigt, wie diese Methode aufgerufen wird.

    var incGr = new GlideRecord('incident');
    incGr.get('number', 'INC0000015');
    
    var hw = new sn_hw.HistoryWalker(incGr.getTableName(), incGr.getUniqueValue(), true);
    if (hw.walkTo(3)) {
        var oldPriority = hw.getWalkedRecord().priority;
        gs.info('Incident priority in update number ' + hw.getUpdateNumber() + ' was ' + oldPriority);
    } else
        gs.info('Incident does not have update number 3');
    

    Ausgabe:

    Incident priority in update number 3 was 4

    HistoryWalker – getUpdateNumber()

    Ruft die Update-Nummer des aktuellen gelaufenen Glide-Datensatzes ab.

    Tabelle : 3. Parameter
    Name Typ Beschreibung
    Keine
    Tabelle : 4. Rückgaben
    Typ Beschreibung
    int Aktuelle Update-Nummer oder -1, wenn der Datensatz nicht gefunden wird.

    Das folgende Codebeispiel zeigt, wie diese Methode aufgerufen wird.

    var incGr = new GlideRecord('incident');
    incGr.get('number', 'INC0000015');
    
    var hw = new sn_hw.HistoryWalker(incGr.getTableName(), incGr.getUniqueValue());
    for(int i = 0; i < 2; i++) {
      hw.walkForward();
    }
    gs.info('Update number: ' + hw.getUpdateNumber());

    Ausgabe:

    Update number: 3

    HistoryWalker – getWalkedRecord()

    Ruft den Datensatz ab, der mit den Verlaufsdaten/Auditdaten ausgefüllt ist, nachdem Sie zu einer Update-Nummer gegangen sind.

    Tabelle : 5. Parameter
    Name Typ Beschreibung
    Keine
    Tabelle : 6. Rückgaben
    Typ Beschreibung
    GlideRecord Der gelaufene GlideRecord.

    Das folgende Codebeispiel zeigt, wie diese Methode aufgerufen wird.

    var incGr = new GlideRecord('incident');
    incGr.get('number', 'INC0000015');
     
    var hw = new sn_hw.HistoryWalker(incGr.getTableName(), incGr.getUniqueValue());
    hw.walkForward();
    var walkedRecord = hw.getWalkedRecord();
    gs.info('Priority in update number 0: ' + walkedRecord.priority);
    hw.walkForward();
    walkedRecord = hw.getWalkedRecord();
    gs.info('Short description in update number 1: ' + walkedRecord.short_description);

    Ausgabe:

     Priority in update number 0: 4
    Short description in update number 1: My monitor has stopped working

    HistoryWalker – getWalkedRecordCopy()

    Gibt eine Kopie des Datensatzes zurück, der mit den Verlaufsdaten/Audit-Daten gefüllt ist, nachdem er zu einer Update-Nummer gegangen ist.

    Hinweis:
    Die GetWalkedRecord() Die Methode kann den erhaltenen WalkedRecord ändern, nachdem Sie zu einer anderen Update-Nummer gegangen sind. Die GetWalkedRecordCopy() Die Methode ruft einen Klon in den Walking-Datensatz ab, um dies zu verhindern.
    Tabelle : 7. Parameter
    Name Typ Beschreibung
    Keine
    Tabelle : 8. Rückgaben
    Typ Beschreibung
    GlideRecord Kopie des gelaufenen GlideRecord.

    Das folgende Codebeispiel zeigt, wie diese Methode aufgerufen wird.

    var incGr = new GlideRecord('incident');
    incGr.get('number', 'INC0000015');
     
    var walkedRecord = [];
    var hw = new sn_hw.HistoryWalker(incGr.getTableName(), incGr.getUniqueValue());
    hw.walkForward();
    walkedRecord[0] = hw.getWalkedRecordCopy();
    hw.walkForward();
    walkedRecord[1] = hw.getWalkedRecordCopy();
     
    gs.info('Priority in update number 0: ' + walkedRecord[0].priority);
    gs.info('Short description in update number 1: ' + walkedRecord[1].short_description);

    Ausgabe:

    Priority in update number 0: 4
    Short description in update number 1: My monitor has stopped working

    HistoryWalker – isFieldLevelSecurity()

    Gibt an, ob der Lesezugriff auf Datensatzebene beim Abrufen aus der Datenbank auf den Datensatz angewendet wird.

    Tabelle : 9. Parameter
    Name Typ Beschreibung
    Keine
    Tabelle : 10. Rückgaben
    Typ Beschreibung
    Boolean Kennzeichnung, die angibt, ob die Sicherheit auf Feldebene aktiviert ist.
    Gültige Werte:
    • Wahr: Sicherheit auf Feldebene ist aktiviert.
    • Falsch: Sicherheit auf Feldebene ist nicht aktiviert.

    Das folgende Codebeispiel zeigt, wie diese Methode aufgerufen wird.

    var incGr = new GlideRecord('incident');
    incGr.get('number', 'INC0000015');
    
    var hw = new sn_hw.HistoryWalker(incGr.getTableName(), incGr.getUniqueValue());
    gs.info('Field level security is active: ' + hw.isFieldLevelSecurity());

    Ausgabe:

    Field level security is active: true

    HistoryWalker – isRecordLevelSecurity()

    Gibt an, ob der Lesezugriff auf Datensatzebene beim Abrufen aus der Datenbank auf den Datensatz angewendet wird.

    Tabelle : 11. Parameter
    Name Typ Beschreibung
    Keine
    Tabelle : 12. Rückgaben
    Typ Beschreibung
    Boolean Kennzeichnung, die angibt, ob die Sicherheit auf Datensatzebene aktiviert ist.
    Gültige Werte:
    • Wahr: Sicherheit auf Datensatzebene ist aktiviert.
    • Falsch: Sicherheit auf Datensatzebene ist nicht aktiviert.

    Das folgende Codebeispiel zeigt, wie diese Methode aufgerufen wird.

    var incGr = new GlideRecord('incident');
    incGr.get('number', 'INC0000015');
    
    var hw = new sn_hw.HistoryWalker(incGr.getTableName(), incGr.getUniqueValue());
    gs.info('Record level security is active: ' + hw.isRecordLevelSecurity());
    

    Ausgabe:

    Record level security is active: true

    HistoryWalker – isWithChanges()

    Gibt an, ob eine der Methoden, mit denen der Datensatz von einem Update zum anderen übertragen wird, die „Changes“-Daten für jedes Element unterstützt.

    Tabelle : 13. Parameter
    Name Typ Beschreibung
    Keine
    Tabelle : 14. Rückgaben
    Typ Beschreibung
    Boolean Kennzeichnung, die angibt, ob die Change-Unterstützung aktiviert ist.
    Gültige Werte:
    • Wahr: Change-Unterstützung ist aktiviert.
    • Falsch: Change-Unterstützung ist nicht aktiviert.

    Das folgende Codebeispiel zeigt, wie diese Methode aufgerufen wird.

    var incGr = new GlideRecord('incident');
    incGr.get('number', 'INC0000015');
    
    var hw = new sn_hw.HistoryWalker(incGr.getTableName(), incGr.getUniqueValue());
    gs.info('Changes is active: ' + hw.isWithChanges());

    Ausgabe:

    Changes is active: true

    HistoryWalker – isWithJournalFields()

    Gibt an, ob Journaltypfelder aus den Verlaufswerten ausgefüllt werden.

    Tabelle : 15. Parameter
    Name Typ Beschreibung
    Keine
    Tabelle : 16. Rückgaben
    Typ Beschreibung
    Boolean Kennzeichnung, die angibt, ob Journalfelder ausgefüllt sind.
    Gültige Werte:
    • Wahr: Journalfelder werden ausgefüllt.
    • Falsch: Journalfelder sind nicht ausgefüllt.

    Das folgende Codebeispiel zeigt, wie diese Methode aufgerufen wird.

    var incGr = new GlideRecord('incident');
    incGr.get('number', 'INC0000015');
    
    var hw = new sn_hw.HistoryWalker(incGr.getTableName(), incGr.getUniqueValue());
    gs.info('Populating journal fields is active: ' + hw. isWithJournalFields());
    

    Ausgabe:

    Populating journal fields is active: false

    HistoryWalker – isWithVariables()

    Gibt an, ob Werte für Variablen festgelegt werden, die im Verlauf aufgezeichnet werden.

    Tabelle : 17. Parameter
    Name Typ Beschreibung
    Keine
    Tabelle : 18. Rückgaben
    Typ Beschreibung
    Boolean Kennzeichnung, die angibt, ob Werte für Variablen festgelegt sind, die im Verlauf aufgezeichnet werden.
    Gültige Werte:
    • Wahr: Werte sind festgelegt.
    • Falsch: Werte sind nicht festgelegt.

    Das folgende Codebeispiel zeigt, wie diese Methode aufgerufen wird.

    var incGr = new GlideRecord('incident');
    incGr.get('number', 'INC0000015');
    
    var hw = new sn_hw.HistoryWalker(incGr.getTableName(), incGr.getUniqueValue());
    gs.info('Populating variables is active: ' + hw. isWithVariables());

    Ausgabe:

    Populating variables is active: false

    HistoryWalker – setFieldLevelSecurity (boolescher Wert für „fieldLevelSecurity“)

    Legt den Lesezugriff auf Feldebene für jedes Element fest, bevor der Verlaufswert dieses Elements im GlideRecord festgelegt wird. Wenn die Sicherheit auf Feldebene aktiviert ist, wird verhindert, dass die API die Felder des Walking-Datensatzes ausfüllt, auf die der Anwender der API keinen Zugriff hat.

    Tabelle : 19. Parameter
    Name Typ Beschreibung
    FieldLevelSecurity Boolean Kennzeichnung, die angibt, wie die Lesezugriffssicherheit auf Feldebene festgelegt werden soll.
    Gültige Werte:
    • Wahr: Aktivieren Sie die Sicherheit auf Feldebene.
    • Falsch: Sicherheit auf Feldebene deaktivieren.

    Standard: Wahr

    Tabelle : 20. Rückgaben
    Typ Beschreibung
    Ungültig

    Das folgende Codebeispiel zeigt, wie diese Methode aufgerufen wird.

    var incGr = new GlideRecord('incident');
    incGr.get('number', 'INC0000015');
     
    var hw = new sn_hw.HistoryWalker(incGr.getTableName(), incGr.getUniqueValue());
    hw.setFieldLevelSecurity(false);
    hw.walkForward();

    HistoryWalker – setRecordLevelSecurity (boolescher Datensatz LevelSecurity)

    Legt den Lesezugriff auf Datensatzebene für den Datensatz beim Abrufen aus der Datenbank fest. Die Sicherheit auf Datensatzebene verhindert, dass die API den Walking-Datensatz abruft, wenn der Anwender der API keinen Zugriff auf den GlideRecord hat.

    Tabelle : 21. Parameter
    Name Typ Beschreibung
    Record LevelSecurity Boolean Kennzeichnung, die angibt, wie die Lesezugriffssicherheit auf Datensatzebene festgelegt wird.
    Gültige Werte:
    • Wahr: Sicherheit auf Datensatzebene aktivieren.
    • Falsch: Sicherheit auf Datensatzebene deaktivieren.

    Standard: Wahr

    Tabelle : 22. Rückgaben
    Typ Beschreibung
    Ungültig

    Das folgende Codebeispiel zeigt, wie diese Methode aufgerufen wird.

    var incGr = new GlideRecord('incident');
    incGr.get('number', 'INC0000015');
    
    var hw = new sn_hw.HistoryWalker(incGr.getTableName(), incGr.getUniqueValue());
    hw.setRecordLevelSecurity(false);
    hw.walkForward();

    HistoryWalker – setWithChanges(boolescher Wert mit Changes)

    Legt die Datenunterstützung „Changes“ für jedes Element für eine Methode fest, die den Datensatz von einem Update zum anderen durchführt.

    Tabelle : 23. Parameter
    Name Typ Beschreibung
    Mit Changes Boolean Kennzeichnung, die angibt, ob die Change-Daten für jedes Element unterstützt werden.
    Gültige Werte:
    • Wahr: Change-Daten werden für jedes Element unterstützt.
    • Falsch: Change-Daten werden nicht für jedes Element unterstützt.

    Standard: Wahr

    Tabelle : 24. Rückgaben
    Typ Beschreibung
    Ungültig

    Dieses Codebeispiel zeigt, wie diese Methode mit der Datenunterstützung für Änderungen aufgerufen wird. Dieses Beispiel muss im globalen Bereich ausgeführt werden.

    var incGr = new GlideRecord('incident');
    incGr.get('number', 'INC0000015');
    var hw = new sn_hw.HistoryWalker(incGr.getTableName(), incGr.getUniqueValue());
    while (hw.walkForward()) {
      printChangedFields(hw);
    }
    
    function printChangedFields(hw) {
      var walkedGr = hw.getWalkedRecord();
      var fields = GlideScriptRecordUtil.get(walkedGr).getChangedFieldNames();
      gs.info("Fields changed at update " + hw.getUpdateNumber() + " were:");
      for (var j = 0; j < fields.size(); j++)
        gs.info(" " + fields.get(j));
      gs.info("");
    }

    Dieses Codebeispiel zeigt, wie diese Methode ohne Change-Datenunterstützung aufgerufen wird. Dieses Beispiel wird sowohl in bereichsbezogenen als auch globalen Umgebungen ausgeführt.

    var incGr = new GlideRecord('incident');
    incGr.get('number', 'INC0000015');
    var hw = new sn_hw.HistoryWalker(incGr.getTableName(), incGr.getUniqueValue());
    hw.setWithChanges(false);
    
    while (hw.walkForward()) {
      var oldPriority = hw.getWalkedRecord().priority;
      gs.info('Incident priority in update number ' + hw.getUpdateNumber() + ' was ' + oldPriority);
    }

    HistoryWalker – setWithJournalFields(Boolescher Wert mit JournalFields)

    Gibt an, ob Journaltypfelder aus den Verlaufswerten ausgefüllt werden.

    Tabelle : 25. Parameter
    Name Typ Beschreibung
    Mit Journalfeldern Boolean Kennzeichnung, die angibt, ob Felder vom Typ „Journal“ eingeschlossen werden sollen.
    Gültige Werte:
    • Wahr: Journaltypfelder einschließen.
    • Falsch: Schließen Sie keine Journaltypfelder ein.

    Standard: Falsch

    Tabelle : 26. Rückgaben
    Typ Beschreibung
    Ungültig

    Das folgende Codebeispiel zeigt, wie diese Methode aufgerufen wird.

    var incGr = new GlideRecord('incident');
    incGr.get('number', 'INC0000015');
    var hw = new sn_hw.HistoryWalker(incGr.getTableName(), incGr.getUniqueValue());
    hw.setWithJournalFields(true);
    if (hw.walkForward()) {
      var workNotes = hw.getWalkedRecord().work_notes;
      gs.info('Work Notes in update number ' + hw.getUpdateNumber() + ' was ' + workNotes);
    }

    HistoryWalker – setWithVariables(boolescher Wert mit Variablen)

    Gibt an, ob Variablen aus den Verlaufswerten ausgefüllt werden.

    Tabelle : 27. Parameter
    Name Typ Beschreibung
    Mit Variablen Boolean Kennzeichnung, die angibt, ob Variablen aus den Verlaufswerten ausgefüllt werden.
    Gültige Werte:
    • Wahr: Variable ist ausgefüllt.
    • Falsch: Variable ist nicht ausgefüllt.

    Standard: Falsch

    Tabelle : 28. Rückgaben
    Typ Beschreibung
    Ungültig

    Das folgende Codebeispiel zeigt, wie diese Methode aufgerufen wird.

    var incGr = new GlideRecord('incident');
    incGr.get('number', 'INC0000015');
    
    var hw = new sn_hw.HistoryWalker(incGr.getTableName(), incGr.getUniqueValue());
    hw.setWithVariables(true);
    hw.walkTo(0);
    if (hw.walkTo(0)) {
        var varUrgency = hw.getWalkedRecord().variables.urgency;
        gs.info('Variable Urgency in update number ' + hw.getUpdateNumber() + ' was ' + varUrgency);
    }
    

    HistoryWalker – WalkBackward()

    Wendet die entsprechenden Verlaufs-/Audit-Daten an, um einen Walking GlideRecord auf den Status zu übertragen, als er eine Update-Nummer rückwärts war. Wenn die Anzahl der vorherigen Updates in den Verlaufsdaten/Auditdaten fehlt, wird zur vorherigen verfügbaren Update-Anzahl weitergeleitet.

    Tabelle : 29. Parameter
    Name Typ Beschreibung
    Keine
    Tabelle : 30. Rückgaben
    Typ Beschreibung
    Boolean Kennzeichnung, die angibt, ob ein Gehen zur angegebenen Update-Nummer möglich war.
    Gültige Werte:
    • Wahr: Kann zur angegebenen Update-Nummer gehen.
    • Falsch: Zur angegebenen Update-Nummer kann nicht gegangen werden.

      Mögliche Gründe: Bereits zur Update-Nummer 0 gegangen.

    Das folgende Codebeispiel zeigt, wie diese Methode aufgerufen wird.

    var incGr = new GlideRecord('incident');
    incGr.get('number', 'INC0000015');
    var hw = new sn_hw.HistoryWalker(incGr.getTableName(), incGr.getUniqueValue());
    
    while (hw.walkBackward()) {
      var oldPriority = hw.getWalkedRecord().priority;
      gs.info('Incident priority in update number ' + hw.getUpdateNumber() + ' was ' + oldPriority);
    }

    Ausgabe:

    Incident priority in update number 5 was 2
    Incident priority in update number 4 was 4
    Incident priority in update number 3 was 4
    Incident priority in update number 2 was 4
    Incident priority in update number 1 was 4
    Incident priority in update number 0 was 4
    

    HistoryWalker – WalkForward()

    Wendet die entsprechenden Verlaufs-/Audit-Daten an, um einen Walking GlideRecord auf den Status zu übertragen, als er eine Update-Nummer weitergeleitet wurde. Wenn die Anzahl der nächsten Updates in den Verlaufsdaten/Auditdaten fehlt, wird zur nächsten verfügbaren Update-Anzahl weitergeleitet.

    Tabelle : 31. Parameter
    Name Typ Beschreibung
    Keine
    Tabelle : 32. Rückgaben
    Typ Beschreibung
    Boolean Kennzeichnung, die angibt, ob ein Gehen zur angegebenen Update-Nummer möglich war.
    Gültige Werte:
    • Wahr: Kann zur angegebenen Update-Nummer gehen.
    • Falsch: Zur angegebenen Update-Nummer kann nicht gegangen werden.

      Mögliche Gründe: Bereits zur Anzahl der GlideRecord-Updates gegangen.

    Das folgende Codebeispiel zeigt, wie diese Methode aufgerufen wird.

    var incGr = new GlideRecord('incident');
    incGr.get('number', 'INC0000015');
    var hw = new sn_hw.HistoryWalker(incGr.getTableName(), incGr.getUniqueValue());
    
    while (hw.walkForward()) {
      var oldPriority = hw.getWalkedRecord().priority;
      gs.info('Incident priority in update number ' + hw.getUpdateNumber() + ' was ' + oldPriority);
    }

    Ausgabe:

    Incident priority in update number 0 was 4
    Incident priority in update number 1 was 4
    Incident priority in update number 2 was 4
    Incident priority in update number 3 was 4
    Incident priority in update number 4 was 4
    Incident priority in update number 5 was 2
     

    HistoryWalker – WalkTo(int updateCount)

    Wendet die entsprechenden Verlaufs-/Audit-Daten an, um einen GlideRecord auf den Status abzurufen, in dem er sich in einer bestimmten Update-Anzahl befand. Verwenden GetWalkedRecord() Oder GetWalkedRecordCopy() Nachdem Sie zu einer Update-Nummer gegangen sind, um den „Walking“-GlideRecord abzurufen.

    Hinweis:
    Diese Methode wird von der Implementierung des Prüfpunkt-Walkers nicht unterstützt. Rufen Sie an HistoryWalker – WalkTo (Zeichenfolgenprüfpunkt)Methode bei Verwendung des Prüfpunkt-Walkers.
    Tabelle : 33. Parameter
    Name Typ Beschreibung
    updateCount Ganzzahl Aktualisieren Sie die Nummer, zu der Sie gehen möchten.
    Tabelle : 34. Rückgaben
    Typ Beschreibung
    Boolean Kennzeichnung, die angibt, ob ein Gehen zur angegebenen Update-Nummer möglich war.
    Gültige Werte:
    • Wahr: Kann zur angegebenen Update-Nummer gehen.
    • Falsch: Zur angegebenen Update-Nummer kann nicht gegangen werden.

      Mögliche Gründe: Die angeforderte Aktualisierung ist größer als die Aktualisierungsanzahl des GlideRecord, oder es sind keine Verlaufs-/Auditdaten für die angeforderte Aktualisierungsnummer vorhanden.

    Das folgende Codebeispiel zeigt, wie diese Methode aufgerufen wird.

    var incGr = new GlideRecord('incident');
    incGr.get('number', 'INC0000015');
    
    var hw = new sn_hw.HistoryWalker(incGr.getTableName(), incGr.getUniqueValue());
    if (hw.walkTo(3)) {
        var oldPriority = hw.getWalkedRecord().priority;
        gs.info('Incident priority in update number ' + hw.getUpdateNumber() + ' was ' + oldPriority);
    } else
        gs.info('Incident does not have update number 3');

    Ausgabe:

    Incident priority in update number 3 was 4

    HistoryWalker – WalkTo (Zeichenfolgenprüfpunkt)

    Wendet die entsprechenden Verlaufs-/Audit-Daten an, um einen GlideRecord in den Status zu versetzen, in dem er sich für einen bestimmten internen Prüfpunkt des Datensatzes befand. Verwenden Sie GetWalkedRecord() Oder GetWalkedRecordCopy() Methode, nachdem Sie zum internen Prüfpunkt eines Datensatzes gegangen sind, um den „Walking“-GlideRecord abzurufen.

    Hinweis:
    Diese Methode wird nur von der Checkpoint-Walker-Implementierung unterstützt.
    Tabelle : 35. Parameter
    Name Typ Beschreibung
    Prüfpunkt Zeichenfolge Interner Prüfpunkt des Datensatzes, zu dem gegangen werden soll. Sie finden diesen Wert im Feld internal_checkpoint der Tabelle „SYS-Audit“ [sys_Audit] oder „Verlauf“ [sys_history_line].
    Tabelle : 36. Rückgaben
    Typ Beschreibung
    Boolean Kennzeichnung, die angibt, ob ein Gehen zum internen Prüfpunkt des angegebenen Datensatzes möglich war.
    Mögliche Werte:
    • Wahr: Kann zum internen Prüfpunkt des angegebenen Datensatzes gehen.
    • Falsch: Der interne Prüfpunkt des angegebenen Datensatzes kann nicht erreicht werden.

      Mögliche Gründe: Der interne Prüfpunkt ist nicht vorhanden.

    Das folgende Codebeispiel zeigt, wie diese Methode aufgerufen wird, um die am GlideRecord vorgenommenen Änderungen zu durchlaufen.

    
    var gr_Hw = new GlideRecord('sc_req_item');
    gr_Hw.get('b0d3335d49534210f877468e89703a7c');
     
    var hw = new sn_hw.HistoryWalker(gr_Hw.getTableName(), gr_Hw.getUniqueValue(), 'CHECKPOINT');
    hw.walkTo('19096afcc800000001');
    printChangedFields(hw);
     
    function printChangedFields(hw) {
       var walkedGr = hw.getWalkedRecord();
       var fields = GlideScriptRecordUtil.get(walkedGr).getChangedFieldNames();
       gs.info('Fields changed at update ' + hw.getUpdateNumber() + ' were:');
       for (var j = 0; j < fields.size(); j++) {
          var fieldName = fields.get(j) + '';
          if (fieldName !== 'variables')
             gs.info(walkedGr.getValue('sys_updated_on') + ' ' + fieldName + '=' + walkedGr.getValue(fieldName));
       }
     
       var variables = walkedGr.variables;
       for (var variableName in variables) {
          if (variables[variableName].changes())
             gs.info(walkedGr.getValue('sys_updated_on') + ' ' + variableName + '=' + variables[variableName].getValue());
       }
       gs.info('');
    }

    Ausgabe:

    Fields changed at update 3 were:
    2024-07-09 08:50:21 price=1499
    2024-07-09 08:50:21 state=2
    2024-07-09 08:50:21 priority=2
    2024-07-09 08:50:21 recurring_price=100