Cary O'Brien wrote:
After applying Zope to a couple of in-house projects (which turned out pretty well, thank you), I've started to come to the realization that many applications boil down to workflow management. A job comes in, attributes get set, things get attached to it, and it gets passed from person to person (to machine, in some cases) as it flows through the system.
I guess to start out it would need the following:
-- user classes -- job creation -- job attributes, with protection from view and modification depending on user classes -- multiple job queues, with access control, and some sort of priority. Queues may end up being implemented simply by having a job state, sequence number, and priority, and moving from one queue to another would just be changing the state. -- job timeouts for escalation, -- e-mail "ticklers" and notification -- job routing based on attributes and actions. -- some sort of api other then HTTP/HTML for external programs to access jobs, perform actions, and update jobs. -- Extra Credit: Graphical workflow editor. -- (what else am I missing)
Sounds like a job for Zope, doesn't it. Basically I've implemented a couple of systems like this, either classic database-driven or z-class driven. But I'm tired of re-inventing the wheel. It would be nicer if systems like this could be implemented at the "workflow logic" level rather than the Zclass level. IE a set of ZClasses or Product classes that implemented workflow systems.
Is there such a thing? Has anyone worked on such a thing? Any ideas how to implement such a thing?
I've got a couple of modifications to an existing system coming up, which sounds like just the excuse I need for a total rewrite :)
Check out some of the recent work on the PTK list, its building the infrastructure you need to implement plugabble workflows. Kapil