Cómo crear eventos de SharePoint
Jueves, 12 de Junio de 2008Los eventos de SharePoint nos permite controlar cuando se ejecutan en nuestro portal una serie de acciones a nivel de listas, bibliotecas o webs. Gracias a esto podemos asociar código propio a este serie de eventos para realizar otras acciones o actualizaciones, realizar validaciones o incluso cancelar la inserción de un documento o elemento a una lista.
Tenemos dos tipos de eventos en función de cuando se ejecutan. Podemos asociar un evento cuando ya se ha realizado una acción, es decir, tras producirse una inserción, actualización o eliminación. El otro tipo se ejecuta a la vez que la acción y éste nos permite cancelar el proceso, por ejemplo si tras una validación queremos cancelar la inserción de un documento por no cumplir una condición.
Los eventos a los que podemos asociar código son los siguientes:
SPItemEventReceiver
ItemAdded ItemAdding ItemAttachmentAdded ItemAttachmentAdding
ItemAttachmentDeleted ItemAttachmentDeleting ItemCheckedIn ItemCheckedOut ItemCheckingIn ItemCheckingOut ItemDeleted ItemDeleting ItemFileConverted ItemFileMoving ItemUncheckedOut ItemUncheckingOut ItemUpdated ItemUpdating
SPListEventReceiver
FieldAdded FieldAdding FieldDeleted FieldDeleting FieldUpdated FieldUpdating
SPWebEventReceiver
SiteDeleted SiteDeleting WebDeleted WebDeleting WebMoved WebMoving
En este post vamos a seguir paso a paso como crear un evento sencillo con Visual Studio 2005. En el ejemplo vamos cancelar la inserción de un elemento a una lista en cualquier caso. Aunque no es muy realista el ejemplo, nos sirve para ver la funcionalidad y las posibilidades de los eventos. Tras crear un evento y registrarlo en el GAC, debemos asociarlo a una lista o biblioteca o sitio. Este último paso lo dejaremos para un segundo post.
COMO CREAR UN EVENTO EN SHAREPOINT CON VISUAL STUDIO
Creamos proyecto Tipo Biblioteca de Clase:
Agregamos una referencia a la .dll de SharePoint para poder trabajar con su modelo de objetos:
La encontraremos en “En examinar”, en la ruta C:\Archivos de programa\Archivos comunes\Microsoft Shared\web server extensions\12\ISAPI :
Agregamos “using Microsoft.SharePoint “:
Cambiamos el nombre de la clase por AddingAction, hacemos que herede de Microsoft.Sharepoint.SPITemEventReceiver y sobrescribimos el método ItemAdding:
Metemos el código para el evento. En este caso paramos la inserción y mostramos mensaje de error:
Con esto ya tenemos todo el código escrito. Ahora deberemos firmar el ensamblado para poder registrarlo en el GAC del servidor:
Marcamos el checkbox “Firmar el ensamblado” y “Nuevo” en “Seleccione un archivo de clave de nombre seguros”
El explorador de soluciones nos quedará algo parecido a:
Hecho esto, lo registraremos en el GAC mediante un comando. Si este comando lo introducimos en el “Post-Build Event” de Visual Studio, automatizaremos el actualizar nuestros cambios en el servidor cada vez que compilemos nuestro código en el Visual Studio.
Para ello, volvemos a la ventana propiedades del proyecto, en el apartado “Eventos de Generación”:
Y aquí en “Línea de comandos del evento posterior a la generación”, introduciremos el siguiente comando (cada comando en una misma línea):
“c:\Archivos de programa\Microsoft Visual Studio 8\SDK\v2.0\bin\gacutil.exe” /nologo /i “$(TargetPath)” /f
c:\WINDOWS\system32\iisapp.vbs /a “Sharepoint – 80″ /r
donde “Sharepoint – 80” es el nombre del “grupo de aplicaciones” que ejecuta el MOSS. Podemos verlo en la Administración del IIS. Este segundo comando recicla el “Grupo de Aplicaciones”.![]()
En este momento, si generamos nuestro proyecto, lo estaremos agregando al GAC y reciclando el Grupo de Aplicaciones para que SharePoint tenga en cuenta esta nueva .dll.
Tras esto, tendremos que asociar nuestro evento a la lista. Lo podremos hacer de hasta 3 maneras diferentes.
- Creando una característica de SharePoint, que nos permitirá activarla y desactivarla desde el propio SharePoint.
- Con una aplicación de consola con el modelo de objetos de Sharepoint.
- De forma automática con una aplicación gratuita de administración de SharePoint llamada SharePoint Inspector.
Esto lo veremos en el próximo post.














el Julio 11th, 2008 a las 0:21
[...] « Cómo crear eventos de SharePoint [...]
el Enero 16th, 2009 a las 11:27
Hola, quería saber si se puede customizar la pantalla de error, para un evento itemadding determinado.
el Junio 12th, 2009 a las 17:10
esta es una prueba de como funciona