KB2826162 - São devolvidos dados diferentes quando utiliza a extensão de dados lista do SharePoint para um relatório no SSRS 2008 R2 ou SSRS 2012

Aplica-se A
SQL Server 2012 Developer SQL Server 2012 Enterprise SQL Server 2012 Express SQL Server 2012 Standard SQL Server 2012 Web SQL Server 2012 Enterprise Core SQL Server 2008 R2 Datacenter SQL Server 2008 R2 Developer SQL Server 2008 R2 Enterprise SQL Server 2008 R2 Express SQL Server 2008 R2 Service Pack 2 SQL Server 2008 R2 Standard SQL Server 2008 R2 Web SQL Server 2008 R2 Workgroup

Sintomas

Tenha em conta o seguinte cenário:

  • Tem um relatório Microsoft SQL Server Reporting Services 2008 R2 (SSRS 2008 R2) ou Microsoft SQL Server Reporting Services 2012 (SSRS 2012) para uma lista ou Biblioteca de Documentos do Microsoft SharePoint.
  • O relatório utiliza uma extensão de dados incorporada SQL Server Reporting Services Lista do SharePoint.
  • Cria uma consulta de conjunto de dados baseada na lista do SharePoint ou biblioteca de documentos e, em seguida, executa a consulta no estruturador de relatórios.
  • Implemente o relatório no farm do SharePoint que aloja a lista do SharePoint ou a Biblioteca de Documentos.

Nesta situação, a consulta do conjunto de dados devolve um resultado diferente no estruturador de relatórios do que no farm do SharePoint.

Por exemplo, cria uma nova vista no SharePoint na qual seleciona a opção Mostrar todos os itens sem vista de pastas numa Biblioteca de Documentos. Define a nova vista como a vista predefinida para a biblioteca de documentos. Nesta situação, o relatório devolve dados diferentes no farm do SharePoint do que no estruturador de relatórios.

Nota: se implementar o relatório no site do SharePoint, só são devolvidos os ficheiros e pastas de nível superior da Biblioteca de Documentos. No entanto, o estruturador de relatórios devolve todos os ficheiros que refletem a alteração da vista predefinida, independentemente das localizações das pastas.

Causa

Este problema ocorre devido a diferentes caminhos de código que são seguidos pelo SSRS 2008 R2 ou SSRS 2012 quando o SharePoint executa o relatório no mesmo farm que a lista. Quando o farm do SharePoint local executa o relatório, a lista é obtida com o caminho SPLocalConnection. O caminho lê diretamente a partir da lista do SharePoint sem chamadas SOAP e cria uma cópia local das informações da lista sem a configuração da vista predefinida. Por conseguinte, o caminho SPLocalConnection não reflete as alterações na vista predefinida. 

No entanto, quando o estruturador de relatórios executa o relatório, o relatório utiliza o caminho SPRemoteConnection. Este caminho utiliza chamadas SOAP que se assemelham à função GetListCollection . Esta função acede ao site através de uma ligação HTTP remota em vez da ligação local. Por conseguinte, as alterações serão refletidas na configuração da vista predefinida.

Solução

Para contornar este problema, utilize um dos seguintes métodos:

  • Implemente o relatório num servidor de relatórios de modo nativo e, em seguida, execute o relatório a partir do servidor de relatórios do modo nativo. 

    Nota Se tiver de ver o relatório no SharePoint, instale a Peça Web Visualizador de Relatórios no Modo nativo no SharePoint e, em seguida, chame o relatório a partir da sua instância nativa do Reporting Services.

    Para obter mais informações sobre como ver e explorar relatórios de modo nativo através de Peças Web do SharePoint, aceda ao seguinte site da MSDN:

    Como ver e explorar relatórios de modo nativo com peças Web do SharePoint

  • Implemente a Lista do SharePoint ou a Biblioteca de Documentos num farm do SharePoint diferente que possa ser acedido pelo farm no qual tem o relatório implementado. Por conseguinte, o relatório no farm local pode aceder à lista remotamente.

  • Utilize uma extensão de dados XML para criar uma consulta XML sem utilizar a extensão de dados da Lista do SharePoint.

Estado

A Microsoft confirmou que se trata de um problema nos produtos Microsoft listados na secção "Aplica-se a".