martes, 2 de marzo de 2010

Creando flujos de trabajo con Visio 2010

Cuando escuchas opiniones sobre la manera en que se trabajaba con flujos de trabajo en MOSS,  lo más común era oir lo siguiente: “SharePoint Designer 2007 te permite crear flujos de manera simple, pero el resultado no es reutilizable y la potencia de lo que puedes desarrollar es limitada. Por contra, con Visual Studio puedes crear cualquier tipo de flujo que, además, es reutilizable. Eso sí, de una manera mucho más compleja”. O también cosas del estilo de “Si quieres una experiencia positiva al trabajar con flujos de trabajo en MOSS tienes que recurrir a productos de terceros”.

Tengo que decir que personalmente no he tenido que lidiar con este tipo de problemas, puesto que me he especializado sobretodo en entornos de publicación, y los flujos de trabajo que suelo utilizar son los propios de SharePoint. De todas maneras, después de escuchar algunas de las nuevas características que incorpora SharePoint 2010 en este sentido quise hacer una prueba rápida para ver cómo se comportaba. El escenario que me planteé fue el siguiente:

Necesito un sistema que permita que usuarios que no tengan conocimientos de desarrollo sobre SharePoint sean capaces de definir sus procesos de manera simple. Que después estos procesos puedan incorporarse a SharePoint de una manera intuitiva y que finalmente la experiencia del usuario sea rica.

El primer paso: definir el proceso de negocio. Como todos sabréis, Microsoft dispone de una herramienta para modelar procesos llamada Visio. Veamos como podemos utilizar Microsoft Visio 2010 para modelar un proceso sencillo. Para ello, abrimos la aplicación y, a la hora de seleccionar la plantilla especificamos Microsoft SharePoint Workflow dentro de la categoría Flowchart.

Visio template categories

Visio templates

Una vez se crea el documento en blanco, podemos ver como nos aparece una barra de herramientas con elementos específicos de flujos de trabajo, tales como acciones, condiciones o terminadores.

Visio shapes

Haciendo uso de estos elementos montamos un flujo de trabajo como el de la figura, con una comparación de un campo de documento que, en un caso asigne una tarea a hacer, y en el otro solicite información al usuario. El diagrama quedaría más o menos así:

Visio diagram

Una vez terminado nuestro diagrama, lo exportamos haciendo uso del botón Export que encontraremos dentro de la pestaña Process. El sistema nos pedirá una ubicación donde exportar el documento y creará un fichero de intercambio de flujo de trabajo (.vwi)

Visio ribbon

Una vez hecho esto, abriremos SharePoint Designer 2010 para detallar el flujo que acabamos de crear.  Desde la aplicación, navegaremos hasta el apartado Workflows de nuestra colección de sitios y pulsaremos el botón Import from visio de la cinta o Ribbon.

SharePoint Designer workflows

SharePoint Designer nos pedirá ahora que indiquemos el fichero de intercambio que hemos creado previamente.

 Import Visio from SharePoint Designer

Una vez seleccionado, podremos elegir si queremos asociar el flujo de trabajo a una lista concreta o crear un flujo de trabajo reutilizable. Por ahora nos quedaremos con el ejemplo más sencillo, y asociaremos el flujo a una lista.

Import Visio from Designer

Una vez hecho nos aparecerá el diseñador del flujo de trabajo. Como veréis, el esqueleto está totalmente definido según el diagrama que diseñamos antes con Visio.

Empty imported workflow 

En este momento deberíamos acabar de asignar todos los elementos concretos del flujo de trabajo, como los detalles del campo a comprobar, cómo será la tarea que crearemos en un caso o qué información solicitaremos en el otro. A final, el flujo de trabajo quedará de una manera similar a la de la siguiente figura.

Filled imported workflow

Sólo nos quedará publicar el flujo de trabajo en nuestra colección de sitios utilizando la acción Publish de la cinta. SharePoint Designer asociará directamente el flujo de trabajo a la lista que hemos especificado previamente.

Visio ribbon

Con esto tenemos cubierto el segundo de nuestros objetivos: incorporar el flujo de trabajo a SharePoint de una manera simple. Finalmente, veremos como se comporta en términos de experiencia de usuario. Para ello crearemos un nuevo documento en la librería a la cual hemos asociado el flujo de trabajo. Una vez hecho, desplegaremos el menú contextual relativo al nuevo documento y seleccionaremos la opción Workflows.

Document workflows

Como veremos, nuestro flujo de trabajo (Test workflow) está disponible en la página que nos aparece. A partir de ahora podemos trabajar con este flujo de la misma manera que hacíamos en MOSS.

Document workflow

Sin embargo, hay una cosa que nos llama mucho la atención en cuanto a experiencia de usuario, que viene a solucionar nuestro tercer objetivo. Si entramos en el detalle del estado del flujo de trabajo veremos una página que incluye un gráfico indicándonos el punto donde nos encontramos a cada momento. Para disponer de algo similar a esto en SharePoint 2007 debíamos acudir a productos de terceros.

Workflow detail

En fin, esto es únicamente una introducción para que veáis un ejemplo rápido de flujo de trabajo en SharePoint 2010. Se podría escribir un libro con las posibilidades que se nos ofrecen y con las novedades que incorpora esta nueva versión pero, por ahora, con esto nos sirve para hacernos una idea. La primera pregunta que podría surgir al ver esto es: ¿significa esto que lo vamos a poder hacer todo únicamente con SharePoint y ya no necesitaremos productos de terceros? Evidentemente la respuesta es NO. El sistema tiene limitaciones que irán apareciendo a medida que lo trabajemos. Lo que sí es seguro es que no necesitaremos productos extra para cualquier pequeño detalle.

 

Cosas a tener en cuenta si nos encontramos con algún problema

Lo primero, revisad que la aplicación de servicio de Visio Graphics Service está correctamente iniciada. Os dejo aquí otro enlace por si os encontráis con algún problema en este punto.

Además de esto, os tenéis que asegurar que las características de SharePoint Server Enterprise están activadas a nivel de sitio y de colección de sitios. Si vuestra colección de sitios es una Wiki empresarial que es la plantilla que se suele utilizar para montar intranets ya las tendréis habilitadas por defecto.