Check three condition in flow


#1

Hi
I created two form in a userTask . one of forms types is enum and the other form types is boolean .
in enum form i have two variable .
i want to have two option with these conditions :

${booleanForm== true && enumForm==‘Val_a’ || enumForm==‘Val_b’}

${booleanForm== false && enumForm==‘Val_a’ || enumForm==‘Val_b’}

but seems it’s not ok .

what can i do ??


#2

Hi @rezza72,

what do you want to achive?

bf == true and (ef == A or ef == B)

or

(bf == true and ef == A) or ef == B ?

The second expression is your proposal.

A Junit test with your process will give you the fastest feedback.

Hope this helps, Ingo


#3

Hi @Ingo_Richtsmeier
i used bf == true and (ef == A or ef == B)
and i tested in camunda engine and every thing was ok .
but in Junit test , i faced with this error in console :

org.camunda.bpm.engine.ProcessEngineException: ENGINE-02004 No outgoing sequence flow for the element with id ‘xgwIsSubjectToClauseT’ could be selected for continuing the process.

“xgwIsSubjectToClauseT” is an exclusive gateWay and the exactly gateWay that checks bf == true and (ef == A or ef == B) conditions .


#4

Hi @rezza72,

the message tells you, that non of the conditions of the outgoing sequence flows is matched.

If it works in a JUnit test, then you can use the test code as a specification for the form implementation.

At the end it may be typo in the variable names…

Hope this helps, Ingo


#5

My mistake was i used this :

complete(task(processInstance),
					withVariables("ef ", " 'a' ", "bf", "true"));

in unit test .
actually , i added extra quotation around the “a” .
i changed the code to :

complete(task(processInstance),
					withVariables("ef ", "a", "bf", "true"));

and problem , solved .