Este exemplo utiliza scripts SQL com um DB2 Universal Database para consultar um relacionamento de identidade com três conjuntos de dados de três aplicativos corporativos : Clarify, SAP e Siebel.
Os dados são correlacionados usando o serviço de relacionamento do IBM® Business
Process Manager . Cada aplicativo contém informações do cliente semelhante, com um relacionamento de identidade para correlacionar as informações entre cada aplicativo.
As três tabelas a seguir mostram os dados como eles são armazenados em cada banco de dados:
Tabela 1. Clarify do cliente| Nome Fornecido |
Sobrenome |
Telefone Residencial |
ID |
| Jessica |
Reed |
111111 11111 |
clarify_1 |
| Tara |
McLean |
333 333 33333 |
clarify_2 |
Tabela 2. cliente do SAP| Nome Fornecido |
Sobrenome |
Telefone Residencial |
ID |
| Jessica |
Reed |
111111 11111 |
sap_10 |
| Tara |
McLean |
333 333 33333 |
sap_8 |
Tabela 3. Siebel do cliente| Nome Completo |
Telefone Residencial |
ID |
| Jessica Reed |
111111 11111 |
siebel_6 |
| Tara McLean |
333 333 33333 |
siebel_8 |
Os nomes de definição de objeto de negócios do cliente e elementos (criados no Integration Designer para cada banco de dados) são mostrados na tabela a seguir :
Tabela 4. Definições de Objetos de Negócios para Cliente em cada banco de dados| ClarifyCustomer |
SapCustomer |
SiebelCustomer |
| Elemento |
Tipo |
Elemento |
Tipo |
Elemento |
Tipo |
| givenName |
Sequência |
nome |
Sequência |
fullName |
Sequência |
| lastName |
Sequência |
lastName |
Sequência |
|
|
| homePhone |
Sequência |
homePhone |
Sequência |
homePhone |
Sequência |
| clarifyId |
Sequência |
sapId |
Sequência |
siebelId |
Sequência |
Um relacionamento de identidades é definido para correlacionar as informações do cliente entre cada banco de dados. Este relacionamento, chamado
ID neste exemplo, usa os elementos de objeto de negócios
clarifyId,
sapIde
siebelId. Esses elementos são usados porque eles contêm os dados de ID para cada banco de dados e esses dados são exclusivos para cada cliente. A tabela a seguir descreve as funções que são usadas para correlacionar diferentes bancos de dados no relacionamento para um ID comum usado pelo
IBM Business
Process Manager:
Tabela 5. definição de relacionamento do ID| Nome do Relacionamento |
Nome da Função |
Nome do objeto de negócios |
Tecla |
| ID |
GenCustomer |
GenCustomer |
genId |
| ClarifyCustomer |
ClarifyCustomer |
clarifyId |
| SapCustomer |
SapCustomer |
sapId |
| SiebelCustomer |
SiebelCustomer |
siebelId |
O nome do relacionamento completo é
http://CustomerModule/ID.
Os nomes de função completos são
- http://CustomerModule/ClarifyCustomer
- http://CustomerModule/SapCustomer
- http://CustomerModule/SiebelCustomer
É possível correlacionar os dados dentro dos objetos de negócios contidos em todos os três bancos de dados usando o relacionamento definido. Os dados de ID do cliente a partir de cada banco de dados são correlacionados com os dados do cliente dos outros bancos de dados compartilhando IDs de instância. Por exemplo, Tara McLean é identificado por
clarify_3 ID no Clarify,
sap_8 no SAP e
siebel_8 no Siebel. Um ID exclusivo é gerado pelo serviço de relacionamento do
IBM Business
Process Manager .
Dica: Você pode utilizar as visualizações para procurar o conteúdo da tabela de relacionamentos.
é possível definir várias instâncias de relacionamento usando as visualizações criadas no banco de dados Comum. O mapeamento do nome da visualização (usando a convenção de nomenclatura conforme descrito anteriormente) para sua função de relacionamento correspondente é capturado na tabela
RELN_VIEW_META_T no banco de dados Comum. A tabela a seguir mostra um exemplo dos nomes de visualização para o
ClarifyCustomer,
SapCustomere funções
SiebelCustomer :
Tabela 6. tabela RELN_VIEW_META_T| VIEW_NAME |
RELATIONSHIP_NAME |
ROLE_NAME |
| V_ID_CLARIFYCUSTOMER_098 |
http://CustomerModule/ID |
http://CustomerModule/ClarifyCustomer |
| V_ID_SAPCUSTOMER_515 |
http://CustomerModule/ID |
http://CustomerModule/SapCustomer |
| V_ID_SIEBELCUSTOMER_411 |
http://CustomerModule/ID |
http://CustomerModule/SiebelCustomer |
| V_USASTATE_ABBREVIATION_DE8 |
http://CustomerModule/USASTATE |
http://CustomerModule/Abreviatura |
| V_USASTATE_CODE_B32 |
http://CustomerModule/USASTATE |
http://CustomerModule/Código |
| V_USASTATE_NAME_933 |
http://CustomerModule/USASTATE |
http://CustomerModule/FullName |
A definição de coluna de visualização conforme descrito na
tabela 1 terá uma
ROLE_ATTRIBUTE_COLUMN com as seguintes propriedades:
Tabela 7. Definição da Coluna de Visualização | Nome da Coluna |
Tipo de Dados |
Valor |
Descrição |
| KEY_ATTRIBUTE_NAME |
depende do tipo de atributo de chave |
Não é nulo |
Este é o local em que os dados da instância da função são armazenados.
Para relacionamentos de identidade, a coluna será nomeada pelo nome do atributo-chave. Por exemplo, SAPCUSTOMER_SAPID usará sapid como nome do atributo-chave e sapcustomer como nome do objeto de negócios. Uma coluna é definida para cada atributo-chave.
Para relacionamentos estáticos, a coluna é denominada DATA |
A tabela a seguir mostra os mostram as visualizações no banco de dados Comum para os relacionamentos de ID.
Tabela 8. Definição da Coluna de Visualização| Visualização da função Clarify |
Visualização da Função SAP |
Visualização da Função Siebel |
| INSTANCEID |
INSTANCEID |
INSTANCEID |
| CLARIFYCUSTOMER_CLARIFYID |
SAPCUSTOMER_SAPID |
SIEBELCUSTOMER_SIEBELID |
| STATUS |
STATUS |
STATUS |
| LOGICAL_STATE |
LOGICAL_STATE |
LOGICAL_STATE |
| LOGICAL_STATE_TIMESTAMP |
LOGICAL_STATE_TIMESTAMP |
LOGICAL_STATE_TIMESTAMP |
| CREATE_TIMESTAMP |
CREATE_TIMESTAMP |
CREATE_TIMESTAMP |
| UPDATE_TIMESTAMP |
UPDATE_TIMESTAMP |
UPDATE_TIMESTAMP |
| ROLEID |
ROLEID |
ROLEID |
Nota: Todos os nomes de colunas na visualização correspondem, exceto os nomes de coluna de atributo de chave.
Você deve primeiro saber o nome da visualização de tabela de execução da função antes de você poder executar o SQL na visualização para manipular dados da instância da função.
O script SQL a seguir mostra um exemplo usando o DB2 Universal Database. O exemplo assume que todos os dados de cada banco de dados tenha sido copiado para o banco de dados de relacionamento. É possível copiar os dados usando a instrução
SELECT INTO SQL :
//Criar uma tabela para armazenar valores de ID de todos os três aplicativos para cada cliente,
//e associar um ID de instância exclusivo a cada cliente. Use esta tabela como uma base
//tabela de origem básica para preencher tabelas de relacionamentos.
CREATE TABLE joint_t (instanceid INTEGER NOT NULL GENERATED ALWAYS AS IDENTITY,
clarify_id VARCHAR(10) NOT NULL,
sap_id VARCHAR(10) NOT NULL,
siebel_id VARCHAR(10) NOT NULL)
//Compare o nome e o número de telefone nas três tabelas de aplicativos.
//Se uma correspondência for localizada, insira o ID da pessoa de cada tabela de aplicativos
//na tabela joint_t. Associe os três valores de ID a um ID exclusivo
//O ID será utilizado posteriormente como o ID da instância de relacionamento.
INSERT INTO joint_t (clarify_id,sap_id,siebel_id)
SELECT A.ID, B.ID, C.ID
FROM clarifycustomer A,sapcustomer B, siebelcustomer C
WHERE A.homephone=B.homephone AND
B.homephone=C.homephone, AND
B.givenname=C.firstname AND
B.lastname=C.lastname AND
A.fullname=C.firstname CONCAT ' ' CONCAT C.lastname
//Crie uma seqüência para cada aplicativo; essa seqüência será
//usada posteriormente como um ID de função em cada tabela de função.
CREATE SEQUENCE clarify_roleid MINVALUE 1 ORDER CACHE 100
CREATE SEQUENCE sap_roleid MINVALUE 1 ORDER CACHE 100
CREATE SEQUENCE siebel_roleid MINVALUE 1 ORDER CACHE 100
//Preencha a tabela da instância de função para a função CLARYFY.
INSERT INTO V_ID_CLARIFYCUSTOMER_098 (instanceid, roleid,
clarifycustomer_clarifyid, status, logical_state, logical_state_timestamp,
create_timestamp, update_timestamp)
FROM joint_t
//Preencha a tabela da instância de função para a função SAP.
INSERT INTO V_ID_SAPCUSTOMER_515 (instanceid, roleid, sapcustomer_sapid,
status, logical_state, logical_state_timestamp, create_timestamp,
update_timestamp)
SELECT instanceid NEXTVAL FOR sap_roleid, sap_id, 0, 0, current
timestamp, current timestamp, current timestamp
FROM joint_t
//Preencha a tabela da instância de função para a função SIEBEL.
INSERT INTO V_ID_SIEBELCUSTOMER_AFC (instanceid, roleid, siebelcustomer_siebelid,
status, logical_state, logical_state_timestamp, create_timestamp, update_timestamp)
SELECT instanceid, NEXTVAL FOR siebel_roleid, sap_id, 0, 0, current timestamp,
current timestamp, current timestamp
FROM joint_t
A tabela
joint_t é criada para armazenar temporariamente os valores da chave. é possível excluir a tabela quando você tiver concluído o salvamento dos recursos, se necessário. alternativa, é possível criar uma tabela de visualização ou uma tabela temporária.