Procedura dettagliata per la creazione del connettore Generic SQLGeneric SQL Connector step-by-step

Questo argomento è una guida dettagliata.This topic is a step-by-step guide. Verrà creato un semplice database delle risorse umane di esempio che sarà usato per importare alcuni utenti con la relativa appartenenza ai gruppi.It creates a simple sample HR database and use it for importing some users and their group membership.

Preparare il database di esempioPrepare the sample database

In un server che esegue SQL Server avviare lo script SQL disponibile nell'Appendice A. Lo script crea un database di esempio con il nome GSQLDEMO.On a server running SQL Server, run the SQL script found in Appendix A. This script creates a sample database with the name GSQLDEMO. Il modello a oggetti per il database creato sarà simile a questa immagine: The object model for the created database looks like this picture:
Modello a oggettiObject Model

Creare anche un utente da usare per connettersi al database.Also create a user you want to use to connect to the database. In questa procedura dettagliata l'utente si chiama FABRIKAM\SQLUser e si trova nel dominio.In this walkthrough, the user is called FABRIKAM\SQLUser and located in the domain.

Creare il file di connessione ODBCCreate the ODBC connection file

Il connettore Generic SQL usa ODBC per connettersi al server remoto.The Generic SQL Connector is using ODBC to connect to the remote server. È necessario innanzitutto creare un file con le informazioni di connessione ODBC.First we need to create a file with the ODBC connection information.

  1. Avviare l'utilità di gestione di ODBC sul server: Start the ODBC management utility on your server:
    ODBC
  2. Selezionare la scheda DSN su file.Select the tab File DSN. Fare clic su Aggiungi.Click Add....
    ODBC1ODBC1
  3. Il driver predefinito è adeguato allo scopo, quindi selezionarlo e fare clic su Avanti>.The out-of-box driver works fine, so select it and click Next>.
    ODBC2ODBC2
  4. Assegnare un nome al file, ad esempio GenericSQL.Give the file a name, such as GenericSQL.
    ODBC3ODBC3
  5. Fare clic su Finish(Fine).Click Finish.
    ODBC4ODBC4
  6. È ora necessario configurare la connessione.Time to configure the connection. Assegnare una descrizione appropriata all'origine dati e specificare il nome del server che esegue SQL Server.Give the data source a good description and provide the name of the server running SQL Server.
    ODBC5
  7. Selezionare la modalità di autenticazione con SQL.Select how to authenticate with SQL. In questo caso si userà l'autenticazione di Windows.In this case, we use Windows Authentication.
    ODBC6
  8. Specificare il nome del database di esempio, GSQLDEMO.Provide the name of the sample database, GSQLDEMO.
    ODBC7ODBC7
  9. In questa schermata mantenere tutte le selezioni predefinite.Keep everything default on this screen. Fare clic su Finish.Click Finish.
    ODBC8ODBC8
  10. Per verificare che tutto funzioni come previsto, fare clic su Verifica origine dati.To verify everything is working as expected, click Test Data Source.
    ODBC9ODBC9
  11. Assicurarsi che la verifica abbia esito positivo.Make sure the test is successful.
    ODBC10
  12. Il file di configurazione ODBC dovrebbe essere ora visibile in DSN su file.The ODBC configuration file should now be visible in File DSN.
    ODBC11

Il file necessario è ora disponibile e si può iniziare a creare il connettore.We now have the file we need and can start creating the Connector.

