Erstellen Sie Skriptdefinitionens für eine Remotetabelle

  • Freigeben Version: Yokohama
  • Aktualisiert 30. Januar 2025
  • 6 Minuten Lesedauer
  • Definieren Sie sSkripts für eine Remotetabelle , um Daten aus einer externen Datenquelle abzurufen oder Daten in der externen Quellezu bearbeiten.

    Vorbereitungen

    Erforderliche Rolle: delegated_developer mit Berechtigungen für „Skripting zulassen“ oder admin

    Warum und wann dieser Vorgang ausgeführt wird

    Der Now Platform ruft die Daten für die Remotetabelle ab, und speichert sie im Cache, 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 > Definition.
    2. Wählen Sie Neuaus.
    3. Füllen Sie die Felder des Formulars aus.
      Kontrolldiagramm Beschreibung
      Name

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

      Tabelle
      Name der Remotetabelle, die Sie dem Skript zuordnen möchten, das Sie gerade erstellen.
      • Bei einer Remotetabelle in einer bereichsbezogenen Anwendung werden dem Namen ein Namespace-Bezeichner und die Zeichenfolge „st_“ vorangestellt, um anzuzeigen, dass es sich um eine Remotetabelle und Teil einer Anwendung handelt.
      • Bei einer Remotetabelle in der globalen Anwendung wird dem Namen die Zeichenfolge u_st_vorangestellt.
      Anwendung Anwendung, die dieser Remotetabelle zugeordnet ist. Wenn Siean einer Anwendung arbeiten oder eine Remotetabelle aus einem Anwendungsdatensatz erstellen, wird im Feld standardmäßig diese Anwendung verwendet. Andernfalls wird für das Feld standardmäßig Globalverwendet. Alle Datensätze, die aus dem Tabellendatensatz erstellt werden, z. B. Module und Sicherheitsregeln, werden standardmäßig dieser Anwendung zugewiesen.
      Aktiv Option zum Aktivieren des Skripts, das Sie der Remotetabelle zuordnen. 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 Remotetabelle zu, um die externen Daten abzurufen und zwischenzuspeichern.
      Erweitert Option für den Zugriff auf erweiterte Einstellungen für das Caching und Bearbeiten.
      Caching-Einstellungen legen fest, wie das Cachen des Arbeitsspeichers in Now Platform für diese Remotetabelle funktionieren soll.
      Hinweis:
      Nur erfahrene Benutzer sollten Caching-Parameter für eine Remotetabelle festlegen.
    4. Wahlweise: Wenn Sie die Option Erweitert ausgewählt haben, füllen Sie im Abschnitt Erweitert die Felder aus.
      Hinweis:
      Standardmäßig werden die externen Daten vom Benutzer im Arbeitsspeicher zwischengespeichert.
      Feld Beschreibung
      Cache-Gültigkeitsdauer Cache-Lebensdauer (in Sekunden), für die externe Daten im Arbeitsspeicher für diese Remote-Tabellenskriptdefinition zwischengespeichert werden. Geben Sie beispielsweise 300 ein, um die Daten 5 Minuten lang im Arbeitsspeicher zwischenzuspeichern.

      Der Standardwert ist 0, was bedeutet, dass Daten nicht zwischengespeichert und jedes Mal abgerufen werden. 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.
      • Freigegebener System-Cache: Die zwischengespeicherten Abfrageergebnisse sollten für alle Anwender identisch sein.
      Erweiterte Kapazität Option zur Auswahl der erweiterten Kapazität zur Unterstützung von mehr als 1000 Zeilen in einer Remotetabelle.
      Hinweis:
      Wenn die aus der externen Quelle abgerufenen Daten klein sind, verwenden Sie den Standardgrenzwert von 1000 Zeilen in einer Remotetabelle, um die Abfragezeiten zu minimieren. Sie können die Funktion „Erweiterte Kapazität“ verwenden, wenn die abgerufenen Daten groß und weniger leistungsfähig sind.

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

      Bearbeitbar Option zur Unterstützung der Bearbeitung der Remotetabelle und ihrer externen Datenquelle aus der -Instanz. Verwenden Sie die API v_record, um Skriptdefinitionen zum Einfügen, Aktualisieren und Löschen von Daten in der Tabelle anzupassen.
    5. Passen Sie die folgenden Skriptdefinitionen mit den APIs v_table, v_queryund v_record an.

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

      Skriptdefinition Beschreibung
      Abfrage

      Die Abfrageskriptdefinition ruft Daten aus der externen Quelle ab, um sie in die Remotetabelle aufzunehmen. Passen Sie im Abschnitt „Abfrage“ das Skript mit den APIs v_table und v_query an.

      Jedes Mal, wenn eine Liste aktualisiert wird, die externe Daten aus einer Remotetabelle enthält, 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 Einfügeskriptdefinition fügt der externen Quelle einen Datensatz hinzu. Diese Skriptdefinition ist nur verfügbar, wenn Sie die erweiterte Option Bearbeitbar ausgewählt haben. Passen Sie im Abschnitt „Einfügen“ das Skript mit der API v_record an.

      Jedes Mal, wenn ein Datensatz zu einer Remotetabelle 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 Aktualisierungsskriptdefinition ändert einen Datensatz in der externen Quelle. Diese Skriptdefinition ist nur verfügbar, wenn Sie die erweiterte Option Bearbeitbar ausgewählt haben. Passen Sie im Abschnitt „Update“ das Skript mit der v_record -API an.

      Jedes Mal, wenn ein Datensatz in einer Remotetabelle aktualisiert wird, werden die zugehörigen Aktualisierungsskripts ausgeführt.

      Hinweis:
      Wenn mehrere Benutzer gleichzeitig denselben Datensatz aktualisieren, stammt der Wert auf dem Remote-System vom letzten ausgeführten Aktualisierungsaufruf.
      (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 Löschskriptdefinition entfernt einen Datensatz aus der externen Quelle. Diese Skriptdefinition ist nur verfügbar, wenn Sie die erweiterte Option Bearbeitbar ausgewählt haben. Passen Sie im Abschnitt „Löschen“ das Skript mit der v_record -API an.

      Jedes Mal, wenn ein Datensatz aus einer Remotetabelle 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.