JDBC-Aktivitäten erstellen

  • Freigeben Version: Xanadu
  • Aktualisiert 1. August 2024
  • 8 Minuten Lesedauer
  • Erstellen Sie eine benutzerdefinierte JDBC-Aktivität zum Automatisieren von SQL-Befehlen und Aufrufen gespeicherter Prozeduren für relationale Datenbanken aus dem Workflow.

    Vorbereitungen

    Erforderliche Rolle: activity_admin, activity_creator

    Warum und wann dieser Vorgang ausgeführt wird

    Mit der JDBC-Aktivitätsvorlage können Sie ANSI-SQL-Anweisungen oder gespeicherte Prozeduren in einer Zieldatenbank ausführen. In Xanadu werden gespeicherte Prozeduren mit den Parametern IN, OUT und INOUT unterstützt. Informationen zum Einrichten dieser Parameter finden Sie unter Parameter für gespeicherte JDBC-Prozeduren.
    Hinweis:
    Wenn Sie Massendaten aus einer externen Datenquelle in eine Instanz ServiceNow übertragen, verwenden Sie Importsätze – Schlüsselkonzepte. Mit den JDBC-Aktivitäten können Sie Daten innerhalb eines Workflows zwischen externen Datenquellen und ServiceNow übertragen. Es ist nicht beabsichtigt, die Massenimportfunktionen von Datenquellen zu ersetzen.

    Prozedur

    1. Erstellen oder überprüfen Sie Ihre JDBC-Anmeldeinformationen.
      Ihre JDBC-Anmeldeinformationen müssen über die Berechtigung für die Zieldatenbank und die richtige Konfiguration für die entsprechende JDBC-Verbindung verfügen. Anmeldeinformationen müssen eingerichtet werden, bevor Sie eine JDBC-Aktivität erstellen können.
    2. Erstellen oder überprüfen Sie Ihre JDBC-Verbindung.
      Ihre JDBC-Verbindung muss mit gültigen JDBC-Anmeldeinformationen konfiguriert sein, bevor Sie eine JDBC-Aktivität erstellen können.
    3. Erstellen Sie eine benutzerdefinierte Aktivität.
      Diese Aktion erstellt eine benutzerdefinierte Aktivität mithilfe einer Vorlage.
    4. Nach dem Einrichten allgemeiner Eigenschaften und dem Erstellen von Eingabevariablenkonfigurieren Sie den JDBC-Ausführungsbefehl.
      OptionBezeichnung
      JDBC-Verbindung Konfigurieren oder referenzieren Sie die entsprechende JDBC-Verbindung für die Datenbank. Die ausgewählte Verbindung liefert der Aktivität folgende Informationen:
      • Zieldatenbankinformationen (Server- und Datenbanknamen)
      • Verbindungs-URL
      • Zieldatenbankport (falls abweichend von der Standardportnummer)
      • Datenbankinstanzname
      Anmeldeinformationen JDBC-Anmeldeinformationen für Ihre JDBC-Verbindung
      SQL-Anweisung Geben Sie die ANSI-SQL-Anweisung ein, die in der JDBC-Zieldatenbank ausgeführt werden soll.
      Hinweis:
      Dieses Feld ist ausgeblendet, wenn das Kontrollkästchen „Gespeicherte Prozedur“ aktiviert ist.
      Sie können die Eingabevariablen zu ordnen, die Sie erstellt haben, um die SQL-Anweisungen zu konfigurieren. Standardmäßig können Sie die folgenden SQL-Anweisungen ausführen.
      • select
      • insert
      • update
      • delete
      • show
      • create
      • describe
      Als zusätzliche Sicherheitsmaßnahme steuert eine MID Server-Eigenschaft die Vorgänge, die diese JDBC-Orchestration-Probe ausführt, wodurch die verwendeten SQL-Befehle eingeschränkt werden. Diese Eigenschaft schützt vor potenziell zerstörerischen Befehlen, z. B. „dropdown database“ (Datenbank löschen). Die Eigenschaft mid.property.jdbc_operations enthält die MID Server-Eigenschaftssteuerungen.
      Hinweis:
      Sie können nicht mehrere Anweisungen verschiedener Typen ausführen. Beispielsweise können Sie eine select-Anweisung und eine update-Anweisung nicht zusammen ausführen, Sie können jedoch zwei insert-Anweisungen ausführen. Auch mehrere select-Anweisungen können in dieser Aktivität nicht ausgeführt werden.
      Maximale Zeilen Maximale Anzahl von Datensätzen, die aus der Datenbank abgerufen werden sollen. Der Standardwert ist 1.000.
      Maximale Payload-Größe (KB) Sie können einen Grenzwert für die maximale Payload-Größe festlegen, die aus der Datenbank abgerufen wird. Der Standardwert beträgt 64 Kilobyte.
      Verbindungstimeout Wie lange die Aktivität wartet, um die Verbindung herzustellen. Dieses Feld wird automatisch aus der Datenquelle ausgefüllt, kann aber für diese Aktivität geändert werden.
      Abfragezeitüberschreitung Verstrichene Zeit nach dem Ausführen der Abfrage, bis die Daten zurückgegeben werden. Dieses Feld wird automatisch aus der Datenquelle ausgefüllt, kann aber für diese Aktivität geändert werden.
      Erforderliche MID Server-Fähigkeiten MID Server zum Abfragen von JDBC nach Fähigkeiten. Standardmäßig wählt das System einen MID Server mit JDBC-Fähigkeit aus.
      Gespeicherte Prozedur verwenden Wenn dieses Kontrollkästchen aktiviert ist, können Sie eine gespeicherte Prozedur in MySQL-, Oracle- oder SQL Server-Datenbanken ausführen, indem Sie den Namen und die Parameter der Prozedur eingeben. Weitere Informationen finden Sie unter Parameter für gespeicherte JDBC-Prozeduren.
      Hinweis:
      Sie können Parameterwerte in einem Test-Payload Variablen auf der Registerkarte Ausgaben automatisch zuordnen. Siehe Ausgabevariablen automatisch zuordnen.

    Nächste Maßnahme

    JDBC-Verbindungen für eine Orchestration-Aktivität erstellen

    Die Tabelle „JDBC-Verbindung“ [jdbc_connection] enthält die Informationen, die benutzerdefinierte JDBC-Orchestration-Aktivitäten verwenden, um eine Verbindung zu verschiedenen Zieldatenbanken herzustellen.

    Vorbereitungen

    Sie müssen über eine geeignete JAR-Datei verfügen, unabhängig davon, ob sie mit der Instanz oder mit einer benutzerdefinierten JAR-Datei bereitgestellt wird.
    Hinweis:
    Die ServiceNow-Instanz stellt die Dateien mysql-connector-java-5.1.21.jar, sql-server-jdbc-4.0.jar und ojdbc6.jar als Teil des aktuellen Release bereit, das MySQL-, SQLServer- und Oracle-Datenbanken unterstützt. Für andere Datenbanken, wie Sybase oder DB2 Universal, muss eine benutzerdefinierte JAR-Datei verwendet werden, die in die Instanz vor dem Einrichten der JDBC-Verbindung hochgeladen werden muss.

    Erforderliche Rolle: activity_admin, activity_creator

    Warum und wann dieser Vorgang ausgeführt wird

    JDBC-Anmeldeinformationen JDBC-Anmeldeinformationen werden separat von der Aktivitätsdesigner-Vorlage abgerufen und unterstützen einen externen Anmeldeinformationsspeicher, z. B. CyberArk.

    Prozedur

    1. Navigieren zu Alle > Orchestration > Anmeldeinformationen und Verbindungen > JDBC-Verbindungen und klicken Sie auf Neu.
    2. Füllen Sie das Formular anhand der Felder in der Tabelle aus.
      Anhand der Auswahl der Datenbank im Feld Format wird festgelegt, welche Felder verfügbar sind.
      Tabelle : 1. JDBC-Verbindungsfelder
      Feld Datenbankformat Beschreibung
      Name Alle Eindeutiger Name dieser JDBC-Verbindung. Sie könnten zum Beispiel JDBC MySQLProd eingeben.
      Abfragezeitüberschreitung Alle Maximale Dauer, die die JDBC-Abfrage ohne Antwort ausgeführt werden darf.
      Verbindungstimeout Alle Maximale Zeit, die die JDBC-Aktivität wartet, während das Herstellern einer Verbindung mit der Zieldatenbank versucht wird
      Anwendung Alle Bereich für diese Tabelle. Standardmäßig wird die Tabelle „JDBC-Verbindung“ [jdbc_connection] im globalen Bereich ausgeführt.
      Domäne Alle Domäne für diese Tabelle. Standardmäßig wird die Tabelle „JDBC-Verbindung“ [jdbc_connection] in der Domäne global ausgeführt.
      Format Alle Datenbanktyp für diese Verbindung. Die Standardoptionen sind:
      • MySQL
      • Oracle
      • SQL Server
      • Keine
      Sie können Sybase oder DB2 Universal in die Auswahlliste aufnehmen, indem Sie die entsprechende JDBC-Treiber-JAR-Datei in die Instanz hochladen. Orchestration erkennt diese Treiber automatisch, wenn sie geladen sind, und fügt sie dieser Liste hinzu.
      Server Oracle, MySQL, SQL Server Hostname oder IP-Adresse des Datenbankservers.
      Oracle-SID Oracle Der Site-Identifier der Oracle-Datenbank. Der Standardwert ist orcl.
      Oracle-Anschluss Oracle Port, den die Oracle-Datenbank verwendet. Der Standardwert ist 1521.
      Datenbankname MySQL, SQLServer Name der Datenbank
      Datenbankport MySQL, SQL Server Port, den die ausgewählte Datenbank verwendet.
      Instanzname SQLServer Instanzname für den ausgewählten SQLServer.
      Verbindungs-URL Alle URL, mit der der MID Server eine Verbindung zu der angegebenen Datenbank herstellt. Die URL wird beim Speichern des Formulars automatisch erstellt und ist für die Standarddatenbanken schreibgeschützt.
      Hinweis:
      Wenn das ausgewählte Format keine der Standarddatenbanken ist, müssen Sie die Verbindungs-URL manuell erstellen, damit der MID Server darüber informiert ist, wie die Verbindung erstellt werden soll.
      JDBC-Laufwerk Keiner, DB2 Universal, Sybase Der für diese Verbindung zu verwendende JDBC-Treiber, wenn es sich nicht um eine Standarddatenbank handelt.
      Hinweis:
      Wenn Sie eine Sybase- oder DB2 Universal-Datenbank hinzufügen, müssen Sie den Treibernamen in dieses Feld eingeben und die Treiber-JAR-Datei in die Instanz hochladen.
      Abbildung : 1. Beispiel einer JDBC-Verbindung zu Oracle
      Beispiel für JDBC-Verbindung
    3. Klicken Sie auf Absenden.

    Automatische Zuordnung von JDBC-Aktivitätsausgabevariablen

    Mit dem ServiceNow-Aktivitätsdesigner können Sie Parameterwerte in einem JDBC-Test-Payload automatisch Variablen auf der Registerkarte Ausgaben zuordnen.

    Vorbereitungen

    Erforderliche Rolle: admin

    Prozedur

    1. Wählen Sie im Formular für die JDBC-Anbietervorlage die Registerkarte Eingaben aus.
    2. Klicken auf Testeingaben, um die Eingabeparameter zu testen.
      Wenn Sie tatsächliche Werte für die Parameter und Felder hinzugefügt haben, führt das System diese Werte für das angegebene Ziel aus und gibt das resultierende Payload zurück. Wenn Sie den Feldern und Parametern Eingabevariablen zugeordnet haben, zeigt das System ein Dialogfeld an, in dem Sie diesen Variablen Testwerte zuweisen können.
    3. Geben Sie ggf. Testwerte an, und klicken Sie auf OK, um das Payload anzuzeigen.
      Die gesamte Payload wird auf der Registerkarte Rohausgabe des Antwortformulars angezeigt.
      Steuerungen für automatische Zuordnung
    4. Wählen Sie eine dieser Optionen für die automatische Zuordnung aus.
      • Automatisch lokalen Variablen zuordnen: Ordnet Werte direkt einer lokalen Variable zur Verwendung in der Aktivität zu.
      • Automatisch Ausgabevariablen zuordnen: Ordnet Werte direkt der Ausgabevariable zu, um sie an andere Aktivitäten im Workflow zu übergeben. Durch die automatische Zuordnung zu einer Ausgabevariable wird ein Array mit Objekten erstellt, wobei jedes Objekt die Spaltennamen aus dem Abfrageergebnis enthält.

    Parameter für gespeicherte JDBC-Prozeduren

    Sie können Orchestration verwenden, um eine gespeicherte Prozedur in MySQL-, Oracle DB- und MS-SQL-Datenbanken auszuführen.

    Es werden mehrere Datentypen mit den folgenden Einschränkungen unterstützt:
    • Es wird nur eine Ergebnismenge zurückgegeben.
    • Die Reihenfolge der Eingabe- und Ausgabedatentypen in den Parametern der gespeicherten Prozedur muss mit der Aktivitätsdefinition übereinstimmen.
    • Binary, Blob, Varbinary und LongBinary sollten in Base64 kodiert sein.
    • Datum, Uhrzeit und Zeitstempel haben ein bestimmtes Format:
      Datumsformat: jjjj-mm-tt
      jjjj-mm-tt ist das unterstützte Format.
      Zeitformat: hh:mm:ss[.sss]
      hh:mm:ss[.sss] ist das unterstützte Format. Die Genauigkeit wird nur durch Millisekunden angegeben, Mikrosekunden oder Nanosekunden können nicht verarbeitet werden.
      Hinweis:
      10:30:59 und 10:30:59.999000 sind korrekt, aber 10:30:59. ist falsch.
      Zeitstempelformat: jjjj-mm-tt hh:mm:ss[.ffffff]
      jjjj-mm-tt hh:mm:ss[.ffffff] ist das unterstützte Format. Die Präzision beträgt Mikrosekunden.
    • ResultSet ist die erste Ergebnismenge, die vom Datenbankserver zurückgegeben wird.
    • MSSQL unterstützt keine INOUT-Parameter. Wenn Sie INOUT-Parameter verwenden, ordnet die Aktivitätsvorlage diese erkennbar OUT-Parametern zu.
    Hinweis:
    Wenn Sie keine Überprüfung von Datentypen in Parametern gespeicherter Prozeduren durchführen möchten, wie beim veralteten Verhalten, setzen Sie die Einstellung glide.stored_proc.data_type.validation auf falsch. Weitere Informationen finden Sie unter MID Server-Eigenschaften.
    Tabelle : 2. Parameter von gespeicherten Prozeduren
    Feld Beschreibung
    Modus Typ des Parameters der gespeicherten Prozedur. Unterstützte Parameter:
    • IN
    • OUT
    • INOUT
    SQL-Typ Ein SQL-Datentyp. Unterstützte Datentypen:
    • ARRAY
    • BIGINT
    • BINARY
    • BIT
    • BLOB
    • CHAR
    • CLOB
    • DATE
    • DECIMAL
    • DISTINCT
    • DOUBLE
    • FLOAT
    • INT
    • INTEGER
    • JAVA_OBJECT
    • LONGVARBINARY
    • LONGVARCHAR
    • NULL
    • NUMERIC
    • OTHER
    • REAL
    • REF
    • REF_CURSOR
    • SMALLINT
    • STRUCT
    • TIME
    • TIMESTAMP
    • TINYINT
    • VARBINARY
    • VARCHAR
    Name/Wert Name-Wert-Paare, die an den Host übergeben werden sollen. Sie können diese Parameter manuell erstellen oder Eingabevariablen in die Parameterfelder per Drag-and-Drop ziehen und einen Wert zuweisen.
    Hinweis:
    Nicht alle Datenbankanbieter unterstützen alle JDBC-Datentypen. Sehen Sie in Ihrem Datenbankreferenzhandbuch nach, um die unterstützten Datentypen für Ihre Installation herauszufinden.

    Eingaben für die JDBC-Aktivitätsvorlage testen

    Sie können die Eingabeparameter einer benutzerdefinierten JDBC-Aktivität während der Entwicklung testen, ohne die Aktivität in einem Workflow-Kontext ausführen zu müssen.

    Vorbereitungen

    Erstellen Sie Eingabevariablen, und ordnen Sie sie den Feldern im Formular „Ausführungsbefehl“ zu, oder geben Sie tatsächliche Werte für diese Felder an. Erforderliche Rolle: web_service_admin, activity_admin, activity_creator

    Warum und wann dieser Vorgang ausgeführt wird

    Dieser Test führt nur die Eingabeparameter für einen Endpunkt aus und nicht die Vorverarbeitungs- oder Nachverarbeitungsskripts. Die Aktivität muss für den Test nicht ausgecheckt werden.
    Hinweis:
    Wenn Sie ausreichende Informationen für Orchestration bereitstellen, um den Endpunkt oder Host zu kontaktieren und Daten zurückzugeben, können Sie die Eingabevariablen testen. Der Test ist von jeder Stufe im Aktivitätsdesigner aus möglich. Normalerweise ist die Stufe „Ausführungsbefehl“ der Punkt, an dem Eingaben zum Testen bereit sind.

    Prozedur

    1. Klicken Sie im JDBC-Ausführungsbefehl auf Testeingaben.
      Die Liste der Variablen der Eingabequelle wird angezeigt. Wenn Sie für diese Variablen Standardwerte hinzugefügt haben, werden diese Werte in der Spalte Wert ersetzen angezeigt. Pflichtvariablen sind mit einem roten Stern gekennzeichnet.
      Hinweis:
      Der Test schlägt fehl, wenn der MID Server nicht gefunden wird oder keine Verbindung zum Ziel hergestellt werden kann.
      Abbildung : 2. JDBC-Eingabetestwerte
      JDBC-Eingabetestwerte
    2. Filtern Sie die Variablenliste mit diesen Steuerelementen:
      • Alle Eingaben: Zeigt alle Eingabevariablen an. Dieses Steuerelement ist die Standardansicht.
      • Pflichteingaben: Zeigt nur obligatorische Variablen an
      • Eingaben ohne Standardwerte: Zeigt Eingabevariablen an, denen keine Standardwerte zugewiesen wurden
    3. Setzen Sie die Werte nach Bedarf zurück.
      • Standardwerte zurücksetzen: Wenn Werte vorhanden sind, ersetzt dieses Steuerelement alle in diesem Formular festgelegten Testwerte durch die Standardwerte.
      • Werte löschen: Löscht alle Werte in der Eingabevariablenliste, auch wenn Standardwerte vorhanden sind
    4. Wenn die Testwerte korrekt konfiguriert sind, klicken Sie auf OK.
      Das System führt die Werte für alle für das angegebene Ziel konfigurierten Eingaben aus und gibt das resultierende Payload zurück. Über die Schaltflächen im Antwortformular können verschiedene Ansichten des Payload angezeigt werden. Das gesamte Payload wird im Fenster Rohausgabe angezeigt.
      Abbildung : 3. Antwort-Payload aus dem Eingabetest
      Antwort-Payload aus dem Eingabetest
    5. Um geeignete Parameterwerte im Payload automatisch Variablen der Stufe Ausgaben zuzuordnen, wählen Sie eine Option für die automatische Zuordnung aus.
    6. Klicken Sie auf das X in der rechten oberen Ecke des Fensters, um es zu schließen.