7

Let's say you are building a Python-based web app that requires some workflow management such as that in jBPM or Windows Workflow Foundation. Is there a library that offers this in the Python world?

tshepang
  • 12,111
  • 21
  • 91
  • 136
alphadogg
  • 12,762
  • 9
  • 54
  • 88
  • Per Lennart's suggestion below I will expand the above. The system will consist of multiple clients interacting with a middle layer, that, in part, must have a workflow subsystem of some sort. The workflow subsystem exists to create an "embedded BPM" that can flexibly manage the changing processing requirements. The first upper layer "client" will likely be a web client that involves CherryPy and AJAX on the browser. The backend will likely be PostGRES. This is somewhat mutable. What other info can I add? – alphadogg Sep 29 '09 at 18:18
  • To add, I say "first client" because there will eventually be more, and they won't necessarily be web-based, so something too tied into Zope or some other framework won't work. It has to be able to stand alone. – alphadogg Sep 29 '09 at 18:20
  • 1
    The workflow system should clearly be in the middle layer, not the clients. The clients then need to ask the middle layer about what workflow transactions is available based on the item and security. If you want to store things in postgres I'd recommend you use sqlalchemy, and then SpiffWorkflow may work, but I haven't used it and don't know if it's any good. Search for workflow on PyPI, but be aware most products there are for Plone. :) – Lennart Regebro Oct 01 '09 at 07:18
  • Agreed. Maybe I wasn't clear, but the workflow engine would be in the middle layer. Thanks for your help. – alphadogg Oct 01 '09 at 20:07
  • 1
    Here is the very similar question, but django specific - http://stackoverflow.com/questions/6795328/workflow-frameworks-for-django/25717038#25717038 – kmmbvnr Sep 08 '14 at 03:46

2 Answers2

3

Oh yes, tons. But most of them depend on a specific framework. DCWorkflow is integrated with Zopes CMF, for example. hurry.workflow is for Zope 3, etc. SpiffWorkflow presumes sql-alchemy, etc. This is because you need to have something to apply the workflow to, and that means you need to make some basic assumptions on the objects you use.

Hurry.workflow is probably one of the more independent ones, but it still assumes both that you use the Persistence library (and therefore in practice ZODB), and zope3's security model.

So you probably need to expand a bit on your requirements here...

Lennart Regebro
  • 167,292
  • 41
  • 224
  • 251
  • 2
    SpiffWorkflow seem **not** to presume sql-alchemy, or at least, I'm not finding any reference pointing in that direction. It might be something that has changed since this post... A quick search in the mailing list seems to indicate the [current persistency mechamism uses pickle](http://groups.google.com/group/spiff-devel/browse_frm/thread/448348770062f96). – Filipe Correia Dec 26 '11 at 14:05
  • 1
    It used to require SQLAlchemy, yes. Pickling only is just as limiting. – Lennart Regebro Dec 26 '11 at 20:06
1

Have you looked at this? http://code.djangoproject.com/wiki/GoFlow

ZebZiggle
  • 678
  • 2
  • 9
  • 11