I created a simple BPM flow where I created a Rule task to decide the assignee/candidateGroup of the next task. I created the variable decisionResult to hold the result of the rule task but when I try to access this variable in the execution listener attached to the user task next to it, I get the following error :
This error I get in the Postman from where I initiate the process through REST API.
"message": "Cannot instantiate process definition event-subprocess-example:32:fb9e0224-c047-11ec-87c3-e02be903a6c0: ENGINE-17006 Cannot set transient variable with name decisionResult to non-transient variable and vice versa."
I am attaching the screenshot of my BPM flow and the Java code for execution listener. Please advise.
You can try the approach used in below example to map decision results to the variables (instead of using execution listener)
Thanks @hassang for recommending the alternative approach.
I saw that example before but I wanted to avoid using feel script hence I used the java way to map the variables. So is it not possible to map the variables defined in the process model to the java code variables ?
I tried the approach suggested by you but still I am getting same error. I removed the execution listener and commented the java code as well.
ENGINE-17006 Cannot set transient variable with name decisionResult to non-transient variable and vice versa."
PFB the link to my project.
I was able to resolve the earlier error by renaming the decision result variable to dmnResult from “decisionResult” as I found below tip in the official documents.
" The result variable should not have the name
decisionResult since the decision result itself is saved in a variable with this name. Otherwise an exception is thrown while saving the result variable."
But now I am facing another error :
“Caused by: javax.script.ScriptException: failed to parse expression ‘((for r in dmnResult return get value(r, “assignee”))[item != null])’:
Expected (StringIn(”<=", “>=”, “<”, “>”, “!=”, “=”) | “between” | “in” | “and” | “or” | “…”):1:53, found ")[item != "
This is the error I faced at the start and due to this I had to go via Java route as I don’t have proper understanding of FEEL script.
I am not sure, what changes I need to make to make it work.
Then I believe your first solution should work now.
This worked with Java after renaming the result variable. Thanks a lot for your time and providing guidance.