Massimo, You requested, so I try to resume the most important patterns:
A proposal of a simple workflow specification: By Alexandre Andrade (alexandrema...@gmail.com) A workflow have some basic aspects: 1. Data – A work flow is about informations and decisions. Information is in data, received by forms or databases. So a good workflow engine makes easy to define the data needed in each activity, creating forms (and defining the database fields to store the data) or retrieving the data from existent databases, and presents it to the user (html pages) or pass to the code or webservice. The most importants data patterns are: 1.Task data – Associate the data needed by each task, and how it could be retrieved, validated, stored and provided. 2. Workflow data – since a workflow is set of several tasks, must have data about what workflow the tasks are, to developer 3. Instance data – Once defined the workflow, each process iniciated using the defined workflow is a instance, that need their own data. 4. A workflow engine manages several workflows. So its need data about the several workflows or create/edit them. 2. Rules or control-flow – Based on data available in a activity, human or computer take decisions, and define the next step. So is need to always define what information (data) is need to a human or computer decide how to route the process. A important pattern to be implemented is Task routing – based on the data available to the task (to code) or provided by a human decision, what is the next task. So the very basic option/patterns below are about it: 1. Sequence <http://www.workflowpatterns.com/patterns/control/basic/wcp1.php>2. Parallel Split (or simple split) <http://www.workflowpatterns.com/patterns/control/basic/wcp2.php>3. Synchronization (Join) <http://www.workflowpatterns.com/patterns/control/basic/wcp3.php> With this we can most of 90% of business situations and the other 10% can be adapted, since we could a task can be done by a human or the code (a trigger, webserver, etc) 3. Resources Patterns – Its about "who" will do the task. Could be configurable, since there are several situations: a) always alocated to a single user b) alocated to a random single user (or using other criteria) in a group c) alocated to a group, so any user in group could "get" the task d) alocated to a function, webservice or code 1. 4. Status pattern: important funcion of a workflow is make visible informations about the status of the instance of the workflow. The status inform about 1. The latest task of instance 2. Who is the resource will do or is done the latest task 3. When was the lastest task routing or status change. The most importants informations provided about a workflow are: a) my tasks to do b) the tasks alocated to me (wharever the actual status or task. c) tasks initiated by me d) tasks by user or group (others) e) tasks by status f) tasks by date g) time of completion of tasks and eventualy h) cost of tasks (when defined costs as a part of workflow) -------------------------------- If needed, ask me for more information, to define the fields or to be a alpha tester, since I work with process. On Wed, Jan 7, 2009 at 1:04 AM, mdipierro <mdipie...@cs.depaul.edu> wrote: > > If you could come up with a reasonable list of specs and references I > can try add that to T3. > I am interested in it. > > Massimo > > On Jan 6, 8:25 pm, "Alexandre Miguel de Andrade Souza" > <alexandrema...@gmail.com> wrote: > > I think it (support to workflow) could be done like a module/layer as > T2/T3. > > There are various kinds of workflow, since the simple ones, like you > > described, until the Business Process Management, but web2py (yet) > haven't > > support to them. > > > > Web2py is good, python either, but I don't know good workflow frameworks > in > > python. > > There is support to workflow in Plone/Zope, like you want. > > > > But good BPM frameworks not yet. > > > > Alexandre > > > > On Tue, Jan 6, 2009 at 10:52 PM, BigBaaadBob <w...@rwwa.com> wrote: > > > > > How would the group recommend one support workflow in a Web2py app? > > > > > Consider, for example, a document approval application. The document > > > may have to go through various steps of review and signoff, with > > > notification and recording at each step. > > > > > Is there support for that in Web2py, or something that is easily > > > integratable? Anything other than hand rolling? > > > > -- > > Atenciosamente > > > > -- > > ========================= > > Alexandre Miguel de Andrade Souza > > Hipercenter.com > > > -- Atenciosamente -- ========================= Alexandre Miguel de Andrade Souza Hipercenter.com --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "web2py Web Framework" group. To post to this group, send email to web2py@googlegroups.com To unsubscribe from this group, send email to web2py+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/web2py?hl=en -~----------~----~----~----~------~----~------~--~---