Oi pessoal,
Este post é a continuação da série sobre o Business Connectivity Services, focado em desenvolvimento. Nessa abordagem veremos como criar ECTs via Database.
Acesso a Dados Externos
Para todos os exemplos, considere a utilização da tabela Contact, que é necessária ser criada pois nos servirá de tabela base para exemplificação:
Code Snippet
- CREATE TABLE [dbo].[Contact](
- [ContactID] [int] IDENTITY(1,1) NOT NULL,
- [CompanyName] [nvarchar](100) NULL,
- [ContactName] [nvarchar](70) NOT NULL,
- [ContactTitle] [nvarchar](10) NULL,
- [Address] [nvarchar](100) NULL,
- [Email] [nvarchar](100) NOT NULL,
- [City] [nvarchar](15) NULL,
- [Region] [nvarchar](15) NULL,
- [PostalCode] [nvarchar](10) NULL,
- [Country] [nvarchar](15) NULL,
- [Phone] [nvarchar](24) NOT NULL,
- [Fax] [nvarchar](24) NULL,
-
- CONSTRAINT [PK_Contact] PRIMARY KEY (
- [ContactID] ASC
- )
- )
Faça a criação dessa tabela no SQL Server, pois com base nela é que criaremos os ECTs. Não entrarei em detalhes de como realizar essa tarefa, pois não é o propósito deste post, porém disponibilizarei links de apoio (favor verificar nas referências desse post).
Criação de ECTs via Database
Para a criação de ECTs via database só necessitamos da utilização do SPD2010 e nada mais.
Esse tipo de abordagem é aplicado em ambientes que:
-
Estejam dentro da mesma rede, onde o acesso a databases pode ser feito diretamente pelo SPD2010;
-
Não há necessidade de criação de regras de negócio, pois as operações disponibilizadas serão de um simples CRUD;
-
Seu banco de dados seja SQL Server (isso mesmo, apenas SQL Server);
Caso você tenha esse cenário, essa demonstração é a mais fácil e simples de ser implementada.
Trabalhando com o SharePoint Designer 2010
Inicie o SPD2010 (pelo SharePoint 2010 ou abra diretamente a ferramenta) e dentro da barra de Navegação lateral esquerda acesse External Content Types. Crie um novo ECT e defina suas propriedades conforme a Figura 1:
Figura 1 - Criação de um ECT
OBS: As propriedades Office Item Type e Offline Sync for External List determinam o tipo de mapeamento de objetos no Office 2010 e se a opção de sincronização estará disponível para External Lists respectivamente. Atente-se às áreas de seleção em vermelho que dão seqüência às etapas de criação, podendo essas serem numeradas para indicar os passos corretos na tela de configuração.
Clicando na área em vermelho para o mapeamento do ECT, a tela da Figura 2 será exibida:
Figura 2 - Criação de uma nova conexão
Adicione uma nova conexão (1) ao seu banco de dados SQL Server pela seleção do tipo do External Data Source (2). Defina então os parâmetros de conexão conforme a Figura 3:
Figura 3 - Detalhes da conexão
Nesse caso o SQL Server utilizará o login do usuário logado no SharePoint para exibir os dados. Prossiga com a operação e localize a tabela Contact. Para criarmos um CRUD devemos selecionar a opção do menu de contexto (botão direito) Create All Operations conforme a Figura 4:
Figura 4 - Criação de todas as operações de um CRUD
OBS: Nesse exemplo estamos trabalhando com um CRUD e temos todas as operações disponíveis, mas se você optar pela criação de algumas operações apenas, é necessário que (no mínimo) as operações Read Item e Read List sejam criadas. Do contrário você não conseguirá criar um External List, que representa uma Lista do SharePoint que exibe os dados externos.
Uma tela do tipo modal é exibida no momento da seleção das operações. Nessa tela definiremos os parâmetros para as operações de nosso CRUD, conforme Figura 5:
Figura 5 - Tela de configuração dos parâmetros do CRUD
Basicamente precisamos configurar as propriedades das colunas da tabela Contact, determinando o identificador, nomes para exibição, campos obrigatórios e o mapeamento das propriedades do Office (Outlook). Todas essas definições estão disponíveis nas Tabelas 1 e 2.
Data Source Element | .NET Type | Map to Identifier | Identifier | Field | Display Name | Foreign Identifier |
ContactID | System.Int32 | TRUE | ContactID | ContactID | ID | |
CompanyName | System.String | FALSE | | CompanyName | Company Name | |
ContactName | System.String | FALSE | | ContactName | Contact Name | |
ContactTitle | System.String | FALSE | | ContactTitle | Contact Title | |
Address | System.String | FALSE | | Address | Address | |
Email | System.String | FALSE | | Email | E-mail | |
City | System.String | FALSE | | City | City | |
Region | System.String | FALSE | | Region | Region | |
PostalCode | System.String | FALSE | | PostalCode | Postal Code | |
Country | System.String | FALSE | | Country | Country | |
Phone | System.String | FALSE | | Phone | Phone | |
Fax | System.String | FALSE | | Fax | Fax | |
Tabela 1 - Parâmetros do CRUD
Data Source Element | Required | Read-Only | Office Property | Show In Picker | Timestamp Field |
ContactID | FALSE | TRUE | Custom Property | FALSE | FALSE |
CompanyName | FALSE | FALSE | Company Name (CompanyName) | FALSE | FALSE |
ContactName | TRUE | FALSE | Full Name (FullName) | FALSE | FALSE |
ContactTitle | FALSE | FALSE | Title (Title) | FALSE | FALSE |
Address | FALSE | FALSE | Business Address (BusinessAddress) | FALSE | FALSE |
Email | TRUE | FALSE | Email 1 Address (Email1Address) | FALSE | FALSE |
City | FALSE | FALSE | Business Address City (BusinessAddressCity) | FALSE | FALSE |
Region | FALSE | FALSE | Business Address State (BusinessAddressState) | FALSE | FALSE |
PostalCode | FALSE | FALSE | Business Address Postal Code (BusinessAddressPostalCode) | FALSE | FALSE |
Country | FALSE | FALSE | Business Address Country/Region (BusinessAddressCountry) | FALSE | FALSE |
Phone | TRUE | FALSE | Business Telephone Number (BusinessTelephoneNumber) | FALSE | FALSE |
Fax | FALSE | FALSE | Business Fax Number (BusinessFaxNumber) | FALSE | FALSE |
Tabela 2 - Parâmetros do CRUD (Continuação) OBS: Os campos na cor cinza possuem dois significados na utilização das Tabelas 1 e 2:
O campo Data Source Element é a referência utilizada em ambas as tabelas.
Uma vez que todas as colunas foram definidas, salve o ECT (1) e observe as operações criadas (2), as quais podem ser editadas a qualquer momento, conforme Figura 6:
Figura 6 - Salvando o ECT
Nesse momento já é possível a criação de uma External List que fará a interface visual com os dados externos no SharePoint 2010. Na mesma tela de External Content Types, visualize o menu de contexto (botão direito) e selecione a opção External List. Nomeie para Contacts, conforme Figura 7:
Figura 7 - Criação de um External List
Desse ponto em diante precisamos apenas testar a External List para ver seu funcionamento.
Testando a External List
Essa é a etapa final da criação de ECTs em que testaremos as External Lists para ver se as operações do CRUD estão disponíveis. Acesse o site do SharePoint em que a External List Contacts foi criada. Abra-a e adicione um novo item. Observe que as definições das colunas são exibidas conforme Figura 8:
Figura 8 - Adição de um novo item na Lista Contacts
Logo após a adição do novo item verifique se o mesmo encontra-se disponível em sua tabela no banco de dados. Está lá, correto? Esse é o comportamento esperado após a adição do novo item, mas não é só isso, as outras operações de CRUD devem estar ativas na Lista Contacts, conforme a Figura 9:
Figura 9 - Conferindo o funcionamento do CRUD
Execute as demais operações e verifique no banco de dados seu comportamento.
Nesse post exploramos o SharePoint Designer 2010 na criação de ECTs, porém nos próximos posts da série utilizaremos o Visual Studio 2010 como ferramenta adicional. No próximo post veremos como criar ECTs via Web Service. Até a próxima!
Referências:
http://msdn.microsoft.com/en-us/library/ee556826(v=office.14).aspx
http://msdn.microsoft.com/pt-br/library/ms186378(v=SQL.105).aspx
[]’s
Marcel Medina
Clique aqui para ler o mesmo conteúdo em Inglês.