[whups] Workflow (was Re: [cvs] commit: ...)

Mike Baptiste mike@msbnetworks.net
Wed Nov 20 23:50:46 2002


This sounds awesome.  The object serialization looks sweet and would 
really allow people to 'fit' Whups to their needs.

That was the main issue we had with existing systems - their workflow 
was either non existant or fairly rigid.  While whups doesn't have much 
in place now - the nature of its code made it clear that we could add it 
later as needed - but this type of setup is even better!

Mike

Robert E. Coyle wrote:

>
> The main difference between a full workflow and Whups as it currently 
> stands
> is the ability to specify state transitions aswell as states.  For 
> example, in
> a bug tracking system you could describe a process where a bug must go 
> through
> a testing state before being marked as resolved by making a transition 
> from
> 'broken' to 'tested', and only then to 'fixed'.  When it's marked as 
> fixed, it
> gets assigned to a QA tester, and only they can move it to 'fixed' (or 
> back to
> broken as the case may be).  This way you can create a very well 
> defined process
> for tracking tickets (whatever they represent in the specific use). 
> You would
> also have to be able to specify actions to take when a user moves a 
> ticket from
> one state to the next.
>
> This is fairly straighforward to represent:
>
>   CREATE TABLE whups_state_transitions (
>       transition_id    INT NOT NULL,     -- for permissions
>       type_id          INT NOT NULL,
>       state_from       INT NOT NULL,
>       state_to         INT NOT NULL,
>       actions          some datatype);
>
> There are a couple of ways to represent the actions - you could keep 
> it simple
> and define a few types of action ('Mail Someone', 'Escalate Ticket' 
> etc), you
> could define some sort of language (I think that's what Gary Weinreb 
> meant with
> Nag / Whups integration in his mail 'new to whups', 4th november). 
> The most
> flexibly way would be to serialise php objects into the database and 
> run them
> when when the transition is used.
>
> The serialised object would only need a simple interface:
>
>     class WhupsAction { /* abc - the actual actions inherit this */
>         function  performAction($ticket_id, $state_from, $state_to);
>         function &getConfigForm($vars);
>     }
>
> Then installations could code whatever actions they need.




More information about the whups mailing list