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?

Comments

  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.

    ReplyDelete
  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?

    ReplyDelete
  3. FWIW, I believe SirRufo/stateless needs at least XE7, which introduces array operators (which is a very very nice language addition).

    ReplyDelete

Post a Comment