Partilhar via


Integrar o Reporting Services usando SOAP - Aplicativo Web

Você pode acessar a funcionalidade completa do servidor de relatório por meio da API SOAP do Reporting Services. Por ser um serviço Web, a API SOAP pode ser acessada facilmente para fornecer os recursos de relatórios corporativos para seus aplicativos comerciais personalizados. Você acessa o serviço Web do servidor de relatório a partir de um aplicativo Web da mesma forma que acessa a API SOAP de um aplicativo do Microsoft Windows. Usando o Microsoft .NET Framework, você pode gerar uma classe de proxy que expõe as propriedades e os métodos do serviço Web do Servidor de Relatório. Em seguida, você pode usar uma infraestrutura e ferramentas familiares para criar aplicativos de negócios na tecnologia do Reporting Services.

A funcionalidade de gerenciamento de relatórios do Reporting Services é facilmente acessada de um aplicativo Web ou de um aplicativo do Windows. Em um aplicativo Web, você pode adicionar e remover itens do banco de dados do servidor de relatório, definir segurança de item, modificar itens do banco de dados do servidor de relatório, gerenciar programação e entrega e muito mais.

Habilitar representação

A primeira etapa na configuração do aplicativo Web é habilitar a representação no cliente de serviço Web. Com a representação, ASP.NET aplicativos podem ser executados com a identidade do cliente em cujo nome estão operando. O ASP.NET conta com os Serviços de Informações da Internet (IIS) da Microsoft para autenticar o usuário e passar um token autenticado para o aplicativo do ASP.NET ou, se não for possível autenticar o usuário, passar um token não autenticado. Em qualquer um dos casos, o aplicativo ASP.NET representa qualquer token recebido, se a representação estiver habilitada. Você pode habilitar a representação no cliente, modificando o arquivo Web.config do aplicativo cliente como a seguir:

<!-- Web.config file. -->  
<identity impersonate="true"/>  

Observação

A representação é desabilitada por padrão.

Para obter mais informações, confira representação ASP.NET na documentação do SDK do Microsoft .NET Framework.

Gerenciar o Servidor de Relatório usando a API SOAP

Você também pode usar seu aplicativo Web para gerenciar um servidor de relatório e seu conteúdo. O Gerenciador de Relatórios, incluído no Reporting Services, é um exemplo de aplicativo Web criado usando o ASP.NET e a API SOAP do Reporting Services. Você pode adicionar a funcionalidade de gerenciamento de relatório do Gerenciador de Relatórios para seus aplicativos Web personalizados. Por exemplo, talvez você queira retornar uma lista de relatórios disponíveis no banco de dados do servidor de relatório e exibi-los em um controle Listbox para os usuários escolherem. O código a seguir conecta-se ao banco de dados do servidor de relatório e retorna uma lista de itens no banco de dados do servidor de relatório. Os relatórios disponíveis são, em seguida, adicionados a um controle Listbox que exibe o caminho de cada relatório.

Você também pode usar seu aplicativo Web para gerenciar um servidor de relatório e seu conteúdo. O portal da Web, incluído no Reporting Services, é um exemplo de um aplicativo Web que gerencia a maioria das tarefas que você normalmente executaria usando o Reporting Services. Você pode adicionar a funcionalidade de gerenciamento de relatório do portal da Web para seus aplicativos Web personalizados. Por exemplo, talvez você queira retornar uma lista de relatórios disponíveis no banco de dados do servidor de relatório e exibi-los em um controle Listbox para os usuários escolherem. O código a seguir conecta-se ao banco de dados do servidor de relatório e retorna uma lista de itens no banco de dados do servidor de relatório. Os relatórios disponíveis são, em seguida, adicionados a um controle Listbox que exibe o caminho de cada relatório.

Private Sub Page_Load(sender As Object, e As System.EventArgs)  
   ' Create a Web service proxy object and set credentials  
   Dim rs As New ReportingService2005()  
   rs.Credentials = System.Net.CredentialCache.DefaultCredentials  
  
   ' Return a list of catalog items in the report server database  
   Dim items As CatalogItem() = rs.ListChildren("/", True)  
  
   ' For each report, display the path of the report in a Listbox  
   Dim ci As CatalogItem  
   For Each ci In  items  
      If ci.Type = ItemTypeEnum.Report Then  
         catalogListBox.Items.Add(ci.Path)  
      End If  
   Next ci  
End Sub ' Page_Load   
private void Page_Load(object sender, System.EventArgs e)  
{  
   // Create a Web service proxy object and set credentials  
   ReportingService2005 rs = new ReportingService2005();  
   rs.Credentials = System.Net.CredentialCache.DefaultCredentials;  
  
   // Return a list of catalog items in the report server database  
   CatalogItem[] items = rs.ListChildren("/", true);  
  
   // For each report, display the path of the report in a Listbox  
   foreach(CatalogItem ci in items)  
   {  
      if (ci.Type == ItemTypeEnum.Report)  
         catalogListBox.Items.Add(ci.Path);  
   }  
}