Showing posts with label workflows. Show all posts
Showing posts with label workflows. Show all posts

OnTaskCreated in WSS 3.0 SP2

Despues de pelear con esto en varios proyectos, errores indetectables e intermitentes, mails que no son enviados y excepciones con mensajes poco explicativos, tuvimos que optar por quitar de nuestros workflows la actividad OnTaskCreated debido a un error aún no solucionado (a la fecha del post) por Microsoft, en el que el evento OnTaskCreated es captudado solo algunas veces, ejecutando una excepcion cuando no sucede, solo en ambientes donde esta instalado el Service Pack 2.

Mi recomendación: No instale WSS 3.0 Service Pack 2 si tiene workflows custom en ejecucion en el farm, que utilicen la actividad OnTaskCreated hasta que se publique una solucion a este issue. Y es buen momento para fomentar las buenas practicas: Siempre instale los updates en ambientes de testing primero ;)

------------------------------------------------------

After fight with this issue in many projects, with complex errors, mails that has not been sent and weird exceptions, we have decided to modify our workflows, taking out the OnTaskCreated activity, because there is a not solved error (post date) that occurs when the TaskCreated event should be handled in custom workflows, just in WSS 3.0 SP2 environments.

My recomendation: Don't install the SP2 if you have custom workflows running in the farm. At least, until Microsoft give us a solution for this issue. And is always a good time to take the good practices into account: Install software updates always in testing environments first.

Diseño de Workflows: Best Practices

Estaba investigando un poco el tema, y encontré un post muy interesante en el blog de Manoj, Living.net, donde enumera una serie de buenas practicas a tener en cuenta al momento de diseñar nuestros workflows. Paso a enumararlas.

  • Los WF solo deben contener la logica del Workflow, y nada de logica en si misma

  • Evitar logica de negocio, dentro del mismo WF

  • Establecer convenciones de nombres para las actividades

  • Evaluar el uso de las transacciones

  • Evaluar el uso de WF secuencieales o maquinas de estado

  • Uso correcto de los identificadores de instancia

  • Manejo de errores
  • Cancelacion del WF

Pueden encontrar mas info en detalle de cada punto en el artículo original en Living.net (en inglés):

Best practices in Workflows Design - part 1

Best practices in Workflows Design - part 2