Partilhar via


Usando a API SOAP em um 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, é possível gerar uma classe proxy que expõe as propriedades e os métodos do serviço Web do Report Server e permite que você use uma infraestrutura e ferramentas conhecidas para criar aplicativos de negócios baseados na tecnologia do Reporting Services.

A funcionalidade de gerenciamento do Reporting Services é acessada no aplicativo Web tão facilmente como em 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.

Habilitando a representação

A primeira etapa na configuração do aplicativo Web é habilitar a representação no cliente de serviço Web. Com representação, os aplicativos do ASP.NET podem ser executados com a identidade do cliente em nome dos quais estão sendo operados. 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.

Gerenciando do servidor de relatório por meio da 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 o Reporting Services, é um exemplo de aplicativo Web criado completamente por meio do ASP.NET e da 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 de ASP.NET Listbox para seus 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);  
   }  
}  

Consulte Também

Criando aplicativos usando o serviço Web e o .NET Framework
Integração do Reporting Services em aplicativos
Gerenciador de Relatórios (modo nativo do SSRS)
Usando a API SOAP em um aplicativo do Windows