Re: Workflow engine

Adam Tauno Williams <[email protected]> Tue, 16 Mar 2010 13:33:00 -0400
Newsgroups gmane.comp.cms.opengroupware.discuss.general
Message-ID <[email protected]>
The OpenGroupware Coils project
<http://sourceforge.net/apps/trac/coils/> now has a workflow engine;  it
is useful enough that we are using it lightly in production.  It is
accessible via WebDAV [for creating, browsing, and starting flows].  The
engine compiles BPML 1.0 markup to an internal format;  adding
additional markup-notations wouldn't be much harder than writing a SaX
parser to produce the internal format.

Only linear execution and foreach flow-control are implemented so far.
Stubs exist for switch, until, and while; but foreach was the hardest so
I started with that.  Messages scope is handled correctly.

The actions implemented so far are: 
read [translate a message using a format, 
line oriented and XLS implemented so far], 
select [SELECT from a defined RDBMS], 
write [write a StandardXML message out using a specified format, line
oriented implemented so far], 
assign [XPath select a value or assign a static value to a message],
getEntity [retrieve an entity from the groupware database], 
xpath [create a new message from an XPath query], 
ldapSearch [search an LDAP DSA, results are in DSMLv1.0],
regularExpressionFind [perform regexp matches], 
readJSON [translate JSON data into XML], 
sendMail [which support attachments].  

All commands support label substitution in appropriate parameters.

<http://sourceforge.net/apps/trac/coils/wiki/Workflow-Engine>

On Thu, 2005-01-06 at 17:17 +0100, Helge Hess wrote:
> On 6. Jan 2005, at 16:23 Uhr, Adam Tauno Williams wrote:
> > I clearly see the connection between Groupware and CRM.  The connection
> > between Groupware and Workflow seems more abstract to me,  a workflow
> > can be basically anything; but as a source of participants the 
> > groupware
> > server is certainly useful.
> Also as a source for actions. A workflow definition itself is nothing 
> else but a declarative programming language which evaluates conditions 
> and triggers actions.
> The conditions can involve object status (like the role of a 
> participant).
> The actions can be "groupware actions", like creating an OGo task as 
> the final step.
> > Currently getting data from OGo from aworkflow engine is possible 
> > since you can usually invoke external commands or plugins and make use 
> > of XML-RPC,  and the same in reverse.
> > Altough this would be even more straight forward if OGo supported SOAP
> > since every engine i've met supports that natively.
> SOAP is just an RPC mechanism and doesn't say anything about the actual 
> calls (just like with XML-RPC). So OGo supporting "SOAP" doesn't help 
> anything, it would need to support the SOAP messages send by those 
> engines.
> I suppose writing a small SOAP<->XML-RPC bridge should be pretty easy 
> in Mono?
> > Would a workflow engine in ObjC/SOPE be able to simply interact with
> > objects in the OGo space?  (I only have a sketchy understanding of
> > SOPE).
> That is actually the major work, packaging the OGo functionality in 
> something which can be referred from the workflow definition. Not sure 
> how this is done in current solutions as it probably involves some 
> scripting.
> But yes, this would be what I'm interested in.
> > That would be cool for some simple processes where documents
> > need to move through a chain user modifcations/approvals.  I guess that
> > is CRMish.
> Thats CMSish ;-)
> > You mean a standalone workflow designer?
> Yes.
> > Unfortunately most designers
> > are linked pretty tightly to their respective engines,  and most of
> > those are labyrinthian J2EE abominations.
> OK, I guessed so. Since a generic designer only makes limited sense.
> > The only two stand-alone designer I know of is
> > http://jawe.objectweb.org/ which reads/emits XPDL files.  XPDL is the
> > XML Process Description Language.
> Actually the engine we have does read the predecessor of XPDL, don't 
> remember how this was called.
> > jawe is currently used by serveral workflow engines:
> > http://shark.objectweb.org/
> > http://www.openbusinessengine.org/
> > http://wfmopen.sourceforge.net/
> OK, interesting. Unfortunately its not really usable on OSX because the 
> UI is mixed up (well, its Swing ;-)
> > jawe supports the Meta-Model for participants and lets your build
> > particpant lists from an LDAP DSA, so with a little rigging you can get
> > data from OGo and avoid having to build particpant<->realperson
> > relationships in a third facility.
> Ah, sounds cool. Maybe it could be even extended with some OGo specific 
> plugins.
> Writing some own simple modeller as a web app could be done as well. 
> Not sure whether people would be pleased with that though. The 
> advantage would be better integration with OGo (that is the modeller 
> would know what actions can be triggered).

-- 
Adam Tauno Williams <[email protected]> LPIC-1, Novell CLA
<http://www.whitemiceconsulting.com>
OpenGroupware, Cyrus IMAPd, Postfix, OpenLDAP, Samba

-- 
OpenGroupware.org Discussion [email protected]
http://mail.opengroupware.org/mailman/listinfo/discuss