Vorbereiten Ihrer ServiceNow®-Instanz

Der Snowflake Connector für ServiceNow® V2 unterliegt den Nutzungsbedingungen für Snowflake Connector.

Bevor Sie den Snowflake Connector for ServiceNow®V2 installieren, müssen Sie erst Ihre ServiceNow®-Instanz einrichten. Führen Sie die folgenden Schritte aus:

Zugriff auf ServiceNow®-Instanz

  • Stellen Sie sicher, dass die ServiceNow®-Instanz öffentlich zugänglich ist. Der Konnektor funktioniert nicht mit Instanzen, die hinter einem VPN verborgen sind.

  • Wenn Sie IP Address Access Control für Ihre ServiceNow® Instanz verwenden, werden Sie den Konnektor nicht erfolgreich installieren können. Weitere Informationen dazu finden Sie in diesem Community-Artikel.

ServiceNow®-Benutzer

Identifizieren oder erstellen Sie den ServiceNow®-Benutzer für den Konnektor.

Um eine Verbindung zur ServiceNow®-Instanz herzustellen, muss sich der Konnektor bei der Instanz als ServiceNow®-Benutzer authentifizieren. Wählen Sie einen ServiceNow®-Benutzer aus, der die folgenden Anforderungen erfüllt:

  • Der Benutzername darf keinen Doppelpunkt (:) enthalten.

  • Der Benutzer muss Lesezugriff auf alle Datensätze in den ServiceNow-Tabellen haben, die Sie aufnehmen möchten. Zugriffssteuerungslisten (ACLs) dürfen keine Datensätze in diesen Tabellen vor diesem Benutzer verbergen.

  • Der Benutzer muss Lesezugriff auf alle Zeilen in den folgenden Tabellen haben, um die Schemaerkennung zu ermöglichen:

    • sys_db_object (mit den Feldern name, super_class, sys_id)

    • sys_glide_object (mit den Feldern name, scalar_type, sys_id)

    • sys_dictionary (mit den Feldern element, internal_type, name, sys_id)

  • Der Benutzer muss Lesezugriff auf alle Zeilen der folgenden Tabelle haben, um die passende Datenaufnahmestrategie verwenden zu können:

    • sys_table_rotation (mit den Feldern name und sys_id)

  • Der Benutzer muss Lesezugriff auf das Feld sys_updated_on in den unten stehenden Tabellen haben, um den weniger kosteneffizienten Modus „Abschneiden und Laden“ nicht zu verwenden:

    • sys_db_object

    • sys_glide_object

    • sys_dictionary

    • sys_table_rotation

    • Journaltabelle (normalerweise sys_audit_delete)

Bemerkung

Das Konfigurieren der Verbindung in Snowsight über den OAuth-Authentifikator zu ServiceNow® ist nur mit dem interaktiven Benutzer möglich. Der ServiceNow®-Benutzer ist interaktiv, wenn die Einstellung Web service access only für den Benutzer deaktiviert ist.

Sie können den OAuth-Authentifikator nur dann mit nicht interaktiven Benutzern verwenden, wenn Sie die Verbindung mit SQL-Befehlen konfigurieren. In diesem Fall können Sie sich nicht bei ServiceNow® anmelden oder das OAuth-Aktualisierungstoken über Snowsight abrufen.

Spaltenindizes für optimierte Leistung einrichten

Wenn Sie planen, eine ServiceNow®-Tabelle mit einer sys_updated_on-Spalte zu importieren und zu synchronisieren, empfehlen wir die Einrichtung eines Index für diese Spalte. Weitere Informationen zum Einrichten der Indizes finden Sie in der ServiceNow®-Dokumentation unter Tabellenindex erstellen.

Nachdem Sie den Index über die Benutzeroberfläche erstellt haben, kann es einige Zeit dauern, bis der Index aufgebaut ist. Der Indizierungsprozess wird als Hintergrundaufgabe ausgeführt.

Wenn Ihre Instanz über große Tabellen verfügt, empfiehlt Snowflake, sich an den ServiceNow®-Kundensupport zu wenden, um sich über den besten Ansatz zum Indizieren großer Tabellen zu informieren.

