Criando e Explorando os Event Receivers no MOSS 2007/WSS 3.0 – Projeto

Este post faz parte de uma série de 3:
Criando e Explorando os Event Receivers no MOSS 2007/WSS 3.0 – Overview
Criando e Explorando os Event Receivers no MOSS 2007/WSS 3.0 – Projeto
Criando e Explorando os Event Receivers no MOSS 2007 / WSS 3.0 – Deploy

Bom… Após um breve overview, vamos a prática, vou utilizar um caso simples que utilizei Event Receivers esses dias, precisava preencher um campo X que era a união de dois outros campos de uma lista customizada.

Vamos utilizar o método “ItemAdded” para interceptar os itens quando eles forem criados,  nosso EventReceiver vai se encarregar de preencher o “campo X” nesse momento ;).

Para esse exemplo, vou utilizar um ambiente com o Visual Studio 2008, Windows SharePoint Services 3.0 e o Windows Server 2003 instalados em uma VM.

Nossa lista do tipo “Custom List” (ex: ListaX) irá conter basicamente os seguintes campos:

§  Title – texto de uma linha – obrigatório

§  MeuID – texto de uma linha

§  Created – data – obrigatório

Obs.: Os campos “Created” e “Title” são criados automaticamente pelo SharePoint.

Siga os passos abaixo:

1 – Abra o Visual Studio.

2 – Crie um Novo Projeto do tipo “Class Library”.

 

3 – Adicione referência a assembly Microsoft.SharePoint no seu projeto.

 

4 – Renomeie a classe que é adicionada por padrão (ex: ManipulandoItens).

5 – Importe para essa classe o namespace Microsoft.SharePoint.

using Microsoft.SharePoint;

6 – No nosso caso vamos herdar a classe SPItemEventReceiver, porque queremos manipular eventos no nível de itens de lista.

          public class ManipulandoItens:SPItemEventReceiver

7 – Implemente “override” no método ItemAdded e a lógica com o código para preencher o nosso campo, nesse caso a coluna “MeuID”

public override void ItemAdded(SPItemEventProperties properties)

        {

            SPListItem Item = properties.ListItem;

            string Titulo = Item["Title"].ToString();

            string DataCriacao = Convert.ToDateTime(Item["Created"]).ToShortDateString();

 

            Item["MeuID"] = Titulo + "_" + DataCriacao;

            Item.SystemUpdate();

        }

Verifiquem que eu utilizei o método “SystemUpdate()”, invez de utilizar “Update”, como é mais comum, para quem não sabe esse método é utilizado na prática para não registrar a alteração do item, evitar por exemplo novas versões do documento, ou seja, a alteração nessa versão é transparente para a aplicação, como uma alteração realizada pelo “sistema”.

Nosso método que manipula o evento ItemAdded está criado, toda vez que um item for adicionado o SharePoint irá executar esse código.

Desta forma temos um exemplo de manipulação de eventos assíncronos, também irei criar um exemplo para eventos síncronos, vamos simplesmente interceptar todo evento de exclusão de itens.

8 – Implemente “override” no método de “ItemDeleting” e a lógica com o código para simular um erro ao excluir um item.

public override void ItemDeleting(SPItemEventProperties properties)

{

  properties.Cancel = true;

  properties.ErrorMessage = "Os itens da lista " + properties.ListTitle    + " não podem ser excluídos.";
}

 

  

9 – Compile a aplicação e elimine qualquer erro que aparecer (CTRL+SHIFT+B).

10 – Associe uma “strongly name” à sua assembly.

§  Na Janela “Solution Explorer” do VS 2008, clique 2 vezes na pasta “Properties” do seu projeto.

§  Na janela Properties, navegue até a guia “Signing”.

§  Marque a opção “Sign the assembly”.

§  No dropdown “Choose a strong name key file”, clique em New e atribua um nome para o “Key file name”, desmarque a opção “Protect my key file with a password”.

§  Clique em OK e depois em Salvar na janela Properties.

11 – Compile novamete a aplicação (CTRL+SHIFT+B).

Agora precisamos fazer o deploy do nosso Event Receiver no SharePoint, existem várias formas de executar esse procedimento, vou optar pelo conceito simples de features, seguindo o exemplo do SDK do WSS 3.0.

12 – Faça o Deploy da DLL para o SharePoint.

§  Copie a DLL (binDebug) gerada pelo seu projeto no GAC (C:WINDOWSassembly).

Com a feature conseguiremos informar em qual tipo de listas o SharePoint vai ativar o Event Receiver.

Anúncios

2 Respostas to “Criando e Explorando os Event Receivers no MOSS 2007/WSS 3.0 – Projeto”

  1. Rudy Says:

    Bom dia Wagner,Não entendi esse passo 12, eu copio a DLL e depois colo nessa pasta (C:\WINDOWS\assembly).?Valeu!

  2. Wagner Says:

    Sim, é isso mesmo. 😉

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 )

Imagem do Twitter

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

Foto do Facebook

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

Foto do Google+

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

Conectando a %s


%d blogueiros gostam disto: