GuilleSQL :: Microsoft SQL Server, SSIS, y más !!

Introducción a los Workflows Secuenciales con Tareas y Formularios en Visual Studio 2010 para SharePoint 2010


Las Listas de Tareas de SharePoint son la forma en la que los Workflows de SharePoint interacciona con los usuarios, típicamente para obtener una entrada del usuario a mitad de la ejecución del Workflow (ej: Aprobar o Rechazar), lo cual se ve complementado con la utilización de formularios personalizados (html o InfoPath). Es hace que resulte bastante importante sabe cómo utilizar las actividades relacionadas con las Tareas y sabe cómo personalizar formularios, para poder desarrollar correctamente Workflows con Visual Studio 2010 en SharePoint 2010.

Sin duda, las Listas de Tareas de SharePoint y la personalización de formularios, son dos de las prácticas más importantes para el desarrollo de Workflows para SharePoint 2010 con Visual Studio 2010.

A continuación vamos a introducir los conceptos más importantes para comprender el desarrollo de este tipo de proyectos con Visual Studio 2010. Un buen momento para montarse un entorno de desarrollo de SharePoint 2010.

Introducción a las actividades de Tareas: CreateTask, OnTaskChanged, CompleteTask y Correlation Token

Hay varias reglas que deberemos seguir para poder desarrollar con éxito un Workflow con Tareas en Visual Studio 2010, y que en caso de no seguirlas, puede convertir este menester en algo bastante frustrante.

Quizás la actividad más importante al desarrollar un Workflow con Tareas, es la actividad CreateTask, y uno de los detalles más importantes al trabajar con esta actividad, es que para cada actividad CreateTask se debe crear un nuevo Correlation Token, que no puede ser el mismo del Workflow.

Esto es muy importante, porque cualquier actividad que necesitemos enlazar con una Tarea creada por una actividad CreateTask (ej: las actividades OnTaskChanged, CompleteTask, etc.), la deberemos enlazarla con el mismo Correlation Token utilizado en la correspondiente Tarea CreateTask. Esta es la forma de decirle a Visual Studio que varias actividades de Tareas trabajan sobre una misma Tarea, y es una parte muy importante de la programación de Workflows con Tareas en Visual Studio. Para más info: Correlation Tokens in Workflows.

Además, para poder utilizar correctamente la actividad CreateTask, es necesario al menos:

  • Crear una variable miembro pública de tipo Guid y asociarla a la propiedad TaskId de la actividad CreateTask. Esto se puede hacer de forma gráfica.
  • Crear una variable miembro pública de tipo SPWorkflowTaskProperties y asociarla a la propiedad TaskProperties de la actividad CreateTask. Esta variable nos permitirá acceder a las propiedades de la Tarea que se va a crear, para de este modo, poder crear la Tarea de forma personalizada conforme a nuestras necesidades. Como en el caso anterior, esto se puede hacer de forma gráfica.
  • Crear el evento (Handler) MethodInvoking, en cuyo interior debemos codificar alguna línea de código (pocas) para crear la Tarea a nuestro gusto.

Otra actividad con la que trabajaremos habitualmente, es la actividad OnTaskChanged, que en muchos casos se utiliza dentro de una actividad While, de tal modo que cada vez que el usuario modifique la Tarea, podamos recuperar el control desde el Workflow para forzar o no que se cumpla la condición de salida del While. Sin embargo, del mismo modo que ocurría con la actividad CreateTask, para poder utilizar correctamente la actividad OnTaskChanged, es necesario al menos:

  • Crear una variable miembro pública de tipo SPWorkflowTaskProperties y asociarla a la propiedad AfterProperties de la actividad OnTaskChanged. Nos permitirá acceder a las propiedades de la Tarea al momento de después del evento de modificación de la Tarea.
  • Crear una variable miembro pública de tipo SPWorkflowTaskProperties y asociarla a la propiedad BeforeProperties de la actividad OnTaskChanged. Nos permitirá acceder a las propiedades de la Tarea al momento de antes del evento de modificación de la Tarea, lo cual sirve para pasar información desde el Workflow al formulario de la Tarea.
  • Configurar la propiedad Correlation Token con el mismo valor utilizado en la correspondiente actividad CreateTask.
  • Configurar la propiedad TaskId con el mismo valor utilizado en la correspondiente actividad CreateTask.
  • Crear el evento (Handler) Invoked, en cuyo interior debemos codificar alguna línea de código (pocas) para forzar que se cumpla la condición de salida del While si se cumplen las condiciones necesarias.

También es habitual utilizar la actividad CompleteTask, que se utiliza para finalizar una Tarea, por lo que muchas veces aparece en las ramas del final del Workflow. Para poder utilizar correctamente la actividad CompleteTask, es necesario al menos:

  • Configurar la propiedad Correlation Token con el mismo valor utilizado en la correspondiente actividad CreateTask.
  • Configurar la propiedad TaskId con el mismo valor utilizado en la correspondiente actividad CreateTask.

Estos son los pilares fundamentales para poder empezar a trabajar con Tareas en Workflows de SharePoint 2010 con Visual Studio 2010, aunque es cierto que hay mucho más por descubrir.

Los Formularios en el desarrollo de Workflows para SharePoint 2010

Del mismo modo que son importantes las Tareas, también lo son los formularios personalizados, ya que los formularios son el frontend que utilizará el usuario para interactuar con los Workflows, y ya se sabe que con una buena presentación…

