C# SharePoint 2010 SharePoint 2013

Caminho mais rápido para excluir itens de Lista no SharePoint via c#

Olá Pessoal!

Vamos hoje dar uma dica de como excluir itens de uma lista no SharePoint do jeito mais rápido. Temos várias formas de excluir itens de uma lista grande no SharePoint usando o c#, sendo uma delas:

foreach (SPListItem item in list.Items)
{
item.Delete();
}

Mas a forma mais rápida de execução desse comando para listas grandes, é por Batch, usando o comando SPWeb.ProcessBatchData(). Para isso precisamos criar nossa string com todos os comandos Batch e mandar executar utilizando o método ProcessBatchData.

Faríamos dessa forma:

print-13
Explicando o código…
Estou usando o StringBuilder para criarmos nossa string com a batch, e primeiramente estamos adicionando o cabeçalho xml da nossa batch, apenas para setarmos o encoding dela.
Após isso, estamos varrendo todos os itens da lista do SharePoint e adicionando em cada linha do Append os comandos necessários para excluirmos o item da lista no SharePoint.

A tag <Method> serve para indicar que estamos iniciando a utilização de um método de execução na batch.

A tag <SetList> serve para setar qual lista utilizaremos np respectivo método e o Scope está como Request para setarmos que vamos fazer uma requisição de ação. Nessa tag setamos o ID da lista em questão para que a batch consiga identificar de qual lista o item será excluido.
A tag <SetVar> serve para setarmos algumas variáveis da nossa batch, que no caso utilizaremos duas:
  • ID – para setarmos o ID do item atual que vamos excluir;
  • Cmd – para setarmos qual o comando vamos executar, no caso o de Delete;

Após isso basta utilizar o método ProcessBatchData() do nosso SPWeb e tcharam! todos os itens serão excluídos.

Com esse código reduzimos absurdamente o tempo de exclusão de itens de uma lista, mesmo sendo listas bem carregadas de itens.

Bom, essa era a dica de hoje, se tiverem alguma dúvida ou colocação fiquem à vontade!
Até a próxima!
Anúncios

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair /  Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair /  Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair /  Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair /  Alterar )

w

Conectando a %s