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?
https://github.com/SirRufo/stateless
ReplyDeletegithub.com - SirRufo/stateless
https://github.com/malcolmgroves/TStateMachine
ReplyDeletegithub.com - malcolmgroves/TStateMachine
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.
ReplyDeletehttp://melander.dk/delphi/statemachine/
ReplyDeletemelander.dk - TStateMachine for Delphi | MelanderBlog
Currently, at this time, I'm finishing the development of my own Workflow Management tool for Financial documentation.
ReplyDeleteI 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?
FWIW, I believe SirRufo/stateless needs at least XE7, which introduces array operators (which is a very very nice language addition).
ReplyDelete/sub
ReplyDelete/sub
ReplyDelete/sub
ReplyDelete