-
Bug
-
Resolution: Unresolved
-
Major
-
None
-
7.51.0.Final
-
False
-
False
-
NEW
-
NEW
-
Undefined
-
-
I noticed that the data object field, which is added later after the initial deployment of the project, is not correctly "bound" to the forms, despite the forms are correctly configured. Previous fields are being correctly filled in, just the newly added field is not. See the enclosed screenshot.
The second issue I noticed, which is related, is this:
I tried to debug this a little bit using a custom toString() method on the data object, so I could see the process variable history log in the UI. When doing it, I noticed that the "middle" value is not executing the updated toString() method, it uses the "old" one, which is even more confusing. See the enclosed screenshot.
So apparently after a new field is added to the data object, there are 2 issues observed:
1. The forms are updated, so the new field is visible there, but after filling the new field the values is not propagated to the process instance.
2. If I override the toString() method, it uses the old/previous implementation of it (with just one field) in the process variable log in the UI. So at some point the engine/workbench executes this method on the "old" version of the data object. I deliberately prepended the first toString() with Initial Impl string and then the second one, which also prints the second field, with Advanced Impl, so the difference is clearly seen.
For the second part I added a few script tasks before and after the human task + I added onEntry and onExit actions to the human task which called just System.out.println(kcontext.getVariable("object").toString()); and here it always used the new up-to-date toString() implementation.