Article: Implementing Manual Activities in Windows Workflow
While Windows workflow is an excellent framework for implementing business processes, it lacks direct support for human activities. Several approaches to solving this problem exist, but they are not generic enough for general usage. Boris shows a completely generic implementation of human activities in WF, using a work queue manager as a decoupling layer between workflow engine and human activity execution:
This is a centralized service keeping track of all tasks for all of the users of the system. Any workflow (or a service/application containing workflow), which requires a human activity, invokes a custom workflow activity, which submits the request to the work queue manager persisting them and allowing other components of the system to work with these requests. By doing this a work queue manager is becoming a decoupling layer between workflow engine and human activity execution, thus providing support for the cases where user is not present in the system during workflow execution. Also by being a centralized service a work queue manager allows to combine all of the tasks for a given user, regardless of the process that they have initiated from. Because different user tasks can require different input information and can produce different outputs, communications between workflow and human activity is XML in and XML out, which allows processing any possible request and response generically.Boris elaborates on the internals of the whole system, highlighting important design decisions and the rationale behind them. Check out the full article for more information.
We are working on a project involving workflows and lots of human activities, and this article re-enforces what we started to put in place.
Is there any plan for publishing the source code?
thank you for this excellent article. I really enjoyed it.
Like julien I would be very interested in the source code as well. Could we have some feedback if a release of the source is possible or if we have to implement it ourself.
It's the Humans Stupid!
It will be helpful to see the source code for this if possible.
Would like to now more..