Rodrigo Romano – MVP SharePoint Server

Registros de um Especialista SharePoint :)

Posts Tagged ‘Design Patterns

SPSiteDataQuery–Nenhum item é retornado

leave a comment »


Olá SharePointers,

Em um projeto fomos utilizar o SPSiteDataQuery para fazer queries mais performáticas no SharePoint (Seguindo esse artigo do Thiago Silva: http://thiagottss.com.br/2012/04/20/executando-queries-de-alta-performance-com-spsitedataquery/) e no nosso ambiente de homologação tudo funcionava.

 

Quando fazíamos o deploy no ambiente de produção, a query não funcionava e retornava 0 itens mesmo sabendo que teria itens que atendiam a condição especificada.

 

O que acontece é que se alguma coluna especificada no ViewFields for nula, o SharePoint aborta o processamento e retorna 0 itens.

Exemplo:

Abaixo temos uma lista de Usuário que contém 2 campos: Título e E-mail. Mesmo os 2 primeiros itens tendo todos os dados preenchidos, não são retornados por causa do terceiro.

User A; user_a@domain.com

User B; user_b@domain.com

User C;

 

Para resolver isso, precisamos colocar o parâmetro Nullable=’True’ , como abaixo:

query.ViewFields = "<FieldRef Name=’Email’ Nullable=’True’ />";

 

E pronto Alegre! Tudo funcionou como esperado.

 

Referência

http://www.mavention.nl/blog/spsitedataquery-not-returning-any-data

Written by Rodrigo Romano

January 25, 2014 at 8:43 pm

Regular TimerJob e Work Item TimerJobs

leave a comment »


Olá SharePointers,

Com o natal chegando, festas, fim de ano e toda a correria já esperada do final de ano, vou fazer provavelmente o meu último post desse ano.

Em uma discussão no grupo de SharePointers dentro do Facebook (https://www.facebook.com/groups/sharepointers/) uma das sugestões – de um amigo Reynaldo Souza – foi falar sobre a diferença de Regular Timer Job e Work Item Timer Jobs.

Já fiz, no passado, um post falando sobre TimerJobs Criando Custom Timer Jobs no SharePoint.

Resumidamente, TimerJob é uma forma de realizar atividades em “lote”, de forma agendada, baseada em alguma recorrência. Como o processo não roda através do IIS (w3wp), não existe os problemas comuns de Timeout de operações que temos ao executar operações longas.

A grande diferença do Work Item TimerJob em relação ao TimerJob normal, é que elé já contém uma infraestrutura prevista para o processamento de itens em lote, inclusive inclui até mesmo a funcionalidade de Pausa durante o processamento (Fantástico!).

 

O que muita gente não sabe é que esse tipo de TimerJob já estava presente desde a versão 2007 do SharePoint (WSS 3.0) e ele é a maneira “correta” do SharePoint processar itens em lote sem gerar trabalhos adicionais para os desenvolvedores… (Adoro essa plataforma!)

Sendo assim, o foco do desenvolvedor é apenas processar o item e não gerar um mecanismo de fila de processamento, com listas adicionais e seja lá mais for necessário para a sua regra de negócio.

Abaixo, segue alguma referências de blogs que dão mais detalhes sobre o assunto e até mostram como criar e utilizar esse recurso:

http://msdn.microsoft.com/en-us/library/microsoft.sharepoint.administration.spworkitemjobdefinition.aspx

http://blogs.technet.com/b/stefan_gossner/archive/2011/11/17/sharepoint-variations-the-complete-guide-part-4-timer-jobs.aspx

http://blog.mastykarz.nl/processing-items-work-item-timer-jobs-sharepoint-2010/

 

Pessoal, feliz natal e um ótimo ano novo a todos! Smiley de boca aberta

Abraços!

Written by Rodrigo Romano

December 23, 2013 at 10:46 am