External forms at Flowable

Hello,
I’m implementing a spring boot application that will use some external form system because form engine is not supported anymore at 7.0.1 version.
I use the formkey attribute to set some custom key and then I call org.flowable.engine.FormService:
formService.getTaskFormKey(processDefinitionId, taskId);

and I get the following error:
Cannot invoke “org.flowable.engine.impl.form.DefaultFormHandler.getFormKey()” because “formHandler” is null

Any ideas? Should I configure somehow a custom FormHandler? Or should I create my own form service which maybe implements the flowable’s form engine?

Hey @desp.kaz,

I would suggest implementing the Flowable Form engine and / or to review what exactly you need. I don’t think that you need to use the org.flowable.engine.FormService. The org.flowable.task.api.Task has getFormKey. Keep in mind that you will only need to implement the form engine if you would like to use things such as TaskService#completeTaskWithForm or ProcessInstanceBuilder#startFormVariables

Cheers,
Filip

Thanks a lot for your response!
I would like to store my forms, fill them and store the data so that’s why I’ve decided to have an external service at least for saving the form definitions because form engine of flowable isn’t present at latest version.
I was thinking to use the FormService because it has methods such as submitTaskFormData but I guess that I can save those data as process variables. If I understood correctly, when you use embedded forms by using flowable:formProperty and you use submitTaskFormData the data are saved as process variables also, isn’t that correct?
I didn’t quite understand what do you mean by

Keep in mind that you will only need to implement the form engine if you would like to use things such as TaskService#completeTaskWithForm or ProcessInstanceBuilder#startFormVariables

The flowable:formProperty was something for the old Task application that had its own embedded form engine.

The way that we are using this is by using the methods I’ve mentioned. If you look at the CompleteTaskWithForm you’ll see that we are calling org.flowable.form.api.FormService#getVariablesFromFormSubmission to parse the submitted variables to something that should be stored as process variables.