Operaton/C7 currently supports different approaches to add data input to elements in a BPMN Diagram:
- Generated Forms
- Embedded or External Task Forms
- Camunda Forms
The current implementation of the embedded forms supports AngularJS bindings for some additonal features.
Those can’t be migrated to the new web apps as we moved away from AngularJS.
Current state
We now can ask ourself, if we want to support all three previous form options or introduce some breaking changes.
Camunda forms seems to be the next iteration of the generated forms, offering all necessary field types and configuration options. It offers a clear JSON data structure which would be quite easy to parse in the new front-end.
The embedded or external task forms provide mostly ready to use HTML. The examples HTML forms are quite outdated and e.g. miss the submit button, which needs to be injected when displaying it. Blindly adding HTML (and JS) to the view in an SPA isn’t recommendend though. Also it has more room for errors as it can’t be validated while creating the form.
What to keep and where to focus
Now we need to decide if we want to support all three options, focus on the most promising one or introduce a fourth option (like JSON Forms
Personally, I would encourage to go all in on a JSON standard for defining forms for the aforementioned reasons. If users want to stick to embedded forms they could do so by implementing it in their custom front-end apps (which they probably do) and we make clear that the Web Apps 2.0 provides support Camunda Forms (or later Operaton Forms, if/when we fork the modeler).
What do you think?
Side Effect
To keep the promise of no breaking changes this forces us to have the official release of the web apps with Operaton 2.x+ (additionally we can’t support the old addons for the web apps, which would be another breaking change). I would still like to introduce the new web apps as a feature preview in the 1.x release.