Erstellen Sie Skriptdefinitionen für eine Remote-Tabelle

  • Freigeben Version: Zurich
  • Aktualisiert 31. Juli 2025
  • 6 Minuten Lesedauer
  • Definieren Sie Skripts für eine Remotetabelle, um Daten aus einer externen Datenquelle abzurufen oder Daten in der externen Quelle zu bearbeiten.

    Vorbereitungen

    Erforderliche Rolle: Delegated_Developer mit Berechtigungen „Skripting zulassen“ oder „admin“

    Warum und wann dieser Vorgang ausgeführt wird

    Die ServiceNow AI PlatformRuft die Daten für die Remotetabelle ab und speichert sie, indem das Abfrageskript für eine externe Datenquelle ausgeführt wird, damit Sie sie anzeigen oder ändern können. Sie können auch festlegen, wie diese externen Daten zwischengespeichert werden und wie lange die Daten im Arbeitsspeicher zwischengespeichert werden, bis das Skript erneut ausgeführt werden muss.

    Prozedur

    1. Navigieren zu Alle > Systemdefinition > Remotetabellen > Definitionan.
    2. Wählen Sie Neu.
    3. Füllen Sie im Formular die Felder aus.
      Kontrolldiagramm Beschreibung
      Name

      Name des Skripts, das Sie erstellen, um der ausgewählten Remote-Tabelle zuzuordnen.

      Tabelle
      Name der Remote-Tabelle, die Sie dem Skript zuordnen möchten, das Sie erstellen.
      • Für eine Remotetabelle in einer bereichsbezogenen Anwendung wird dem Namen ein Namespace-Bezeichner und die Zeichenfolge vorangestellt st_ Um anzugeben, dass es sich um ein Remote-Objekt handelt und Teil einer Anwendung ist.
      • Für eine Remotetabelle in der globalen Anwendung wird dem Namen die Zeichenfolge vorangestellt u_St_ .
      Anwendung Anwendung, die dieser Remote-Tabelle zugeordnet ist. Wenn Sie an einer Anwendung arbeiten oder eine Remotetabelle aus einem Anwendungsdatensatz erstellen, wird das Feld standardmäßig auf diese Anwendung festgelegt. Andernfalls ist das Feld standardmäßig auf festgelegt Global . Alle Datensätze, die aus dem Tabellendatensatz erstellt werden, z. B. Module und Sicherheitsregeln, werden dieser Anwendung standardmäßig zugewiesen.
      Aktiv Option zum Aktivieren des Skripts, das Sie der Remote-Tabelle zuordnen. Sie können mehrere inaktive Skriptdefinitionen für eine Remote-Tabelle haben, aber nur eine aktive Skriptdefinition. Wenn Sie eine Skriptdefinition aktivieren, ordnen Sie sie der Remote-Tabelle zu, damit Sie die externen Daten abrufen und zwischenspeichern können.
      Erweitert Option zum Zugriff auf erweiterte Einstellungen für das Zwischenspeichern und Bearbeiten.
      Caching-Einstellungen legen fest, wie das Speicher-Caching in ausgeführt werden soll ServiceNow AI Platform Für diese Remote-Tabelle.
      Hinweis:
      Nur fortgeschrittene Anwender sollten Caching-Parameter für eine Remote-Tabelle festlegen.
    4. Wahlweise: Wenn Sie ausgewählt haben Erweitert Option: Füllen Sie die Felder im Abschnitt „Erweitert“ aus.
      Hinweis:
      Standardmäßig werden die externen Daten vom Anwender im Arbeitsspeicher zwischengespeichert.
      Feld Beschreibung
      Cache-Gültigkeitsdauer Cache-Gültigkeitsdauer, ausgedrückt in Sekunden, die externe Daten im Arbeitsspeicher für diese Remote-Tabellenskriptdefinition zwischengespeichert werden. Geben Sie beispielsweise ein 300 Zum Speichern der Daten im Arbeitsspeicher für 5 Minuten.

      Der Standardwert ist 0, d. h. Daten werden nicht zwischengespeichert und jedes Mal abgerufen. Der Höchstwert beträgt 60 Minuten (3600 Sekunden).

      Cache-Isolationsstufe Cache-Abfrageergebnisse für jeden Anwender oder für alle Anwender.
      • Cache pro Anwender: Die zwischengespeicherten Abfrageergebnisse müssen für den angemeldeten Anwender spezifisch sein. Dies ist der Standardwert.
      • Gemeinsam genutzter Systemcache: Die zwischengespeicherten Abfrageergebnisse müssen für alle Anwender identisch sein.
      Erweiterte Kapazität Option zum Auswählen der erweiterten Kapazität zur Unterstützung von mehr als 1000 Zeilen in einer Remote-Tabelle.
      Hinweis:
      Wenn die aus der externen Quelle abgerufene Datengröße klein ist, verwenden Sie den Standardgrenzwert für 1000 Zeilen in einer Remote-Tabelle, um die Abfragezeiten zu minimieren. Sie können auswählen Erweiterte Kapazität Feld, wenn die abgerufene Datengröße groß ist und weniger leistungsfähig sein kann.

      Dieses Feld wird nicht unterstützt, wenn Bearbeitbar Ist ausgewählt.

      Bearbeitbar Option zur Unterstützung der Bearbeitung der Remote-Tabelle und ihrer externen Datenquelle aus der Instanz. Verwenden Sie v_Record API zum Anpassen von Skriptdefinitionen zum Einfügen, Aktualisieren und Löschen von Daten in die Tabelle.
    5. Passen Sie die folgenden Skriptdefinitionen mit an v_table , v_query , Und v_Record APIs.

      Weitere Informationen zu diesen APIs finden Sie unter v_table – Scoped, Global, v_query – Scoped, Global, Und v_record - Scoped, Global.

      Skriptdefinition Beschreibung
      Abfrage

      Die Abfrageskriptdefinition ruft Daten aus der externen Quelle ab, die in die Remote-Tabelle aufgenommen werden sollen. Passen Sie im Abschnitt „Abfrage“ das Skript mit an v_table Und v_query APIs.

      Jedes Mal, wenn eine Liste, die externe Daten aus einer Remote-Tabelle enthält, aktualisiert wird, werden die zugehörigen Abfrageskripts ausgeführt.

      (function executeQuery(v_table, v_query) {
           // Parameters:
           //      v_table - object to record response:
           //          v_table.addRow({ ... })                - adds a row to the result set.
           //              keys are the column names of the table definition.
           //              sys_id must be non-empty and uniquely identify each row.
           //                  the above rule will be strictly enforced for editable tables, and generate warnings for read-only tables.
           //                  sys_id will be supplied to the Update, and Delete scripts to specify the row's identity.
       
           //      v_query - the query definition:
           //          v_query.getEncodedQuery()              - encoded querystring
           //          v_query.getCondition(field)            - encoded querystring for the given field (includes field name, operator, and value)
           //          v_query.getParameter(field)            - parameter for the given field (only includes value for equality conditions)
           //          v_query.isGet()                        - whether the query is a single get by sys_id
           //          v_query.getSysId()                     - parameter for sys_id field
           //          v_query.isTextSearch()                 - whether the query contains a text query parameter
           //          v_query.getTextSearch()                - text search query parameter (internal field name 123TEXTQUERY321)
           //          v_query.getFirstRowWanted()            - the first row to include, don't use with caching
           //          v_query.getLastRowWanted()             - the last row to include, don't use with caching
           //          v_query.setLastErrorMessage(message)   - the message is visible from GlideRecord.getLastErrorMessage()
       
           // Sample code:
           //  try {
           //      retrieve-rows-from-external-system;     //      if (there-was-an-error) {
           //          var message = ...;     //          v_query.setLastErrorMessage(message);
           //          return;
           //      }
           //
           //      for (var row in rows) {
           //          v_table.addRow(row);
           //      }
           //  } catch (ex) {
           //      var message = ex.getMessage();
           //      v_query.setLastErrorMessage(message);
           //  }
       
        })(v_table, v_query);
      Einfügen

      Die Insert-Skriptdefinition fügt der externen Quelle einen Datensatz hinzu. Diese Skriptdefinition ist nur verfügbar, wenn Sie Erweitert ausgewählt haben Bearbeitbar Option. Passen Sie im Abschnitt Einfügen das Skript mit an v_Record API.

      Jedes Mal, wenn ein Datensatz einer Remote-Tabelle hinzugefügt wird, werden die zugehörigen Einfügeskripts ausgeführt.

      function executeInsert(v_record) {
           // Parameters:
           //      v_record is a map of field names and values containing the sys_id of the
           //              record and the fields that need to be inserted in the record on the
           //              remote system (source of data)
           
           //          v_record.<field_name>                   - fields in the remote table GlideRecord
           //          v_record.setLastErrorMessage(message)   - signal an error
       
           // Sample code:
           //  try {
           //      update-external-system;
           //      if (there-was-an-error) {
           //          var message = ...;
           //          v_record.setLastErrorMessage(message);
           //      }
           //  } catch (ex) {
           //      var message = ex.getMessage();
           //      v_record.setLastErrorMessage(message);
           //  }
        })(v_record);
      Aktualisieren

      Die Update-Skriptdefinition ändert einen Datensatz in der externen Quelle. Diese Skriptdefinition ist nur verfügbar, wenn Sie Erweitert ausgewählt haben Bearbeitbar Option. Passen Sie im Abschnitt „Aktualisieren“ das Skript mit an v_Record API.

      Jedes Mal, wenn ein Datensatz in einer Remote-Tabelle aktualisiert wird, werden die zugehörigen Update-Skripts ausgeführt.

      Hinweis:
      Wenn mehrere Anwender denselben Datensatz gleichzeitig aktualisieren, stammt der Wert im Remote-System aus dem letzten ausgeführten Update-Aufruf.
      (function executeUpdate(v_record, v_changed_fields) {
           // Parameters:
           //    v_record - a map of field names and values containing the sys_id of the record
           //          v_record.<field_name>                   - fields in the remote table GlideRecord
           //          v_record.setLastErrorMessage(message)   - signal an error
           //    v_changed_fields - a map of field names and values containing the sys_id of the record
           //          v_changed_fields.<field_name>           - changed fields in the remote table GlideRecord
       
           // Sample code:
           //  try {
           //      update-external-system;
           //      if (there-was-an-error) {
           //          var message = ...;
           //          v_record.setLastErrorMessage(message);
           //      }
           //  } catch (ex) {
           //      var message = ex.getMessage();
           //      v_record.setLastErrorMessage(message);
           //  }
        })(v_record, v_changed_fields);
      Löschen

      Die Skriptdefinition „Löschen“ entfernt einen Datensatz aus der externen Quelle. Diese Skriptdefinition ist nur verfügbar, wenn Sie Erweitert ausgewählt haben Bearbeitbar Option. Passen Sie im Abschnitt Löschen das Skript mit an v_Record API.

      Jedes Mal, wenn ein Datensatz aus einer Remote-Tabelle gelöscht wird, werden die zugehörigen Löschskripts ausgeführt.

      (function executeDelete(v_record) {
           // Parameters:
           //      v_record - a map of field names and values containing (among others) the
           //              sys_id of the record that needs to be deleted on the remote system
           //          v_record.<field_name>                  - fields in the remote table GlideRecord
           //          v_record.setLastErrorMessage(message)   - signal an error
       
           // Sample code:
           //  try {
           //      update-external-system;
           //      if (there-was-an-error) {
           //          var message = ...;
           //          v_record.setLastErrorMessage(message);
           //      }
           //  } catch (ex) {
           //      var message = ex.getMessage();
           //      v_record.setLastErrorMessage(message);
           //  }
        })(v_record);
    6. Wählen Sie Absenden.