Workflows / State Engines – Any existing libraries out there?

Workflows / State Engines – Any existing libraries out there?

When you have a complex UI or complex data processing with parameterisations that defines what should be allowed, what should happen next, etc – it is necessary to have a workflow / state engine.

I am wonder if there is any prior art – apart from the TMS product (which is way too complex for our need). I don’t need a visual designer – just classes that can be used to build a workflow?

9 thoughts on “Workflows / State Engines – Any existing libraries out there?

  1. Uwe Raabe thank you for pointing to SirRufo/stateless. Anyway, under Delphi XE3, if you try to compile wathever example found in the examples folder Delphi throws an error [dcc32 Error] Stateless.Utils.pas(299): E2010 Incompatible types: ‘System.TArray’ and ‘Set’. Maybe it needs a more recent Delphi version.

  2. Currently, at this time, I’m finishing the development of my own Workflow Management tool for Financial documentation.

    I think this is a very simple, but complete solution, but… I going to see the proposals that people make here.

    I have a little requirement definition:

    – A Workflow is a list of ordered states that a document can take.

    – Each document can have as many states as needed. All of them previously contained in a Table of States.

    – The transitions between states are defined as a sublist of states related to each state in the workflow of the document.

    – Is responsability of the user that design the workflow, assure that each transition have a return transition or a continuity.

    – The system, must hold some special states, that defines things like:

    -In which state must be a document, to allow the user make certain operation?

    -After this operation, which state take the document?

    – An auxiliar functionality is, a table that relates each document, with each state, and each user of the application, and describes the constraints of each user with this document in this state, solving questions like: The user can edit?, can delete?, can clone?, can change the state?, etc.

    – It is not mandatory that the design of the workflow was in a graphic environment, but is desirable.

    – The final user, the user that manages the documents, must have a graphic representacion of the workflow, that help to understand it.

    (For this, I like the solution of representation proposed in Atlassian web).

    I’m solving all this cases with a structure of 6 tables.

    I think it’s complex, but is complete. 😉 Or not?