Einleitung
In diesem Dokument wird beschrieben, wie Sie die Funktion DBLookup im Intelligent Contact Manager (ICM) konfigurieren, um Daten aus einer externen Datenbank abzurufen und im Skript zu verwenden. Um zu veranschaulichen, wie die Funktion konfiguriert wird, wird in diesem Dokument ein Beispielszenario verwendet, in dem der Benutzer versucht festzustellen, ob der Anrufer Teil einer Liste ist (z. B. um einen Prioritätsdienst bereitzustellen).
Voraussetzungen
Anforderungen
Es gibt keine spezifischen Anforderungen für dieses Dokument.
Verwendete Komponenten
Dieses Dokument ist nicht auf bestimmte Software- und Hardware-Versionen beschränkt.
Die Informationen in diesem Dokument beziehen sich auf Geräte in einer speziell eingerichteten Testumgebung. Alle Geräte, die in diesem Dokument benutzt wurden, begannen mit einer gelöschten (Nichterfüllungs) Konfiguration. Wenn Ihr Netz Live ist, überprüfen Sie, ob Sie die mögliche Auswirkung jedes möglichen Befehls verstehen.
Konfigurieren
- Erstellen der Datenbank
Erstellen Sie zunächst die Datenbank. Klicken Sie in Microsoft SQL Server Management Studio mit der rechten Maustaste auf Datenbanken, und wählen Sie Neue Datenbank aus:
Erstellen Sie anschließend eine Tabelle in dieser Datenbank. Klicken Sie unter der neu erstellten Datenbank mit der rechten Maustaste auf Tabellen. Anschließend können Sie einige Spalten hinzufügen:
Anmerkung: Definieren Sie alle ganzzahligen Felder in Tabellen, auf die von einem DBLookup-Knoten zugegriffen wird, als NOT NULL. Für SQL-Datenbanken werden nur die folgenden Datentypen unterstützt: SQLINT1 (tinyint), SQLINT2 (smallint), SQLINT4 (int), SQLCHAR (char), SQLVARCHAR (varchar), SQLFLT4DBFLT4 (real), SQLFLT8DBFLT8 (float) und SQLDATETIME (datetime). Sie müssen alle Felder außer SQLDATETIME, SQLVARCHAR und SQLCHAR als NOT NULL-Felder definieren. Sie können diese drei Felder als NULL definieren.
Wählen Sie den Datentyp varchar aus, da er die Flexibilität bietet, auch Zeichen in der Zahl zu enthalten. Um die Spalte Phone als Primärschlüssel festzulegen, deaktivieren Sie das Kontrollkästchen Allow Nulls in (NULL zulassen). Um diese Spalte als Primärschlüssel festzulegen, klicken Sie mit der rechten Maustaste, und wählen Sie Primärschlüssel festlegen aus:
Speichern Sie die Änderungen, sobald diese Schritte abgeschlossen sind. Jetzt können Sie der Tabelle Daten hinzufügen:
- Konfigurieren Sie ICM, um eine Verbindung mit dieser Datenbank herzustellen.
Verwenden Sie den Konfigurations-Manager unter den Explorer-Tools, um den Datenbank-Lookup-Explorer zu öffnen. Fügen Sie dann die neu erstellte Datenbank und Spalte hinzu:
Sie müssen auch den Benutzernamen/das Kennwort konfigurieren, um sich bei der Datenbank anzumelden, da das System sa standardmäßig mit einem leeren Kennwort verwendet. Konfigurieren Sie Benutzername/Kennwort in der Registrierung mit folgendem Schlüssel:
HKEY_LOCAL_MACHINE\SOFTWARE\Cisco Systems,
Inc.\ICM\inst1\RouterA\Router\CurrentVersion\Configuration\Database\SQLLogin
Dieses Beispiel zeigt, wie Sie den Schlüssel für den Domänenbenutzer konfigurieren können:
\\POD2SPRAWLA\DBLookup=(ZFB\Administrator,password)
Anmerkung: Verwenden Sie nicht die folgenden Sonderzeichen im Kennwort: "=", ")", "(", ",", "?", "\", "/"
-
Stellen Sie sicher, dass Sie im Bildschirm "Edit Router" die Option Enable Database Routing (Datenbankrouting aktivieren) auswählen, auf die Sie im Router-Setup der Webschnittstelle zugreifen können:
- Verwenden Sie diese Datenbank im Skript.
Fügen Sie den DBLookup-Knoten hinzu, und geben Sie an, in welcher Tabelle gesucht werden soll. In diesem Beispiel wird die Tabelle Priority mit der CallingLineID durchsucht. Da nchar als Datentyp ausgewählt wurde, müssen Sie die Zahl in eine Zeichenfolge konvertieren, bevor Sie die Suche starten:
Die Suche findet in der Spalte statt, die als Primärschlüssel festgelegt ist. Später können Sie Daten aus derselben Zeile verwenden, um Aufrufvariablen zu füllen. Dieses Beispiel zeigt das Hinzufügen einer weiteren Spalte, City, sowohl in der Datenbank als auch im Konfigurations-Manager, die in das Skript eingefügt werden kann:
Überprüfung
Verwenden Sie diesen Abschnitt, um zu bestätigen, dass DB Worker eine Verbindung zur externen Datenbank herstellen kann. Erstellen Sie eine TXT-Datei dbw.txt, die die Protokolle seit dem letzten Neustart des DB Worker-Prozesses enthält:
C:\Users\Administrator.ZFB>cdlog
ra
C:\icm\inst1\ra\logfiles>dumplog dbw /o /ms /last
Stellen Sie sicher, dass der DB-Worker mithilfe von dbw.txt eine Verbindung zur Datenbank herstellen kann:
12:39:08:413 ra-dbw Trace: Attempting integrated security open of
POD2SPRAWLA using ZFB\Administrator
12:39:08:451 ra-dbw Trace: Sucessfully impersonated ZFB\Administrator
12:39:08:476 ra-dbw Trace: 'id' is column 2 in sysobjects.
12:39:08:477 ra-dbw Trace: ID for table Priority is 5575058
12:39:08:484 ra-dbw Trace: Columns for Priority:
12:39:08:484 ra-dbw Trace: Column 1: Phone, type=47, length=30
12:39:08:536 ra-dbw Trace: Primary key for Priority is Phone, column 1.
12:39:08:557 ra-dbw Trace: Created connection to POD2SPRAWLA,DBLookup for thread 0
12:39:08:557 ra-dbw Trace: Created connection to POD2SPRAWLA,DBLookup for thread 1
12:39:08:558 ra-dbw Trace: Created connection to POD2SPRAWLA,DBLookup for thread 2
12:39:08:558 ra-dbw Trace: Created connection to POD2SPRAWLA,DBLookup for thread 3
12:39:08:558 ra-dbw Trace: Created connection to POD2SPRAWLA,DBLookup for thread 4
12:39:08:558 ra-dbw Trace: ScriptTable Piority is now available.
12:39:08:559 ra-dbw Trace: ScriptTable Piority (ID 5000) connected to
POD2SPRAWLA,DBLookup,Priority
12:39:08:559 ra-dbw Trace: Internal connect for POD2SPRAWLA,DBLookup,Priority
12:39:08:559 ra-dbw Trace: 'id' is column 2 in sysobjects.
12:39:08:560 ra-dbw Trace: ID for table Priority is 5575058
12:39:08:560 ra-dbw Trace: Columns for Priority:
12:39:08:560 ra-dbw Trace: Column 1: Phone, type=47, length=30
12:39:08:561 ra-dbw Trace: Primary key for Priority is Phone, column 1.
12:39:08:561 ra-dbw Trace: Column Phone (ID 5002) is table column 1, type 47.
12:39:08:561 ra-dbw Trace: ScriptTable Piority (ID 5000) connected to
POD2SPRAWLA,DBLookup,Priority
Die DB Worker-Protokolle zeigen diese Antwort an, wenn in der Primärschlüsselspalte kein Eintrag vorhanden ist, der übereinstimmt (ausgelöst durch den DBLookup-Knoten im Skript):
13:24:05:294 ra-dbw Trace: Queue a lookup request
13:24:05:295 ra-dbw Trace: DBWorker Thread 0 (ID 350760 Table:Priority):
Received request: transactionID 1
13:24:05:295 ra-dbw Trace: DBWorker Thread 0 (ID 350760),transactionID 1,
Attempt to read the record:
13:24:05:295 ra-dbw Trace: DBWorker transactionID 1, Failed! result=1
Wenn eine Übereinstimmung vorliegt, lautet die Antwort:
13:25:25:810 ra-dbw Trace: Queue a lookup request
13:25:25:810 ra-dbw Trace: DBWorker Thread 1 (ID 354428 Table:Piority):
Received request: transactionID 2
13:25:25:810 ra-dbw Trace: DBWorker Thread 1 (ID 354428),transactionID 2,
Attempt to read the record:
13:25:25:811 ra-dbw Trace: DBWorker Thread 1 (ID 354428),transactionID 2,
Succeeded.
Fehlerbehebung
Für diese Konfiguration sind derzeit keine spezifischen Informationen zur Fehlerbehebung verfügbar.