Erstellen Skriptdefinition S Für eine Remotetabelle

  • Freigeben Version: Yokohama
  • Aktualisiert 30. Januar 2025
  • 6 Minuten Lesedauer
  • Definieren S Kript S Für Eine Remotetabelle Bis Abrufen Daten von einem externen Daten Quelle Oder bearbeiten Sie Daten in der externen Quelle .

    Vorbereitungen

    Erforderliche Rolle: Delegated_Developer mit Berechtigungen für „Skripting zulassen“ oder „Administrator“

    Warum und wann dieser Vorgang ausgeführt wird

    Die Now PlatformRuft die Daten für die Remote-Tabelle 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 Speicher 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.
      Kontrolle Beschreibung
      Name

      Name des Skripts, das Sie sind es Wird erstellt, um der ausgewählten Remotetabelle zuzuordnen.

      Tabelle
      Name der Remotetabelle, der Sie das Skript zuordnen möchten Sie sind es Wird erstellt.
      • Für eine Remotetabelle in einer bereichsbezogenen Anwendung wird dem Namen ein Namespace-Bezeichner und die Zeichenfolge vorangestellt st_ Gibt an, dass es sich um eine Remote-Anwendung 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 sind es Wenn Sie an einer Anwendung arbeiten oder eine Remotetabelle aus einem Anwendungsdatensatz erstellen, ist das Feld standardmäßig auf diese Anwendung festgelegt. Andernfalls wird 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 aktiviert wird Sie sind es Wird der Remote-Tabelle zugeordnet. Sie können mehrere inaktive Skriptdefinitionen für eine Remotetabelle 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 Now PlatformFü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 im Abschnitt „Erweitert“ die Felder 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 Dient zum 5-minütigen Cache der Daten im Arbeitsspeicher.

      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 spezifisch für den angemeldeten Anwender 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 Datengröße, die aus der externen Quelle abgerufen wird, klein ist, verwenden Sie den Standardgrenzwert für 1000 Zeilen in einer Remote-Tabelle, um die Abfragezeiten zu minimieren. Sie können die Funktion „Erweiterte Kapazität“ verwenden, wenn die abgerufenen Daten groß sind und weniger leistungsfähig sein können.

      Die Option „Erweiterte Kapazität“ wird nicht unterstützt, wenn Bearbeitbar Ist ausgewählt.

      Bearbeitbar Option zur Unterstützung der Bearbeitung der Remotetabelle 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 auf dem 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.