OpenWFE can do webflow. It’s very helpful for building web wizards, asking successive questions back and forth (think about your Amazon cart, guiding you from delivery address to payment mode choices).
Webflow (and its embedded OpenWFE engine) could be used within (as, let’s say, an activity handler) a regular OpenWFE process enactment, but that gets us a bit higher in the architecture of a fictitious solution…
The example webflow would translate to :
<loop> <participant ref="pages/shop.jsp" /> <participant ref="pages/delivery-address.jsp" /> <participant ref="pages/payment-mode.jsp" /> <participant ref="pages/confirm.jsp" /> <participant ref="co.acme.shop.SendConfirmationEmail" /> </loop>
That’s a first draft, I use a loop because I want the ‘user’ to get back to the store after the confirmation email got sent. The <loop>, since OpenWFE 1.6.2 is in fact a <cursor> and you can get back in it (by setting the field __cursor_commmand__ to the value ‘back’).
Of course, it’s not a very good idea to use <concurrence> within a webflow, as your browser shows you only one webpage at a time (no, you can’t use webflow to display boring ‘concurrent’ popups).
There are other frameworks available to do such things, and they are certainly more capable than OpenWFE at this task. But if you’re an OpenWFE fervent and you want to unleash all of OpenWFE power also for your webapplications, you should give it a try (and give some feedback to see it enhanced, iteration after iteration).
The webflow was implemented as the first application of an embedded OpenWFE engine, it’s a kind of ‘proof of concept’. I might one day completely base a new webclient on it (and thus remove any dependency on Struts).