Category: Windows Sharepoint Services 3.0
Hoje tive necessidade de “martelar” um pouco o site baseado em Windows Sharepoint Services 3.0 da empresa onde trabalho. A ideia era dada uma lista pai (lista de projectos) ter um link (na última coluna da lista) que apontasse para a lista de filhos (tarefas de projectos).
Tinha portanto 2 listas independentes, em que na lista de tarefas, havia um campo Projecto que referenciava elementos da lista de projectos. Ao escolher um dado projecto é mostrada a lista de tarefas respectivas (através de um filtro).
Replicando o cenário, temos a lista Parent List, que apenas contém os títulos.

A segunda lista chamada Child List, contém o seu título, e o pai associado. No post anterior relacionado com Sharepoint deixei detalhes sobre como criar listas personalizadas.

Dada a lista abaixo, deve ser possível aplicar um filtro que nos dá apenas os elementos relacionados com o Parent 1 ou com o Parent 2.

De forma a conseguir colocar na lista pai um link que aplica este filtro, utilizei o Microsoft Office Sharepoint Designer 2007, que permite personalizar as páginas/sites criados o WSS. A interface é semelhante ao defunto Front Page (reencarnado Microsoft Expression Web). Basta clicar no menu File > Open Web Site, e escolher o site pretendido (pelo url http://blahblah.blah). Será necessário proceder à autenticação como administrador do site.

Uma vez aberto o site, é possível escolher a página a editar no Folder List, que é apresentado à esquerda. Neste caso vamos editar a lista Parent List que se encontra na pasta Lists. O ficheiro a editar é o AllItems.aspx, que corresponde à vista pré-definida, criada no momento de criação da lista. É apresentada para edição a página, com aspecto semelhante à visualizada no browser.

Neste caso, de forma a personalizar a vista, temos de converter o ListViewWebPart (no fundo, o componente de listagem da vista) para uma vista XSLT, através do menu contextual.

Agora que temos uma tabela em HTML com os campos definidos em XML (mais propriamente como uma transformação XSLT), podemos adicionar uma coluna à tabela, como faríamos no FrontPage.
(menu contextual > Table Properties, aumentar o valor do campo Columns para 3)

Com a nova coluna criada, escreve-se o texto pretendido para a hiperligação na linha de template do registo (pode-se editar a 1ª linha, que as seguintes reproduzirão a edição), e adiciona-se uma hiperligação sobre o texto introduzido na célula. Esta hiperligação será um link para a página de listagem da Child List, com os parâmetros correctos para a filtragem.
O URL terá o formato /Lists/<nome-lista>/AllItems.aspx?FilterField=<campo>&Value={@Title}.
O parâmetro Value cujo valor é {@Title} ficará ligado ao campo Title da lista Parent List, assumindo o valor do mesmo em cada registo mostrado na listagem.
Mais detalhes sobre a filtragem e ordenação de registos através do URL podem ser encontrados nesta página do site Microsoft TechNet.

Uma vez feitas as alterações descritas, pode-se salvar a página, confirmando esta decisão na caixa de diálogo seguinte.

A partir de agora, na página de listagem da Parent List aparece uma segunda coluna com a hiperligação para a Child List, com o respectivo filtro aplicado.

Estes são os passos base para criar uma hierarquia de listas no Sharepoint, o que será certamente muito útil em diversos contextos.
Este post já andava prometido há uns tempos, mas não tenho tido grande disponibilidade para “blogar”.
O Windows Sharepoint Services permite a criação de listas personalizadas (bem como personalização das listas pré-definidas). Podem ser definidas listas de contactos, de produtos, registo de chamadas ou presenças numa reunião, etc. É uma questão de pensar nas necessidades e levar a cabo a configuração no Sharepoint. Para tal é necessário no botão Site Actions escolher a opção Create.

O opção de criação da lista personalizada encontra-se no grupo Custom Lists, tendo o nome Custom List. Existem outras formas alternativas de criação de listas, que podem explorar como a criação da lista a partir de uma folha de cálculo Excel.

É necessário atribuir um nome e opcionalmente uma descrição à lista (podendo também esta ser adicionada na barra de navegação lateral).

Uma vez criada a lista, esta tem um conjunto mínimo de campos pré-definidos, que incluem por exemplo um título, autor, data de criação/modificação do registo. No menu Settings da lista tem-se acesso à criação de campos da lista (ou colunas, se preferirmos pensar numa lista como uma tabela, com colunas e tuplos). Neste caso a opção mais rica é o List Settings, que contém diversas opções referentes à nossa recém criada lista.

Existem disponíveis opções como a definição do título e descrição da lista, políticas de controlo de versões, a possibilidade de eliminar a lista, ou guardá-la como template (de forma a poder criar outras listas baseadas nesta). Existem também a possibilidade de gerar um ficheiro RSS com o conjunto de elementos da lista. É exibida nesta página a lista de campos da lista, podendo ser ordenados, criados novos,ou ainda apagados ou editados os existentes.

Ao clicar na opção Create Column é exibida uma página onde deve ser definido o nome do campo e qual o tipo de campo (ex: linha de texto, menu drop-down, moeda, data/hora, booleano, pessoa/grupo do site,etc). Uma opção interessante é o Lookup. Desta forma podemos relacionar listas. Por exemplo, se tivermos uma lista de categorias de produto, podemos definir na lista de produtos um campo Categoria, que deve ser escolhido de entre as categorias existentes.

Sobre a lista podem ser criadas várias vistas. Na definição de uma vista podem ser escolhidos os campos pretendidos, definidos filtros, ordenações, e até formas de visualização. Ao clicar no link para criação de vista, é escolhida uma vista base sobre a qual serão feitas as personalizações. Temos vista de folha de dados, vista de calendário, ou ainda de Gantt (para calendarização de acções/tarefas).

Como exemplo de vistas interessantes, temos o caso da gestão de projectos (considerando uma lista de tarefas), onde dará jeito criar uma vista em formato Gantt para ter noção da calendarização das tarefas, uma vista com as tarefas atribuídas ao utilizador que se encontra actualmente autenticado no site, uma vista onde apenas aparecem as tarefas por terminar (eliminando as tarefas fechadas e completas), etc.
Um nota importante sobre as listas, é que numa dada lista podem ser criadas pastas, podendo assim haver uma organização dos items.
A criação de listas é então um elemento fulcral na extensibilidade e adaptabilidade do Sharepoint às necessidades de cada organização, sendo de fácil utilização e bastante flexível.
Um dos elementos que pode ser utilizado nos sites criados no Windows Sharepoint Services é o calendário. Podem-se criar diversos calendários para diferentes fins.
Para os criar é necessário clicar no menu Site Actions que se encontra no canto superior direito da página, abaixo da pesquisa. Dentro deste menu clica-se na opção Create.

A página que é aberta permite criar diversos tipos conteúdo para o site. Neste exemplo em concreto o que interessa é o elemento Calendar que se encontra dentro da secção Tracking.

O formulário de criação do calendário é bastante simples. É necessário um nome, pode-se escrever uma descrição do objectivo do calendário a criar, e escolher se deve ser adicionado um link para o calendário no menu lateral (Quick Launch) do site.

Após a criação do calendário este é exibido. Tem uma interface muito agradável, que dá a sensação de estarmos na presença do própro Calendário do Outlook.
Existem 3 vistas principais dentro do formato de calendário: vista por dia, por semana e por mês. É possível ainda ver a lista de compromissos sem toda a riqueza gráfica do calendário (e sem o possivelmente mais elevado tempo de carregamento).
Podem ser ainda criadas vistas personalizadas, tal como a lista dos compromissos num dado sítio, ou os compromissos do utilizador, etc. Estas vistas são construídas pelo utilizador/administrador, sendo bastante flexíveis. Futuramente falarei da personalização de vistas (não só de calendários mas de qualquer tipo de lista).

O botão New no topo do calendário permite adicionar um compromisso ao calendário. É apresentado um formulário típico para este género de elementos. Título, local, data/hora, se é um evento para todo o dia, se é recorrente, etc.
Tal como em todas as listas criadas no Sharepoint, pode-se personalizar este formulário acrescentando campos que façam sentido para a marcação dos compromissos, como por exemplo a informação do responsável, ou um ficheiro anexo, etc. Vou novamente deixar este tópico de personalização de listas para próximos posts. Aliás, será o próximo sobre WSS 3.0.

Uma vez inserido o compromisso este passa a aparecer no calendário. Uma funcionalidade porreira é a possibilidade de sincronizar o calendário com o Outlook. Desta forma este calendário pode ser partilhado entre diversas pessoas, que ficam com a informação dos compromissos mesmo off-line. Encontra-se também disponível a subscrição como RSS feed, a exportação para Excel e ainda a subscrição de alertas de que já falei anteriormente.

Agora que já falei sobre os passos para colocar um site a funcionar, vou entrar na parte gira.
Configuração e administração do site! Começo por deixar referência ao painel de configuração Site Settings. Se estivermos autenticados como administradores do site, encontra-se disponível um menu Site Actions, no canto superior direito das páginas, abaixo da pesquisa. O painel de configuração do site pode ser acedido por este menu, escolhendo a opção Site Settings.

Uma coisa que me chamou à atenção foi a existência de um link para uma versão do portal para dispositivos móveis! É em texto sem formatação cuidada, parece mesmo feito para acesso tipo WAP e não para dispositivos com rendering de HTML mais a sério.
Nesta secção pode-se fazer a atribuição de permissões a utilizadores, alterar o título, descrição e logotipo do site. A cor verde que podem ver nas capturas de ecrã foi conseguida com a aplicação de um theme pré-existente (opção Site Theme).
É possível definir os links que aparecem no menu superior de navegação, bem como na zona lateral de Quick Launch.
Existe uma opção para salvar o site actual como template. Só experimentei 1 vez e obtive 1 erro… Um dia destes tenho de pegar nesta funcionalidade. Também nesta janela se pode apagar o site e criar sub-sites entre outras coisas.

Na captura de ecrã acima podem ter uma visão das opções disponíveis.
Uma das funcionalidades do WSS é a subscrição de alertas. Um utilizador pode subscrever a recepção de e-mails de aviso sempre que seja adicionado, editado ou removido um elemento de uma lista (anúncios, documentos, fórum de discussão, etc).

O utilizador pode escolher em que situações deseja ser alertado, e se prefere receber um resumo diário das alterações em vez de um aviso por cada alteração.
De forma a disponibilizar esta funcionalidade é necessário configurar o servidor de e-mail de saída no SharePoint Central Administration Web site. Após abrir este site, na tab Application Management deve-se clicar no link Web application outgoing e-mail settings.

Na página seguinte, basta configurar os dados de acesso ao servidor de e-mail.

Cuidado se pretenderem mexer no campo Character set. Eu mexi sem saber o que fazia, e andei a receber alertas em Chinês ou algo do género.
Eu utilizei directamente um servidor de e-mail externo à rede local, no entanto na documentação oficial encontram-se também os passos para configuração de um servidor SMTP local.
Deixo também uma referência no que diz respeito à gestão de alertas.
Para evitar o trabalho de criar sites de raiz, e de forma a demonstrar as potencialidades do Sharepoint, a Microsoft tem disponível um conjunto e templates para o Sharepoint. Ao criar um site com base num template são geradas um conjunto de páginas pré-definidas, listas, formulários e bibliotecas de documentos especializadas para o objectivo do template. Exemplos de templates: call center, planeamento de eventos, reservas de espaços e recursos, gestão de processos de candidaturas/entrevistas, gestão de projecto, etc.
Existem 2 pacotes:
O primeiro template do pacote português que utilizei (Call Center) tem imensas falhas de tradução, desde palavras soltas em páginas traduzidas até páginas completamente por traduzir.
No site Microsoft TechNet podem ler a descrição dos templates disponíveis.
Após realizar o download do pacote pretendido é necessário executá-lo para descompactar os templates para uma directoria temporária à escolha.
O primeiro template a ser instalado tem obrigatoriamente de ser o ApplicationTemplateCore.wsp, que serve como base para os restantes. A sua instalação deve ser feita a partir da linha de comandos, na directoria onde se encontra o ficheiro. São necessários 3 comandos:
stsadm –o addsolution –filename ApplicationTemplateCore.wsp
stsadm –o deploysolution –name ApplicationTemplateCore.wsp -local -allowgacdeployment
stsadm -o copyappbincontent
Para saberem mais sobre o significado dos comandos leiam o reame.txt que vem com o pacote. Outra nota que deixo é o facto de o stsadm.exe não estar na variável de ambiente PATH. Não me lembro onde está o executável, mas basta fazer como eu, procurá-lo com a ferramenta de pesquisa do Windows
De seguida pode-se passar à instalação dos restantes templates pretendidos. Inspirado pelo recente post do David Júlio, instalei a Windows Power Shell e fiz umas linhas de script para a instalação de todos os templates.
foreach($i in ls *.wsp){
stsadm -o addsolution -filename $i.Name
stsadm -o deploysolution -name $i.Name -local -allowgacdeployment
}
Basta abrir a Power Shell, ir para a pasta dos templates e introduzir o script acima. Vai demorar um bocado… Mas devem ser todos instalados sem problemas.
Para verificar, basta abrir o formulário de criação de novo Site Collection do qual falei num post anterior, e devem encontrar os novos templates disponíveis.