Podemos crear formularios personalizados como páginas html o como formularios InfoPath, teniendo en cuenta que:

  • Los formularios InfoPath sólo se podrán utilizar en SharePoint Server 2010 y no en SharePoint Foundation 2010.
  • Los formularios InfoPath se desarrollarán desde fuera de Visual Studio 2010, es decir, desde InfoPath. Al no existir ninguna integración con Visual Studio 2010, se hace un poco más laborioso trabajar con ellos, aunque por el contrario, nos permite disfrutar de las ventajas propias de los formularios InfoPath.
  • Las páginas html se desarrollarán desde Visual Studio 2010. Sin embargo la vista de diseño no estará disponible, y aunque los formularios de asociación y de iniciación están completamente integrados en Visual Studio 2010, la utilización de formularios de tareas y de modificación es algo más laboriosa (requiere modificar manualmente el fichero Elements.xml).

Existen cuatro tipos de formularios que podemos utilizar en la programación de Workflows con SharePoint 2010, independientemente de la tecnología utilizada (html ó InfoPath):

  • Formularios de asociación (Workflow Association Form). Se muestran en el momento en que se asocia el Workflow al Site o Lista correspondiente. Permiten, por ejemplo, que un administrador pueda parametrizar el Workflow (ej: establecer un límite para la Aprobación automática, en un Workflow de Aprobación de gastos) en el momento de su asociación. Típico para establecer valores por defecto.
  • Formularios de iniciación (Workflow Initiation Form). Se muestran al iniciar la ejecución de un Workflow, lo cual resulta útil en Workflows de Sitio y en Workflows de Lista que no se inician automáticamente, permitiendo que un usuario pueda configurar parámetros del Workflow incluso para sobrescribir los parámetros especificados por el administrador.
  • Formularios de Tareas. Se muestran al editar una Tarea. Por ejemplo, podríamos crear un formulario de Tarea que sólo permita Aprobar o Rechazar, y que al aceptar los cambios finalice la Tarea.
  • Formularios de Modificación. Permite a los usuarios modificar el Flujo de Trabajo en ciertas etapas mientras se está ejecutando en un elemento.

Evidentemente, la mejor forma de entender las cosas que hemos visto en este artículo, es complementar dicha información con ejercicios o ejemplos prácticos, algo que intentaré acomenter en futuros artículos, y así evitar tener demasiada información en un único lugar.

Poco más por hoy. Como siempre, confío que la lectura resulte de interés.

 


]
[Autor: GuilleSQL]



Miembros de
Miembros de GITCA (Global IT Community Association)

Menu de Usuario
  Iniciar Sesión
  Registrarse
  Restablecer Contraseña
  Ventajas de Registrarse

Acerca de
  Contigo desde Oct 2007
  771 usuarios registrados
  86146 pageloads/mes
  Ranking Alexa 498160

Social Networks
Sigue a Portal GuilleSQL en Linkedin !!
Sigue a Portal GuilleSQL en Twitter !!



Archivo

Junio de 2017 (3)
Mayo de 2017 (1)
Marzo de 2017 (3)
Enero de 2017 (4)
Junio de 2016 (1)
Mayo de 2016 (2)
Abril de 2016 (2)
Septiembre de 2015 (2)
Agosto de 2015 (2)
Junio de 2015 (10)
Mayo de 2015 (4)
Abril de 2015 (8)
Marzo de 2015 (11)
Octubre de 2014 (3)
Septiembre de 2014 (7)
Agosto de 2014 (5)
Julio de 2014 (2)
Mayo de 2014 (4)
Abril de 2014 (4)
Marzo de 2014 (4)
Febrero de 2014 (1)
Enero de 2014 (5)
Diciembre de 2013 (8)
Noviembre de 2013 (2)
Octubre de 2013 (7)
Septiembre de 2013 (6)
Agosto de 2013 (1)
Julio de 2013 (6)
Junio de 2013 (11)
Mayo de 2013 (7)
Abril de 2013 (6)
Febrero de 2013 (5)
Enero de 2013 (7)
Diciembre de 2012 (12)
Noviembre de 2012 (13)
Octubre de 2012 (5)
Septiembre de 2012 (3)
Agosto de 2012 (6)
Julio de 2012 (4)
Junio de 2012 (1)
Mayo de 2012 (2)
Abril de 2012 (7)
Marzo de 2012 (16)
Febrero de 2012 (9)
Enero de 2012 (5)
Diciembre de 2011 (10)
Noviembre de 2011 (10)
Octubre de 2011 (4)
Septiembre de 2011 (5)
Agosto de 2011 (2)
Julio de 2011 (2)
Junio de 2011 (4)
Mayo de 2011 (2)
Abril de 2011 (6)
Marzo de 2011 (4)
Febrero de 2011 (10)
Enero de 2011 (5)
Diciembre de 2010 (6)
Noviembre de 2010 (4)
Octubre de 2010 (8)
Septiembre de 2010 (4)
Agosto de 2010 (1)
Julio de 2010 (3)
Mayo de 2010 (5)
Abril de 2010 (6)
Marzo de 2010 (8)
Febrero de 2010 (3)
Enero de 2010 (1)
Diciembre de 2009 (9)
Noviembre de 2009 (14)
Octubre de 2009 (2)
Septiembre de 2009 (8)
Agosto de 2009 (2)
Julio de 2009 (10)
Junio de 2009 (9)
Mayo de 2009 (10)
Abril de 2009 (9)
Marzo de 2009 (3)
Febrero de 2009 (2)
Enero de 2009 (3)
Noviembre de 2008 (2)
Octubre de 2008 (2)
Septiembre de 2008 (2)
Agosto de 2008 (5)
Julio de 2008 (5)
Junio de 2008 (1)
Mayo de 2008 (3)
Abril de 2008 (2)
Marzo de 2008 (2)
Febrero de 2008 (2)
Enero de 2008 (5)
Noviembre de 2007 (2)
Octubre de 2007 (2)






Copyright © 2007 GuilleSQL, todos los derechos reservados.