[Zope3-dev] A possible component architecture interpretation of workflow

Andy Adiwidjaja mail at adiwidjaja.com
Tue Sep 14 11:07:03 EDT 2004


JF> Here is a longish collection of thoughts on workflow that I've been
JF> working on for a while.  I'd like to get some feedback on them, before I
JF> pursue prototypes and, eventually a proposal.

While I think that dialog control is something similar to workflow but not
the same, I think this might be of interest for you in this context:

http://www.matthiasbook.de/papers/dialogcontrol-it2002/1.html
http://ebus.informatik.uni-leipzig.de/papers/paperuploads/085_book_m.pdf

It is the description of a dialog control framework which relies on a
state-chart-like notation to describe states, user events and
transitions. Very interesting is the thought of "dialog containers"
which describe nested dialogs. So: "When the interior dialog graph of a
dialog module terminates, it generates a terminal event that continues the
traversal of the module's exterior dialog graph".

Based on this, I had some furthergoing ideas some time ago
(unfortunatley in German). I thought about a dialog flow notation like
this (or similar in XML)::

    register(Flow):
        Init -> logindata
        
        logindata(Form)
            schema: .interface.ILoginData
            next -> personaldata
            cancel -> confirmexit
                yes -> Exit
                no -> Stay
            
        personaldata(Form)
            schema: .interface.IPersonalData
            next -> confirmdata
            back -> logindata
            cancel -> confirmexit
                yes -> Exit
                no -> Stay
            
        confirmdata(Form)
            submit -> senddata
            changelogin -> logindata
            changepersonal -> personaldata
            cancel -> confirmexit
                yes -> Exit
                no -> Stay
        
        senddata(Method)
            Default -> thankyou
            
        thankyou(View)      
            # intentionally no actions
            
    confirmexit(Flow)
        yes -> Exit
        no -> Exit

which could even be used from non-programmers (UI-designers and the
like).


Cheers,

Andy



More information about the Zope3-dev mailing list