Hi all,
I have a case where linked forms are not always displayed in there latest version:
My process has user tasks which have linked forms (not embedded!).
- If I update the forms and deploy them then new process instances will use the version of the form.
![:white_check_mark: :white_check_mark:](https://forum.camunda.io/images/emoji/twitter/white_check_mark.png?v=12)
- Existing process instances will also use the new version of the form if a new user task is created.
![:white_check_mark: :white_check_mark:](https://forum.camunda.io/images/emoji/twitter/white_check_mark.png?v=12)
- However, if a user task has already been created (but not completed) then the user task will continue to show the old version of the form. Is this expected? What can I do so that the new version will also be used in this case?
![:question: :question:](https://forum.camunda.io/images/emoji/twitter/question.png?v=12)
The documentation Form Linking actually says:
DANGER
When deploying a diagram, Web Modeler will always deploy the latest version of all linked forms along with the diagram. This means that if you reference the same Form ID within multiple BPMN diagrams, all diagrams will always use the latest version of the form regardless of which version was used when the diagram was initially deployed.
The documentation says “always” but it is actually not always the case.
I tested this on SaaS with 8.5
Actually, the workaround documented on Form linking | Camunda 8 Docs works, but it is not clear that this also applies to the scenario described above. And from the documentation above I’d expect it to work out-of-the-box without migration.
Best,
Tobias
Hi @tobiasschaefer - I believe the cause is that the task is created with the previous form attached, so when a new form is deployed existing tasks aren’t being pushed the new form. (In other words, Tasklist isn’t fetching the form in real-time as you open a task, it is already there.)
There are some complexities with pushing updates to existing tasks. For instance, what if a user has started a task and entered some form data, but then paused the task to resume it later … how should the system handle pushing a new form to that task?
Would love to get your thoughts on this so I can send the feedback to the product and documentation teams!
Hi @nathan.loding ,
thanks for your answer. It helps me to understand the reasoning behind the current implementation. And I interpret your answer that this behaviour is expected.
I understand that a switch to the new version of the form might fail (or be difficult) in some cases if the user has already entered data. But how often is that the case? And at least in some cases the new form would simply work even for a paused task.
I guess I would prefer an optimistic approach and always migrate. And if the process developer doesn’t want a migration he would need to change the ID of the form.
This would then match the documentation ![:slight_smile: :slight_smile:](https://forum.camunda.io/images/emoji/twitter/slight_smile.png?v=12)
If not: at least the documentation should be updated to reflect the scenario above because this is a rather common case.
1 Like
Hello @tobiasschaefer ,
the documentation is stating that the deployed diagram uses the latest version of the form. This is not applicable to existing runtime user tasks, which are not affected by the diagram re-deployment.
This is consistent with updates made to any other User task field (such as name, assignee, candidate groups, etc.) which only takes effect on the newly created user tasks after updated diagram deployment.
Best regards,
Houssain