Conector do SQL genérico passo a passo

Este tópico é um guia passo a passo. Cria uma base de dados de RH de amostra simples e utiliza-a para importar alguns utilizadores e a sua filiação no grupo.

Preparar a base de dados de amostras

Num servidor em execução SQL Server, executa o SQL script encontrado no apêndice A. Este script cria uma base de dados de amostras com o nome GSQLDEMO. O modelo de objeto para a base de dados criada parece esta imagem:
Modelo de objeto

Crie também um utilizador que pretende utilizar para ligar à base de dados. Nesta passagem, o utilizador chama-se FABRIKAM\SQLUser e está localizado no domínio.

Criar o ficheiro de ligação ODBC

O Conector genérico SQL está a utilizar o ODBC para se ligar ao servidor remoto. Primeiro, temos de criar um ficheiro com a informação de ligação da ODBC.

  1. Inicie o utilitário de gestão ODBC no seu servidor:
    ODBC
  2. Selecione o separador Ficheiro DSN. Clique em Adicionar....
    ODBC1
  3. O condutor fora de caixa funciona bem, por isso selecione-o e clique em Next>.
    ODBC2
  4. Dê ao ficheiro um nome, como GenéricoSQL.
    ODBC3
  5. Clique em Concluir.
    ODBC4
  6. Hora de configurar a ligação. Forneça à fonte de dados uma boa descrição e forneça o nome do servidor que executa SQL Server.
    ODBC5
  7. Selecione como autenticar com SQL. Neste caso, utilizamos Windows Autenticação.
    ODBC6
  8. Fornecer o nome da base de dados da amostra, GSQLDEMO.
    ODBC7
  9. Mantenha tudo padrão neste ecrã. Clique em Concluir.
    ODBC8
  10. Para verificar se tudo está a funcionar como esperado, clique em Test Data Source.
    ODBC9
  11. Certifique-se de que o teste é bem sucedido.
    ODBC10
  12. O ficheiro de configuração ODBC deve agora ser visível no Ficheiro DSN.
    ODBC11

Agora temos o ficheiro que precisamos e podemos começar a criar o Conector.

Criar o Conector genérico SQL

  1. Na UI do Gestor de Serviço de Sincronização, selecione Conectors e Crie. Selecione Genérico SQL (Microsoft) e dê-lhe um nome descritivo.
    Conector1
  2. Encontre o ficheiro DSN que criou na secção anterior e faça o upload para o servidor. Forneça as credenciais para ligar à base de dados.
    Conector2
  3. Nesta passagem, estamos a facilitar-nos a vida e a dizer que existem dois tipos de objetos, Utilizador e Grupo. Conector3
  4. Para encontrar os atributos, queremos que o Conector detete esses atributos olhando para a própria tabela. Uma vez que os Utilizadores são uma palavra reservada em SQL, precisamos fornenciá-la em parênteses quadrados [ ].
    Conector4
  5. Hora de definir o atributo âncora e o atributo DN. Para Utilizadores, utilizamos a combinação dos dois atributos username e EmployeeID. Para o grupo, utilizamos o GroupName (não é realista na vida real, mas para este passo em diante funciona). Conector5
  6. Nem todos os tipos de atributos podem ser detetados numa base de dados SQL. O tipo de atributo de referência, em particular, não pode. Para o tipo de objeto de grupo, precisamos alterar o ProprietárioID e o MemberID para referência.
    Conector6
  7. Os atributos que selecionamos como atributos de referência no passo anterior requerem o tipo de objeto a que estes valores são uma referência. No nosso caso, o tipo de objeto utilizador.
    Conector7
  8. Na página De Parâmetros Globais, selecione Watermark como a estratégia delta. Também digite no formato data/hora yyy-MM-dd HH:mm:mm:ss. Conector8
  9. Na página Configure Partitions and Hierarquias, selecione ambos os tipos de objetos. Conector9
  10. Nos tipos de objetos selecionados e atributos selecionados, selecione ambos os tipos de objetos e todos os atributos. Na página Configure Anchors, clique em Terminar.

