If this does become of interest to anyone, I had a quick look at the workflow landscape in Pharo and found it rather unfathomable - Netsyle seems very comprehensive but complicated and lacking syntactic sugar to make it easy to just pick up and run with. Itâs reified up the hilt, so simple stuff seems to need lots of code, which the examples emphasise. NewWave has a great readme.md, so quickly got some initial concepts but itâs very work in progress and key base classes have no documentation so itâs not easy to understand what does what for more detailed things (Sebastijan did respond quickly to some questions, so hope to see it continue to improve). It looked promising but it seems to want to âown the flowâ and run everything, so my Teapot endpoints couldnât easily get the next workflow from the engine - the engine wanted to push things to me (I messed with a semaphore to try and sync things, but decided itâs ethos was just different - I think the netstyle engine would let me pull, but didnât get that far with it). There was a gemstone workflow engine - itâs not ported, it looked interesting but used a Windows bpml tool and again wasnât sure if it wanted to own the world, and porting it would be more than I wanted to do. After an hour, I went with my own domain model and some condition blocks to just get something going. Teapot and NeoJsonWriter really let you prototype quickly! Had something in 15 mins to let me mull over the problem. Tim Sent from my iPhone
On 26 Sep 2019, at 09:12, Tim Mackinnon <tim@testit.works> wrote:
Hi everyone, in my day job I encountered an interesting domain problem that a previous java team has made a bit of a hash of ...
I thought it might be interesting to model it in Pharo to help explain it better to a new team and I was interested in community thoughts as we have some of the best thinkers on tap.
The scenario is that a user is presented with several input fields to apply for a loan , one of them is Amount and another the type of loan (cash, invoice, machinery etc).
Depending on these answers, they are next presented with different questions - if the amount > 100k there are some high value questions, if the loan type is machinery there are some more additional questions on the type of machine etc. This progresses to a third form and potentially a 4th and 5th.
So itâs effectively a decision tree, that rules out different loan types.
The UI is a React web form, and Iâve suggested to the team to do some experiments with a dynamic UI that interprets a Json payload that describes the questions, so itâs really about how to model the questions and then render them out in this Json format.
I was wondering if this was a typical workflow problem (and whether the netstyle engine was appropriate or wasnât there some other ones announced recently too?)
Iâve never used a workflow engine - But it sounds a bit like the problem above? Or not?
Alternatively, I was thinking I could model groups of questions into a Decision, and then have a DecisionJourney of Decisions. Each decision could have some match and dependency criteria - e.g. some sort of matcher block eg [:d | d amount > 100 & d type = #machinery] and then some method to add questions to a DecisionForm on a match which would then render the Json payload.
But I wondered if workflow engines just do this, and they might handle extra stuff for free.
Anyone have any thoughts or directions to explore?
Tim
Sent from my iPhone