SharePoint 4 Developers

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

Agrupamento por Content Type em Views não disponível por padrão

Na versão do SharePoint 2010 o agrupamento por Content Types não está disponível para seleção pelo usuário! Como fazer nesse caso? O SharePoint Designer 2010 nos ajuda a resolver esse problema.

Oi pessoal, tudo bem?

Nesse momento estou trabalhando em uma migração do MOSS 2007 para o SharePoint 2010. A maioria do trabalho faço através da criação de scripts, porém para algumas tarefas pequenas prefiro fazer manualmente pois é mais rápido.

Incluo nessas tarefas reparos rápidos, que podem ser feitos pela interface do usuário. Tive que reparar algumas views que contêm agrupamentos e reparei que na versão do SharePoint 2010 o agrupamento por Content Types não está disponível para seleção pelo usuário! Como fazer nesse caso? O SharePoint Designer nos ajuda a resolver esse problema.

Simulando a criação de View com agrupamento por Content Type

Um usuário comum precisa criar uma view que agrupe os itens por Content Type. Como realizar essa tarefa?

Na Figura 1 temos uma Document Library que contém alguns documentos. Selecione a opção Create View diretamente pela visualização principal.

Create View Figura 1 – Opção para criação de view

Na seqüência é necessário a seleção do formato da view, nesse caso trabalharemos com uma Standard View, conforme selecionado na Figura 2:

Standard View Figura 2 – Selecionando o formato da view

Nomeie a view para Grouped by Content Type (por exemplo), conforme Figura 3 e vá ao agrupamento e selecione a opção Content Type conforme Figura 4. Ops…Onde está essa opção? No MOSS 2007 isso estava disponível!

View Name Figura 3 – Nome da view

Agrupamento Figura 4 - Seleção da coluna para agrupamento

Agora a opção Content Type não está mais disponível no SharePoint 2010! Para não se deparar com essas pegadinhas na migração para o SharePoint 2010, faça testes de usabilidade com usuários reais, pois eles trabalham todos os dias com a ferramenta e sabem o que primordial para suas tarefas.

Pela interface do usuário não temos saída, apenas salve a view.

Workaround utilizando o SharePoint Designer 2010

Abra o SharePoint Designer no Web Site em que a Document Library foi criada, conforme Figura 5:

SPD2010 Figura 5 - Document Library

Avance para a abertura da view recém-criada conforme a Figura 6:

SPD2010 View Figura 6 - Seleção da view recém-criada

Conforme a Figura 7, esse é o trecho do XMLDefinition que foi criado automaticamente após salvar a view, no que diz respeito ao agrupamento, ou seja, nada (apenas a descrição do elemento Query):

XMLDefinition1 Figura 7 - Trecho do XMLDefinition vazio

Altere esse trecho para conter o agrupamento por Content Type conforme Figura 8. Isso resolverá o problema:

XMLDefinition2 Figura 8 - Agrupamento definido no XMLDefinition

Segue aqui o mesmo trecho para seleção e cópia:

Code Snippet
  1. <GroupBy Collapse="TRUE" GroupLimit="100">
  2.   <FieldRef Name="ContentType"/>
  3. </GroupBy>

OBS: Esse trecho define o agrupamento por Content Type, além de definir também que os itens estarão agrupados (collapsed) por padrão e limitados à exibição de 100 itens por grupo.

No final teremos o resultado esperado, conforme a Figura 9:

Resultado Figura 9 - Resultado Final

Finalmente obtivemos o resultado esperado! O que era uma tarefa simples antes, agora só pode ser realizada com a ajuda de uma ferramenta e apenas se o usuário possuir privilégios para utilizá-la.

Referência:
SharePoint Developer Center Fórum

[]’s

Marcel Medina

Clique aqui para ler o mesmo conteúdo em Inglês.

Business Connectivity Services – Parte II

Aprenda sobre o Business Connectivity Services e como desenvolver solu&#231;&#245;es utilizando o SharePoint Designer 2010 e Visual Studio 2010 atrav&#233;s da cria&#231;&#227;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.

Criando workflows no SharePoint 2010 – Integração Parte II

Este v&#237;deo traz a parte II da Integra&#231;&#227;o das ferramentas Visio 2010, SharePoint Designer 2010, InfoPath 2010 e Visual Studio 2010.

Oi pessoal,

Depois de um tempo sem publicação de vídeos, dessa vez consegui dedicar um tempo para focar na continuidade da criação de workflows no SharePoint 2010.

Este vídeo traz a parte II da Integração das ferramentas Visio, SharePoint Designer, InfoPath e Visual Studio na versão 2010.

Segue link para acesso do videocast disponibilizado no vimeo :



Segue link para acesso do mesmo videocast disponibilizado no screencast :



Download do vídeo: Criando Workflows no Sharepoint 2010. Integração Parte II.

Descrição: Este vídeo mostra a integração entre as ferramentas: Visio 2010, SharePoint Designer 2010, InfoPath 2010 e Visual Studio 2010.

[]’s

Marcel Medina

Clique aqui para ler o mesmo conteúdo em Inglês.