Optionale Schritte

  • Wenn Sie OAuth als Authentifizierungsmethode verwenden möchten und Ihrem ServiceNow®-Benutzer die Nur-Lese-Rolle zugewiesen haben, stellen Sie sicher, dass in der Werteliste der Systemeigenschaft glide.security.snc_read_only_role.tables.exempt_create die Tabelle oauth_credential enthalten ist.

    Erstellen oder bearbeiten Sie die Eigenschaft glide.security.snc_read_only_role.tables.exempt_create in der Tabelle sys_properties. Weitere Informationen zum Bearbeiten dieser Eigenschaft finden Sie in der ServiceNow-Wissensdatenbank.

    Weitere Informationen zum Hinzufügen von neuen Systemeigenschaften finden Sie in der ServiceNow®-Dokumentation unter Systemeigenschaften hinzufügen.

  • Um die Weitergabe gelöschter Datensätze zu ermöglichen, verwenden Sie entweder die Tabelle sys_audit_delete oder eine kundenspezifische Journaltabelle als Quelle für Informationen zu gelöschten Datensätzen.

    Bemerkung

    Beachten Sie, dass der Konnektor Zugriff auf alle Erfassungstabellendatensätze haben muss, sonst kann die Installation fehlschlagen. Andernfalls kann es vorkommen, dass Datensatzlöschungen in anderen Tabellen nicht korrekt sind.

    Wenn Erfassungstabellenzeilen durch ACLs ausgeblendet werden, ist das Verhalten des Konnektors unvorhersehbar. Selbst wenn die Installation erfolgreich ist, kann es vorkommen, dass einige Löschungen zu einem späteren Zeitpunkt nicht korrekt synchronisiert werden.

    • So verwenden Sie sys_audit_delete:

      1. Setzen Sie das Wörterbuchattribut no_audit_delete auf false.

      2. Stellen Sie sicher, dass der ServiceNow®-Benutzer für den Konnektor Zugriff auf die Tabelle sys_audit_delete und darin auf die Felder documentkey, tablename, sys_id und sys_created_on hat.

    • So verwenden Sie eine kundenspezifische Zugriffstabelle:

      1. Erstellen Sie eine Journaltabelle mit dem Namen snowflake_connector_journal sowie String-Felder mit den Namen documentkey und tablename.

      2. Stellen Sie sicher, dass der ServiceNow®-Benutzer für den Konnektor Zugriff auf die Tabelle snowflake_connector_journal und darin auf die Felder u_documentkey, u_tablename, sys_id und sys_created_on hat.

      3. Erstellen Sie ein Skript-Include namens RecordChange mit dem folgenden Code:

        var RecordChange = Class.create();
        
        RecordChange.prototype= {
          initialize :function() {},
          captureChange :function(tableName, docID) {
            var changeCapture = new GlideRecord('u_snowflake_connector_journal');
            changeCapture.initialize();
            changeCapture.setValue('u_documentkey', docID);
            changeCapture.setValue('u_tablename', tableName);
            changeCapture.insert();
          },
          type :'RecordChange'
        };
        
        Copy
      4. Definieren Sie eine Geschäftsregel, um das Löschen des Datensatzes zu erfassen:

        (function executeRule(current, previous /*null when async*/) {
            new RecordChange().captureChange(current.getTableName(), current.getUniqueValue());
        })(current, previous);
        
        Copy
      5. Konfigurieren Sie für jede Tabelle, für die Sie gelöschte Datensätze weitergeben möchten, diese Geschäftsregel so, dass sie ausgeführt wird, nachdem ein Datensatz gelöscht wurde.

      Bemerkung

      Der Konnektor kann gelöschte Datensätze nur dann synchronisieren, wenn sie überwacht werden. Löschoperationen, die nicht DBDelete.setWorkflow() aufrufen, werden nicht in Snowflake erfasst.

      Weitere Informationen zur Verwendung von DBDelete.setWorkflow() finden Sie in der ServiceNow®-Produktdokumentation.

      Beachten Sie auch die folgenden Hinweise zu gelöschten Datensätzen:

      • Das Löschen von Datensätzen wird bei Tabellen mit dem Wörterbuchattribut no_audit_delete=true nicht verfolgt.

      • Das Löschen von Datensätzen aus Tabellen mit einem sys-Präfix wird standardmäßig nicht verfolgt.

      • Der Konnektor kann Datensätze, die mit der Kaskaden-Datensatzlöschung gelöscht wurden, nur einlesen, wenn sich das Referenzfeld in einer geprüften Tabelle befindet. Weitere Informationen zum kaskadierenden Löschen von Datensätzen finden Sie in der ServiceNow®-Produktdokumentation.

Nächste Schritte

Führen Sie nach Beendigung dieser Prozeduren die unter Installieren und Konfigurieren des Konnektors mit Snowsight bzw. Installieren und Konfigurieren des Konnektors mit SQL-Befehlen beschriebenen Schritte aus.