Criar Perfis de Execução

  1. No UI do Gestor de Serviço de Sincronização, selecione Conectors e Configure Run Profiles. Clique em Novo Perfil. Começamos com a Full Import.
    Runprofile1
  2. Selecione o tipo de Importação Completa (Apenas em Palco).
    Runprofile2
  3. Selecione a partição OBJECT=Utilizador.
    Runprofile3
  4. Selecione Tabela e escreva [UTILIZADORES]. Desloque-se para a secção do tipo de objeto multi-valor e introduza os dados como na imagem seguinte. Selecione Acabamento para guardar o passo.
    Runprofile4a
    Runprofile4b
  5. Selecione Novo Passo. Desta vez, selecione OBJECT=Group. Na última página, utilize a configuração como na seguinte imagem. Clique em Concluir.
    Runprofile5a
    Runprofile5b
  6. Opcional: Se quiser, pode configurar perfis de execução adicionais. Para esta passagem, apenas é utilizada a Importação Completa.
  7. Clique em OK para terminar a alteração de perfis de execução.

Adicione alguns dados de teste e teste a importação

Preencha alguns dados de teste na sua base de dados de amostras. Quando estiver pronto, selecione Run e Full import.

Aqui está um utilizador com dois números de telefone e um grupo com alguns membros.
cs1
cs2

Anexo A

SQL script para criar a base de dados de amostras

---Creating the Database---------
Create Database GSQLDEMO
Go
-------Using the Database-----------
Use [GSQLDEMO]
Go
-------------------------------------
USE [GSQLDEMO]
GO
/****** Object:  Table [dbo].[GroupMembers]   ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[GroupMembers](
    [MemberID] [int] NOT NULL,
    [Group_ID] [int] NOT NULL
) ON [PRIMARY]

GO
/****** Object:  Table [dbo].[GROUPS]   ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[GROUPS](
    [GroupID] [int] NOT NULL,
    [GROUPNAME] [nvarchar](200) NOT NULL,
    [DESCRIPTION] [nvarchar](200) NULL,
    [WATERMARK] [datetime] NULL,
    [OwnerID] [int] NULL,
PRIMARY KEY CLUSTERED
(
    [GroupID] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]

GO
/****** Object:  Table [dbo].[USERPHONE]   ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_PADDING ON
GO
CREATE TABLE [dbo].[USERPHONE](
    [USER_ID] [int] NULL,
    [Phone] [varchar](20) NULL
) ON [PRIMARY]

GO
SET ANSI_PADDING OFF
GO
/****** Object:  Table [dbo].[USERS]   ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[USERS](
    [USERID] [int] NOT NULL,
    [USERNAME] [nvarchar](200) NOT NULL,
    [FirstName] [nvarchar](100) NULL,
    [LastName] [nvarchar](100) NULL,
    [DisplayName] [nvarchar](100) NULL,
    [ACCOUNTDISABLED] [bit] NULL,
    [EMPLOYEEID] [int] NOT NULL,
    [WATERMARK] [datetime] NULL,
PRIMARY KEY CLUSTERED
(
    [USERID] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]

GO
ALTER TABLE [dbo].[GroupMembers]  WITH CHECK ADD  CONSTRAINT [FK_GroupMembers_GROUPS] FOREIGN KEY([Group_ID])
REFERENCES [dbo].[GROUPS] ([GroupID])
GO
ALTER TABLE [dbo].[GroupMembers] CHECK CONSTRAINT [FK_GroupMembers_GROUPS]
GO
ALTER TABLE [dbo].[GroupMembers]  WITH CHECK ADD  CONSTRAINT [FK_GroupMembers_USERS] FOREIGN KEY([MemberID])
REFERENCES [dbo].[USERS] ([USERID])
GO
ALTER TABLE [dbo].[GroupMembers] CHECK CONSTRAINT [FK_GroupMembers_USERS]
GO
ALTER TABLE [dbo].[GROUPS]  WITH CHECK ADD  CONSTRAINT [FK_GROUPS_USERS] FOREIGN KEY([OwnerID])
REFERENCES [dbo].[USERS] ([USERID])
GO
ALTER TABLE [dbo].[GROUPS] CHECK CONSTRAINT [FK_GROUPS_USERS]
GO
ALTER TABLE [dbo].[USERPHONE]  WITH CHECK ADD  CONSTRAINT [FK_USERPHONE_USER] FOREIGN KEY([USER_ID])
REFERENCES [dbo].[USERS] ([USERID])
GO
ALTER TABLE [dbo].[USERPHONE] CHECK CONSTRAINT [FK_USERPHONE_USER]
GO