Shared Data Source e Shared Dataset no Reporting Services 2008 R2

Fala galera, um recurso muito útil do Reporting Services 2008 R2 ( e também do Integration Services ) é a possibilidade de se utilizar uma instrução de conexão ao servidor de banco de dados compartilhada [ Shared Data Source ] e/ou um acesso a tabelas/views/objetos de um banco de dados, também compartilhada, [ Shared Dataset ].

Quando se cria um projeto do tipo Report Server no BIDS (Business Intelligence Development Studio) as três pastas padrões são criadas na Solution Explorer –-> Shared Data Source / Shared Dataset / Reports.

A pasta Shared Data Source é onde se cria a conexão com o servidor e também ao banco de dados, para posterior utilização em todos relatórios que utilizem esta mesma origem de dados. O Shared Dataset é a conexão entre uma origem de dados e um objeto (tabela, stored procedure, view, etc) do banco de dados. Ela permite que você utilize uma conexão já existente (Shared Data Source) ou crie uma nova. E por fim a pasta Reports é onde ficam os seus arquivos .RDL (relatórios).

imageBom, pra começar a criar seus Shared Data Source, inicie um novo projeto no BIDS com o template de Report Server.

Vá até a pasta Shared Data Sources, clique com o botão direito e vá em Add New Data Source.

A tela do wizard vai aparecer e é só você preencher os dados de conexão com seu banco de dados.

Se você informar uma banco de dados, o seu Shared Data Source vai enxergar esse banco de dados, se você não informar nenhum, ele se atrapalha e encontra poucos bancos de dados neste servidor selecionado. Dica: Sempre informe qual será o banco de dados que você vai trabalhar.

É só nomear de forma a saber o que significa depois e pronto. Já tem uma origem de dados compartilhada. Eu chamei o meu de SQL2008R2.

imageAgora é hora de fazer a mesma coisa, só que com o Shared Dataset.

Vá na solution explorer, encontre a pasta Shared Datasets, clique com o botão direito e vá até o item Add New Dataset. Um outro wizard irá se abrir e vai te orientar a fazer a chamada do objeto para retornar os dados para a aplicação.

Dê um nome sugestivo para encontrar depois. Chamei de EstadosDoBrasil.

Na opção de Data source selecionei a minha conexão que já está criada (SQL2008R2),na opção de Query Type informei que seria uma Stored Procedure e selecionei qual eu queria na combobox. Só isso já faria minha consulta funcionar. É só confirmar e seu Shared Dataset estará criado.

Com esses dois recursos prontos, você pode criar seus relatórios e utilizar como origem da informação um Dataset já criado por você, ou por outro membro da equipe. Podendo ser aplicado manutenção nessas informações a qualquer momento, sem ter que entrar em relatório por relatório para fazer isso. Com essas duas opções, você altera um único lugar e todos os relatórios que utilizam essa parametrização para a origem dos dados já serão automaticamente atualizados.

imageUma coisa bem interessante é que para você alterar o Shared Data Source ou o Shared Dataset para enviar pra Produção é simples. Você pode abrir os arquivos SQL2008R2.RDS (shared data source) e/ou EstadosDoBrasil.RSD (shared dataset) que ficam na pasta onde você salvou o projeto.

Ambos arquivos são um XML que pode ser alterado e substituido em seus servidores para que reflitam as alterações sem a necessidade de recompilar o aplicativo ou refazer o relatório para que a alteração tenha efeito.

Vejam como é simples e intuitivo o XML do arquivo SQL2008R2.RDS que eu criei:

<?xml version=1.0 encoding=utf-8?>

<RptDataSource xmlns:xsi=http://www.w3.org/2001/XMLSchema-instance xmlns:xsd=http://www.w3.org/2001/XMLSchema Name=SQL2008R2>

  <ConnectionProperties>

    <Extension>SQL</Extension>

    <ConnectString>Data Source=.\SQL2008R2;Initial Catalog=dbMapas</ConnectString>

    <IntegratedSecurity>true</IntegratedSecurity>

  </ConnectionProperties>

  <DataSourceID>0a828d36-703e-4b98-8842-2862aeb89eca</DataSourceID>

</RptDataSource>

É isso ai, agora vocês já tem uma idéia do que é o Shared Data Source e o Shared Dataset. Vale lembrar que no Shared Dataset é possível informar parametros para as consultas, como feito aqui: DrillDown no Reporting Services 2008 R2

Sobre Diego Nogare 347 Artigos
Diego Nogare é Gerente Técnico de Engenharia de Machine Learning no Itaú-Unibanco. Também é professor em programas de pós graduação no Mackenzie e na FIAP, em São Paulo. Foi nomeado como Microsoft MVP por 11 anos seguidos, e hoje faz parte do programa Microsoft Regional Director.