GetSiteData não devolve resultados esperados

O método GetSiteData do SharePoint permite executar queries em várias listas e subsites ao mesmo tempo. É extremamente útil porque permite recursividade e também pesquisar numa Site Collection inteira. Usa sintaxe CAML e devolve uma DataTable.

Infelizmente também tem um conhecido bug nalgumas versões do SharePoint, impedindo que devolva todos os resultados existentes duma query.

O problema só é visível nalgumas situações. Por exemplo, quando pesquisando em mais de 10 bibliotecas de documentos. Por isso poderá não afectar toda a gente.

O método GetSiteData também é usado pelo SharePoint, por exemplo, na Content Query Web Part (CQWP). Se não estão a receber todos os resultados que esperavam na vossa CQWP, poderá ser por causa disso.

A Microsoft tem um artigo KB com informação mais detalhada sobre este problema: Search results are incomplete when you use a CAML query that uses the SPSiteDataQuery class to search content on a SharePoint Server site or on a Windows SharePoint Services 3.0 site.

A Microsoft oferece uma solução na actualização de 15 de Julho de 2008 (KB951695 para WSS3 e KB951297 para MOSS). Esta actualização põe o SharePoint na versão 12.0.0.6318, por isso, se tiverem uma versão superior, já o têm.

No entanto, há relatos de algumas pessoas para quem isto não resolve o problema. Se tiverem este problema, sugiro que instalem a actualização. Se não funcionar, podem tentar dividir as vossas queries problemáticas em várias sub queries.

Informação relacionada

Nuno Freitas
Publicado por Nuno Freitas em 21 outubro, 2013

Artigos relacionados