SharePoint 2010: Eventos disponibles en listas, sitios y flujos de trabajo!

Otra de las novedades de SharePoint 2010 es la relativa al modelo de eventos que ha sido completamente re-hecho y se soportan más eventos añadidos a los disponibles en SharePoint 2007:

  • FeatureUpgrading.
  • WebAdding.
  • WebProvisioned.
  • ListAdding.
  • ListAdded.
  • ListDeleting.
  • ListDeleted.
  • WorkflowStarting.
  • WorkflowStarted.
  • WorkflowPostponed.
  • WorkglowCompleted.

Otra novedad importante es que con Visual Studio 2010 (VS 2010) se simplifica el proceso de creación de un evento ya que disponemos de una plantilla de proyecto para crear dichos eventos:

  • En VS 2010 dispondremos de la plantilla Event Receiver para crear estos elementos. Al seleccionar esta plantilla se inicia un asistente que nos irá guiando en la creación del evento.
  • En la primera pantalla del asistente, especificamos la url del sitio de SharePoint 2010 en el que queremos depurar el Event Receiver y el modo de despliegue. Fijaros que se puede desplegar en modo Sandbox o en modo Full Trust. Si lo desplegamos en modo Sandbox, aparecerá en la galería User code solutuion (Por lo tanto, aquí tenemos otro artefacto más que tiene pinta que se podrá desplegar en SharePoint Online v 2.0…veremos en que queda la cosa). si lo desplegaos en modo Full Trust, aparecerá como una feature.
  • En la siguiente pantalla, podemos ver la categoría de eventos disponibles y los eventos por categoría: List Events, List Item Events, List Email Events, Web Events y List Workflow Events
image image  image
  • Por ejemplo, en la categoría List Workflow Events podemos ver alguno de los eventos nuevos que vienen con SharePoint 2010.
  • Fijaros además que para los eventos de lista, podremos escoger el tipo de lista al que vincular el Event Receiver.
  • Además, podremos elegir más de un evento por categoría.
  • En mi caso, voy a elegir un evento de la categoría List Item Events y en concreto el evento An Item is being deleted para una lista de tipo Tasks.
  • Tras pulsar Finish en el asistente, se creará la estructura de proyecto del Event Receiver (típica de un artefacto de SharePoint 2010 en VS 2010).
image image image
  • El siguiente paso consiste en añadir el código asociado al tipo de evento seleccionado utilizando para ello la vista de código del elemento de tipo Event Receiver. Por ejemplo:

       public override void ItemDeleting(SPItemEventProperties properties) 

      

           if (properties.ListItem[“Status”].ToString()!=“Completed”

          

               properties.Cancel = true

               properties.ErrorMessage = “Sorry “

                   properties.UserDisplayName + 

                   ” this task cannot be deleted because is not completed”

            

        

  • Tras compilar el código, no tenemos más que desplegarlo en el sitio elegido. El despliegue es tan simple como seleccionar el nombre del proyecto, hacer clic con el botón derecho del ratón y pulsar la opción Deploy.
  • Lo siguiente que haremos es comprobar que el manejador desplegado funciona de forma correcta. Para ello, intentamos borrar una tarea con la columna Status con el valor Completed.
  • Lógicamente, como se cumple la condición que hemos puesto en el código del manejador, el usuario será redirigido a la correspondiente página de error de SharePoint personalizada con el mensaje que hemos añadido en el código. En cambio, si tratamos de borrar una tarea con otro estado, esta se borrará sin problemas.
image image

Y hasta aquí llega este primer post sobre eventos y manejadores de eventos en SharePoint 2010. Espero que el post os haya resultado interesante.

Publicado por

Juan Carlos González

Juan Carlos es Ingeniero de Telecomunicaciones por la Universidad de Valladolid y Diplomado en Ciencias Empresariales por la Universidad Oberta de Catalunya (UOC). Cuenta con más de 12 años de experiencia en tecnologías y plataformas de Microsoft diversas (SQL Server, Visual Studio, .NET Framework, etc.), aunque su trabajo diario gira en torno a SharePoint & Office 365. Juan Carlos es MVP de Office Servers & Services desde 2015 (anteriormente fue reconocido por Microsoft como MVP de Office 365 y MVP de SharePoint Server desde 2008 hasta 2015), coordinador del grupo de usuarios .NET de Cantabria (Nuberos.Net, www.nuberos.es), co-fundador y coordinador del Grupo de Usuarios de SharePoint de España (SUGES, www.suges.es), así como co-director de la revista gratuita en castellano sobre SharePoint CompartiMOSS (www.compartimoss.com). Hasta la fecha, ha publicado 8 libros sobre SharePoint & Office 365 y varios artículos en castellano y en inglés sobre ambas plataformas.

2 comentarios en “SharePoint 2010: Eventos disponibles en listas, sitios y flujos de trabajo!”

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *