SharePoint 4 Developers

Guia de referência adicional em desenvolvimento .NET / SharePoint

Business Connectivity Services – Parte II

Aprenda sobre o Business Connectivity Services e como desenvolver soluções utilizando o SharePoint Designer 2010 e Visual Studio 2010 através da criação de External Content Types via Database (Parte II).

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
  1. CREATE TABLE [dbo].[Contact](
  2.     [ContactID] [int] IDENTITY(1,1) NOT NULL,
  3.     [CompanyName] [nvarchar](100) NULL,
  4.     [ContactName] [nvarchar](70) NOT NULL,
  5.     [ContactTitle] [nvarchar](10) NULL,
  6.     [Address] [nvarchar](100) NULL,
  7.     [Email] [nvarchar](100) NOT NULL,
  8.     [City] [nvarchar](15) NULL,
  9.     [Region] [nvarchar](15) NULL,
  10.     [PostalCode] [nvarchar](10) NULL,
  11.     [Country] [nvarchar](15) NULL,
  12.     [Phone] [nvarchar](24) NOT NULL,
  13.     [Fax] [nvarchar](24) NULL,
  14.     
  15.     CONSTRAINT [PK_Contact] PRIMARY KEY (
  16.     [ContactID] ASC
  17.     )
  18. )

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 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 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 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 4Figura 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 5Figura 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:

  • Os campos não podem ser editados; ou
  • Ignore a configuração dos campos pois ela não se aplica ao cenário;

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 6Figura 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 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 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 9Figura 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.

blog comments powered by Disqus