yawlfoundation / yawl

Yet Another Workflow Language
http://www.yawlfoundation.org
GNU Lesser General Public License v3.0
88 stars 35 forks source link

connecting to a yawl server from a non yawl client #645

Open velociwabbit opened 8 months ago

velociwabbit commented 8 months ago

have a customer that likes the yawl server but not keen on the UI

I have volunteered to rewrite the UI as a react full stack app but before I get permission from the client i need to confirm that this is

1 - possible 2 - doable within a json/node environment (in other words the client need not be a java app) 3 - documented such that any conversions from json to XML are manageable.

If someone could respond to this asap i would be very appreciative.

malcolm-pro commented 8 months ago

I had to do a similar project a few years ago. The YAWL manual describes how the system is divided into "interfaces". I found that I needed to dig through the source for these interfaces to find the actual endpoints, but pretty much everything is accessible via GET/POST if you know what you're looking for (ie here for InterfaceB).

YAWL can be loaded as a library alongside stock Tomcat 7, and the different servlets are configurable via standard Tomcat syntax (see an example here). This means that you can run YAWL as a standard RESTful service with whatever UI you choose (we don't even have a UI, it's just used for background workflow processing in our system). The API endpoints are just standard POST form requests (query params, not multipart iirc).

Hth!

velociwabbit commented 8 months ago

Thanks malcom,

I have to bet my reputation on this engine. Other than being a bit subtle in its use as a server have you had any other issues?

It seems to me that really clever people wrote this but did not have the front end expertise to turn it into a full stack web app

malcolm-pro commented 8 months ago

I have found it to be quite stable at low traffic volume (~1 workitem/core/second). The codebase is quite mature. There is a learning curve, so I would recommend that you take some time to setup a toy project and see if it works for you. Also, the workflow/case/workitem/checkout concepts can take some time to become familiar with (although I have no past BPM software experience, so ymmv).