ProcessEngineException with DMN & Gateway

Hi,
I got a problem with DMN and a Gateway.

Error-Message:
raise Exception(get_response_error_message(response.status_code, resp_json))
Exception: received 500 : ProcessEngineException : Error while evaluating expression: ${!check}. Cause: Cannot coerce from class java.util.ArrayList to class java.lang.Boolean

So the problem should be the wrong data type?

This is my bpmn process:

I have the following expressions for the flows after the gateway:
Ja = ${check}
Nein = ${!check}

And my dmn table looks like this:

I tried to follow the get started tutorial: Leverage business rules (6/6) | docs.camunda.org

Thanks for help!

Hi @svenr ,

What are your property panels setting for the dmn task? It looks like that your result is stored in an array list. That is why the expression fails. Make sure that you define the result variable and map the decision result to a singleEntry. Like this you store the result in a variable, which you can then access in your expression
Screenshot from 2021-04-07 17-27-07

I hope that helps
Nele

Hi Nele,
these are my settings for the dmn task:
image

I think they are correct?

Yes they are. Could you upload your dmn table and your model? I can then try to reproduce the error. At the moment I don’t know what is causing it.

1 Like

Sure,
I hope I did it right.

BPMN:
cta_dqm_bmpn.bpmn (10.6 KB)

DMN:
dqm-check.dmn (1.9 KB)

Hey @svenr,

Everything looks fine, I deployed both models, delete the external task and hand in the variables for the DMN table at the start event and it works on my machine…

Maybe it comes from your external task? How are you sending the variables? Can you share the code of your external task ? It looks like that Python code throws (or raise) an exception.

Kind regards
Nele

1 Like

Hi,
could be the external task worker.

My last code is:
return task.complete({“Projektbezeichnung”: str(project_name), “Double Checking”: bool(dc),
“Website-Anzahl”: int(n_of_urls), “Keyword-Anzahl”: int(n_of_kws_sw)})

Or do you need the whole script? :slight_smile:

Edit:
I tried to return task.complete() without a variable and only one, but the same error occurs.

Hi @svenr,

Are you sure that the two defined rules in your decision table cover your test case?

For example:
The combination (“Website-Anzahl” = 99 and “Keyword-Anzahl” = 11) is not covered by any of the defined rules

1 Like

Hi,
I had only one test case.
It was the combination (“Website-Anzahl” = 3 and “Keyword-Anzahl” = 3), so this shouldn’t be the problem?
Or do I have to cover each case directly in the DMN table? At first I only took the two to test the process in a simplified manner.

Hi @svenr,

Then that should be okay.

Try to put a user task before the business rules task and another one after it so you can trace the values of input variables and output variable from the cockpit app or even from tasklist app by clicking on load variables button of the generic task form.

2 Likes

Yes I think that is good idea to understand in which data format your variables arrive from the external task. And if you need help with the Python code, it would be good if you share the whole code.

1 Like

Hi,
I wanted to try that out but I get the error directly when I start my external task worker (python).

Error Message from Camunda Engine:

Python-Skript (External Task Worker):
external-task-python.pdf (71.6 KB)

Couldn’t upload .py so sorry for the pdf format.

Hi @svenr,

Have you added user tasks to your model?
Could you please upload your updated model…

1 Like

Sure.

cta_dqm_bmpn.bpmn (11.8 KB)

This is really wired… It works on my machine. I did not use the full logic from your worker as I don’t have the files to scan for.

But the worker completes with the variables and give it back to the engine and then I can run the DMN table without any problems…

1 Like

Okay,
I will try a reinstall. Maybe I accidentally changed something somewhere or made a mistake :smile:

Let us know if it works…

Seems to work now!

But I got another problem.

When it comes to the user task / tasklist, I get an endless loading screen, so it is not possible to complete the task.

I already tried another browser.

Edit:
I get the following error:

I don’t know why the engine is looking for “Keyword”, “Website” & “Double”. Can’t Feel handle spaces and “-”? Because my variable names are the following:

My user task form looks like this:
image

Hi @svenr,

Below post may be of help to you

2 Likes

It works! Thanks!