Desenvolvimento - ASP. NET

Consultar conteúdo de listas do SharePoint por Web Service

Veja neste artigo como consultar conteúdos de listas do SharePoint através de webservices em ASP.Net.

por Stephany Henrique de Almeida Batista



Neste artigo irei descrever os passos necessários para que uma aplicação externa possa consultar conteúdos de listas do SharePoint. Primeiro irei criar no SharePoint uma lista de exemplo que será consultada em outra aplicação, a mesma terá cadastro dos maiores clubes do mundo e a quantidade de títulos de cada. Por fim iremos criar uma aplicação Web plataforma ASP.NET, linguagem C# e utilizando a ferramenta Visual Studio 2010 para consultar o conteúdo da lista existente no SharePoint. Espero que goste do artigo e boa leitura.

A lista personalizada a ser criada terá o nome “Títulos de futebol time” e ela será composta pelos campos: clube, pais, quantidade de títulos e data do ultimo título. Na imagem abaixo é apresentando a lista desenvolvida com conteúdo.

Lista Títulos de futebol time criada

Figura 1: Lista "Títulos de futebol time" criada

Depois de criar a lista, nosso próximo passo será criar a aplicação que consumirá conteúdos de uma lista do SharePoint, no nosso caso à lista de títulos do futebol. Essa aplicação será um Web Site da plataforma ASP.NET, linguagem C# e o desenvolvimento através da ferramenta Visual Studio 2010.

Criando novo web site ASP.NET

Figura 2: Criando novo web site ASP.NET

Depois de criado o projeto será adicionado WEB REFERENCE para criar o serviço que terá a função de acessar o objetivo do artigo e este passo é demonstrada na próxima imagem.

Adicionando a referência ao webservice

Figura 3: Adicionando a referência ao webservice

A próxima tela que irá abrir solicita que seja inserido a URL do serviço. No SharePoint existe uma URL própria para que sejam consultadas o conteúdo das listas <http://<endereço>:30001/_vti_bin/Lists.asmx>. O único detalhe desta URL é que se sua lista estiver dentro de um subsite você deverá especificar na URL, exemplo:http://<endereço>:30001/<subsite>/_vti_bin/Lists.asmx.

Após informar a URL deverá ser clicado na seta verde ao lado para que seja consultado os métodos de acesso do serviço. Na caixa de texto Web Reference Name você poderá alterar o nome do serviço, este nome será utilizado no código fonte. Para finalizar este processo clique no botão Add Reference.

Detalhes do webservice referenciado

Figura 4: Detalhes do webservice referenciado

Após incluir o serviço no projeto o web.config é modificado e é inserido o código abaixo. Verifique se este código existe no seu projeto.

Listagem 1: Chave criada na seção appKeys

<appSettings>
 <add key=”server_sharepoi.Lists” value=”http://server-sharepoi:30001/_vti_bin/Lists.asmx”/>
</appSettings>

Veja como ficará seu projeto após a inserção do serviço.

Solution explorer após adicionar a referência

Figura 5: Solution explorer após adicionar a referência

Para consultar os dados, iremos alterar a classe da página Default.aspx, nela iremos inserir o seguinte código, no método Page_Load, que será explicado logo em seguida.

Listagem 2: Código do evento Page_Load

server_sharepoi.Lists myservice = new server_sharepoi.Lists();
myservice.Credentials = System.Net.CredentialCache.DefaultCredentials;
//Se desejar você pode passar as credenciais de um usuários especifico do share.
//myservice.Credentials= new NetworkCredential(“usuário”, “senha”, //”sharepoint.com.br”);
var o = myservice.GetListItems(“Titulos de Futebol Time”, null, null, null, null, null, null);

Como podem verificar na primeira linha estamos utilizando o serviço que criamos (“server_sharepoi”). Na segunda linha estamos configurando as credenciais para acesso, neste ponto estamos passando como parâmetro o usuário que está executando a aplicação. Em produção é aconselhável utilizar por segurança login e senha, pois o usuário da maquina que irá rodar o aplicativo não necessariamente terá acesso ao SharePoint e para isso poderá ser utilizada o código comentado da terceira linha.

Na quarta linha é onde a mágica acontece! O objeto que criamos do serviço configurado irá acessar a lista desejada e retornar como XML. Como parâmetro foi enviado apenas o nome da lista que criamos no SharePoint e que desejamos consultar em nossa aplicação.

Na pratica o tutorial termina por aqui, mas como eu não gosto de manipular XML eu irei converter este XML retornado para um DataSet, pois acho que assim fica mais fácil para se trabalhar no código. Abaixo segue o código.

Listagem 3:Convertendo o XML para DataSet

System.Text.ASCIIEncoding encoding = new System.Text.ASCIIEncoding();
System.IO.MemoryStream m = new System.IO.MemoryStream(encoding.GetBytes(o.InnerXml));
DataSet ds = new DataSet();
ds.ReadXml(m);

Na próxima imagem é possível visualizar os dados retornados, como podem ver esse conteúdo é o que existe na lista que criamos no começo deste artigo.

Dataset visualizer com os dados recebidos

Figura 6:Dataset visualizer com os dados recebidos

O artigo demonstrou a forma para consultar conteúdo de listas do SharePoint através de aplicações ASP.NET. Isso é bastante útil já que já que em qualquer empresa existe a palavrinha mágica chamada “integração”.

Espero ter ajudado e até a próxima!

Blog do autor: http://stephanyhenriquebatista.wordpress.com/

Stephany Henrique de Almeida Batista

Stephany Henrique de Almeida Batista - Formado em Ciências da Computação e Pôs-Graduado em Banco de dados. Atualmente trabalho na UNIMED Campo Grande como analista de sistema em sistemas desenvolvidos com .Net