Introdução
Este documento descreve como configurar a função DBLookup no Intelligent Contact Manager (ICM) para buscar dados de um banco de dados externo e usá-los no script. Para ilustrar como configurar a função, este documento usa um exemplo de cenário em que o usuário tenta identificar se o chamador faz parte de uma lista (por exemplo, para fornecer serviço de prioridade).
Pré-requisitos
Requisitos
Não existem requisitos específicos para este documento.
Componentes Utilizados
Este documento não se restringe a versões de software e hardware específicas.
As informações neste documento foram criadas a partir de dispositivos em um ambiente de laboratório específico. Todos os dispositivos utilizados neste documento foram iniciados com uma configuração (padrão) inicial. Se a sua rede estiver ativa, certifique-se de que entende o impacto potencial de qualquer comando.
Configurar
- Crie o banco de dados.
Primeiro, crie o banco de dados. No Microsoft SQL Server Management Studio, clique com o botão direito do mouse em Bancos de Dados e escolha Novo Banco de Dados:
Em seguida, crie uma tabela neste banco de dados. Clique com o botão direito em Tabelas no banco de dados recém-criado. Em seguida, você pode adicionar algumas colunas:
Note: Defina todos os campos inteiros nas tabelas acessadas por um nó DBLookup como NOT NULL. Somente estes tipos de dados têm suporte para bancos de dados SQL: SQLINT1 (tinyint), SQLINT2 (smallint), SQLINT4 (int), SQLCHAR (char), SQLVARCHAR (varchar), SQLFLT4DBFLT4 (real), SQLFLT8DBFLT8 (float) e SQLDATETIME (datetime). Você deve definir todos os campos, exceto SQLDATETIME, SQLVARCHAR e SQLCHAR como CAMPOS NOT NULL. Você pode definir esses três campos como NULL.
Escolha o tipo de dados varchar porque ele permite a flexibilidade para também ter caracteres no número. Para definir a coluna Phone como a chave primária, desmarque Allow Nulls na caixa de seleção. Para definir esta coluna como a chave primária, clique com o botão direito do mouse e escolha Definir chave primária:
Quando essas etapas estiverem concluídas, salve as alterações. Agora, você pode adicionar dados à sua tabela:
- Configure o ICM para se conectar a este banco de dados.
Use o Gerenciador de Configuração nas ferramentas do Explorer para abrir o Explorador de Pesquisa de Banco de Dados. Em seguida, adicione o banco de dados e a coluna recém-criados:
Você também precisa configurar o nome de usuário/senha para efetuar login no banco de dados, pois o sistema usa sa com uma senha vazia por padrão. Configure o nome de usuário/senha no registro com esta chave:
HKEY_LOCAL_MACHINE\SOFTWARE\Cisco Systems,
Inc.\ICM\inst1\RouterA\Router\CurrentVersion\Configuration\Database\SQLLogin
Este exemplo mostra como você pode configurar a chave com o usuário de domínio:
\\POD2SPRAWLA\DBLookup=(ZFB\Administrator,password)
Note: Não use os seguintes caracteres especiais na senha: "=", ")", "(", ",", "?", "\", "/"
-
Certifique-se de escolher Enable Database Routing na tela Edit Router, que pode ser acessada na configuração do roteador na interface da Web:
- Use este banco de dados no script.
Adicione o nó DBLookup e especifique em qual tabela deseja pesquisar. Este exemplo mostra uma pesquisa da tabela Prioridade com CallingLineID. Como nchar foi escolhido como o tipo de dados, você deve converter o número em uma cadeia de caracteres antes de inserir a pesquisa:
A pesquisa ocorre na coluna definida como chave primária. Posteriormente, você poderá usar dados da mesma linha para preencher variáveis de chamada. Este exemplo mostra a adição de outra coluna, Cidade, no banco de dados e no gerenciador de configurações, que pode ser preenchida no script:
Verificar
Use esta seção para confirmar se o DB Worker pode se conectar ao banco de dados externo. Crie um arquivo txt dbw.txt que contenha os logs desde a última reinicialização do processo do DB Worker:
C:\Users\Administrator.ZFB>cdlog
ra
C:\icm\inst1\ra\logfiles>dumplog dbw /o /ms /last
Verifique se o DB Worker pode se conectar ao banco de dados com dbw.txt:
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
Os logs do DB Worker exibem essa resposta quando não há nenhuma entrada correspondente na coluna de chave primária (disparada pelo nó DBLookup no script):
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
Quando há uma correspondência, esta é a resposta:
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.
Troubleshooting
Atualmente, não existem informações disponíveis específicas sobre Troubleshooting para esta configuração.