Creare il connettore Generic SQLCreate the Generic SQL Connector

  1. Nell'interfaccia utente di Synchronization Service Manager selezionare Connectors (Connettori) e Create (Crea).In the Synchronization Service Manager UI, select Connectors and Create. Selezionare Generic SQL (Microsoft) e assegnargli un nome descrittivo.Select Generic SQL (Microsoft) and give it a descriptive name.
    Connector1Connector1
  2. Trovare il file DSN creato nella sezione precedente e caricarlo nel server.Find the DSN file you created in the previous section and upload it to the server. Immettere le credenziali per connettersi al database.Provide the credentials to connect to the database.
    Connector2
  3. In questa procedura dettagliata si considera un caso semplificato in cui esistono due tipi di oggetti, User e Group.In this walkthrough, we are making it easy for us and say that there are two object types, User and Group. Connector3Connector3
  4. Il connettore dovrà trovare gli attributi esaminando la tabella.To find the attributes, we want the Connector to detect those attributes by looking at the table itself. Poiché Users è una parola riservata in SQL, occorre specificarla fra parentesi quadre [ ].Since Users is a reserved word in SQL, we need to provide it in square brackets [ ].
    Connector4Connector4
  5. È ora necessario definire l'attributo di ancoraggio e l'attributo DN.Time to define the anchor attribute and the DN attribute. Per Userssi usa la combinazione dei due attributi Username ed EmployeeID.For Users, we use the combination of the two attributes username and EmployeeID. Per Groupsi usa GroupName, non molto plausibile in un caso reale, ma adeguato per questa procedura dettagliata.For group, we use GroupName (not realistic in real-life, but for this walkthrough it works). Connector5Connector5
  6. Non tutti i tipi di attributo possono essere rilevati in un database SQL.Not all attribute types can be detected in a SQL database. In particolare, non può essere rilevato il tipo di attributo di riferimento.The reference attribute type in particular cannot. Per il tipo di oggetto Group è necessario cambiare OwnerID e MemberID a cui fare riferimento.For the group object type, we need to change the OwnerID and MemberID to reference.
    Connector6
  7. Gli attributi selezionati come attributi di riferimento nel passaggio precedente richiedono il tipo di oggetto cui questi valori fanno riferimento.The attributes we selected as reference attributes in the previous step require the object type these values are a reference to. In questo caso si tratta del tipo di oggetto User.In our case, the User object type.
    Connector7
  8. Nella pagina Global Parameters (Parametri globali) selezionare Watermark (Limite) come strategia differenziale.On the Global Parameters page, select Watermark as the delta strategy. Digitare anche il formato di data/ora yyyy-MM-dd HH:mm:ss(aaaa-MM-gg HH:mm:ss).Also type in the date/time format yyyy-MM-dd HH:mm:ss. Connector8Connector8
  9. Nella pagina Configure Partitions and Hierarchies (Configura partizioni e gerarchie) selezionare entrambi i tipi di oggetto.On the Configure Partitions and Hierarchies page, select both object types. Connector9Connector9
  10. In Select Object Types (Seleziona tipi di oggetto) e Select Attributes (Seleziona attributi) selezionare entrambi i tipi di oggetto e tutti gli attributi.On the Select Object Types and Select Attributes, select both object types and all attributes. Nella pagina Configure Anchors (Configura ancoraggi) fare clic su Finish (Fine).On the Configure Anchors page, click Finish.

Creare i profili di esecuzioneCreate Run Profiles

  1. Nell'interfaccia utente di Synchronization Service Manager selezionare Connectors (Connettori) e Configure Run Profiles (Configura profili di esecuzione).In the Synchronization Service Manager UI, select Connectors, and Configure Run Profiles. Fare clic su New Profile(Nuovo profilo).Click New Profile. Si inizierà con Full Import(Importazione completa).We start with Full Import.
    Runprofile1Runprofile1
  2. Selezionare il tipo Full Import (Stage Only)(Importazione completa - solo staging).Select the type Full Import (Stage Only).
    Runprofile2Runprofile2
  3. Selezionare la partizione OBJECT=User.Select the partition OBJECT=User.
    Runprofile3Runprofile3
  4. Selezionare Table (Tabella) e digitare [USERS].Select Table and type [USERS]. Scorrere fino alla sezione del tipo di oggetto multivalore e immettere i dati riportati di seguito.Scroll down to the multi-valued object type section and enter the data as in the following picture. Selezionare Finish (Fine) per salvare il passaggio.Select Finish to save the step.
    Runprofile4aRunprofile4a
    Runprofile4bRunprofile4b
  5. Selezionare New Step(Nuovo passaggio).Select New Step. Questa volta selezionare OBJECT=Group.This time, select OBJECT=Group. Nell'ultima pagina usare la configurazione illustrata nell'immagine.On the last page, use the configuration as in the following picture. Fare clic su Finish(Fine).Click Finish.
    Runprofile5aRunprofile5a
    Runprofile5bRunprofile5b
  6. Facoltativo: se si vuole, è possibile configurare altri profili di esecuzione.Optional: If you want to, you can configure additional run profiles. In questa procedura dettagliata si usa solo l'importazione completa.For this walkthrough, only the Full Import is used.
  7. Fare clic su OK per terminare la modifica dei profili di esecuzione.Click OK to finish changing run profiles.

Aggiungere alcuni dati di prova e testare l'importazioneAdd some test data and test the import

Immettere alcuni dati di prova nel database di esempio.Fill out some test data in your sample database. Quando si è pronti, selezionare Run (Esegui) e Full import (Importazione completa).When you are ready, select Run and Full import.

In questo esempio si ottiene un utente con due numeri di telefono e un gruppo con alcuni membri.Here is a user with two phone numbers and a group with some members.
cs1
cs2

Appendice AAppendix A

Script SQL per la creazione del database di esempioSQL script to create the sample database

---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