In our organisation we have a large amount of forms (> 350 types of forms). Many of them are still paper based. Upper management became aware of that those forms must be offered as web-based eFroms in future and that the underlying process must be reviewed and if necessary transformed into a workflow. As we prefer to have control of our own IT we frequently reach out to open source solutions and certainly Camunda (with Enterprise Support) is a candidate to act as our future workflow tool.
Considering the forms we have, I do assume that professional form builder tools could be of great help. It should be possible to pre-fill the form, SSO authentication should be supported, as well as screen flows and very simple workflows (e.g. approval workflows).
But then we do have workflows which are rather complex, where the usage of Camunda could be of great help. However, with those workflows, forms do play an important role too. And of course it would be of great benefit to utilise the form builder tool to develop forms which can be used by the Camunda workflow engine not only as external form, but as embedded ones as well.
So I was wondering if anyone of you is successfully using Camunda in collaboration with a sophisticated form builder tool/form server?
I looked at form.io but was struggling to get an understanding of how it interacts with Camunda (the example within this forum is very restricted). I would appreciate if someone could share insights on how he got Camunda and form.io to work together.
As well, I would greatly appreciate if someone from Camunda could share some experience on what form solution works best from their perspective.
Thank you @aakhmerov. Just realised that you do work for Camunda
Well, maybe I rephrase my problem. We have tons of forms that we can address with the usual of-the-shelf eForm tools (forms builder with drag&drop fields, forms repository etc). But there are cases where an eForm tool won’t do the job and were a proper workflow solution like Camunda is required. However, in a workflow we still need external task forms. But what we would like is to reuse the eForm tool to build external task forms.
We just don’t know what eForm tools worked well for other Camunda customers in the past.
@ralf what is your view on the difference between “external forms” and using eForm tools, etc ?
@ralf, The point of using a Forms manager/tool is to provide a Front-End and Back-end Validation system for forms in unity with Camunda Human Tasks. Do you plan on using Camunda Tasklist or are using the API+your own app?
Sorry for the late reply. I had to lay back and think about what we really need. For me the eForm tool allows to create very simple workflows and to quickly develop forms via a form builder and with an underlying db table (something like worldapp forms). In our organisation, business units want to create their own forms and simple workflows. As I said I believe there are enough tools out there which are easy enough to be used by business units.
But then I was wondering whether those tools could be leveraged to developed forms which can be used with camunda. This where the external tasks come in.
May I ask what the usual Camunda developer does when it comes to forms which are not embedded. How do you design forms? Do you develop a SPApplication or do you use a form builder? What sort of form builder? And how well does data in-/outbound between the forms and Camunda work?
We store all of our form data as a JSON object. Every submission of a form is a json object. Camunda routes the object to a db with json column to long term storage.
Forms (Single page and Multi-Step) are just a UI for data being sent into Camunda’s API.
A Camunda Embedded Form is just AngularJS Form submitting data into Camunda’s API.
Camunda External Forms are just the BPMN Form key pointing to a external URL and having callback url attached to the FormKey URL. The external form still needs to independently submit the data to Camunda.
The Formio tool is a great example because it provides a standards and OSS based approach to form development; you can build through a UI or just a JSON schema; and you can use the Formio Node server to preform Server Side Validations of the data before passing the data to Camunda. (Formio calls this a Dryrun).
What you are asking for is something many of us have wanted forever. It is the “holy grail” of business process automation. Simply put, we want an easy to use interface that allows us to create all the elements our process requires. This would include:
Form creation (possibly complex)
Process logic (BPMN and DMN)
External service invocation and use
Various technologies exist to sort of deal with different requirements. General purpose form creation tools, especially complex interactive forms, vary widely in function and ease-of-use because you’re basically creating web pages whose requirements span a huge range of functions. The best web page creation tools I’ve ever used were those found in Microsoft Visual Studio and I used those nearly 18 years ago. I have searched for something with similar functionality that is applicable to a more “open source” (i.e. non-Microsoft) environment and yet to find any that match the functionality I used 18 years ago.
Process logic and decisions can be managed within Camunda, though Modeler is limited in what it can support compared to the now deprecated Eclipse plugin.
Access to external services (typically web services) can be accomplished through various connectors. However, there’s still a disconnect between developing these interfaces and the forms or BPMN code. There are technologies like JBoss Fuse, Talend ESB, and others that can assist in providing these services in an easy to consume manner, but again, there would be no direct integration in to the development tooling.
My company is working on trying to integrate all these requirements, but the form piece is one that I’ve conceded will probably never fulfilled to the degree that Microsoft Visual Studio did.
I think the core of this is that this “holy grail” is difficult to achieve for a broad spectrum of use cases. Therefore we are left with using multiple tools designed for experienced programmers and performing the integration ourselves.