-
Bug
-
Resolution: Done
-
Critical
-
6.0.3
-
All All
Description of problem:
- If we design a BPMN2 process from scratch in Eclipse Tooling plug-in, it does not generate the "Assignment" in "dataInputAssociation" for "Skippable" property for a "User Task" by default. So, when we try to write a simple code to read the "Skippable" property for a User Task designed in such a fashion it reads it to "true" , although in the designer we can see the check-box against "Skippable" property is still unchecked. The same issue is also observed if we generate a BPMN2 process in jBPM Web Designer too. Hence, I am not sure if the issue is really in the designers or the jBPM code.
- The workaround is to first check the "Skippable" property and then again uncheck it. This generates the necessary assignments and the code returns the correct value as expected.
- Also, the issue does not appear if I use jBPM 6.1.0.Final version of jars.
- Note I have used BPMS 6.0.3 for the jBPM Web Designer and the installed BPMN2 Diagram Editor version in JBDS 7.1.1 which I have used is (BPMN2 Modeler - Diagram Editor / 1.0.2.201402102317 / org.eclipse.bpmn2.modeler.feature.feature.group / Eclipse.org)
- Here is a comparison of the process definitions generated in both the designers, and how the source of the processes change after playing with the "Skippable" check-box a little.
BPMN2 Diagram Editor
=======================
Before workaround:
~~~
<bpmn2:ioSpecification id="_InputOutputSpecification_3">
...
<bpmn2:dataInput id="_DataInput_13" itemSubjectRef="ItemDefinition_3" name="Skippable"/>
...
<bpmn2:inputSet id="_InputSet_5" name="New Input Set">
...
<bpmn2:dataInputRefs>_DataInput_13</bpmn2:dataInputRefs>
...
</bpmn2:inputSet>
...
<bpmn2:dataInputAssociation id="_DataInputAssociation_13">
<bpmn2:targetRef>_DataInput_13</bpmn2:targetRef>
</bpmn2:dataInputAssociation>
...
~~~
Change after workaround:
~~~
...
<bpmn2:dataInputAssociation id="_DataInputAssociation_13">
<bpmn2:targetRef>_DataInput_13</bpmn2:targetRef>
<bpmn2:assignment id="Assignment_5">
<bpmn2:from xsi:type="bpmn2:tFormalExpression" id="FormalExpression_10">false</bpmn2:from>
<bpmn2:to xsi:type="bpmn2:tFormalExpression" id="FormalExpression_9">_DataInput_13</bpmn2:to>
</bpmn2:assignment>
</bpmn2:dataInputAssociation>
...
~~~
jBPM Web Designer
=======================
Before workaround:
~~~
...
<bpmn2:ioSpecification id="_-pZVAHWkEeSUG-GZzG41KQ">
<bpmn2:dataInput id="_979E19DE-261A-4099-8B53-D254A1E7EFBE_TaskNameInputX" name="TaskName"/>
<bpmn2:inputSet id="_-pZVAXWkEeSUG-GZzG41KQ"/>
<bpmn2:outputSet id="_-pZVAnWkEeSUG-GZzG41KQ"/>
</bpmn2:ioSpecification>
<bpmn2:dataInputAssociation id="_-pZVA3WkEeSUG-GZzG41KQ">
<bpmn2:targetRef>_979E19DE-261A-4099-8B53-D254A1E7EFBE_TaskNameInputX</bpmn2:targetRef>
<bpmn2:assignment id="_-pZVBHWkEeSUG-GZzG41KQ">
<bpmn2:from xsi:type="bpmn2:tFormalExpression" id="_-pZ8EHWkEeSUG-GZzG41KQ">UserOne</bpmn2:from>
<bpmn2:to xsi:type="bpmn2:tFormalExpression" id="_-pZ8EXWkEeSUG-GZzG41KQ">_979E19DE-261A-4099-8B53-D254A1E7EFBE_TaskNameInputX</bpmn2:to>
</bpmn2:assignment>
</bpmn2:dataInputAssociation>
...
~~~
Change after workaround:
~~~
...
<bpmn2:ioSpecification id="_-pZVAHWkEeSUG-GZzG41KQ">
<bpmn2:dataInput id="_979E19DE-261A-4099-8B53-D254A1E7EFBE_TaskNameInputX" name="TaskName"/>
<bpmn2:dataInput id="DataInput_10" name="Skippable"/>
<bpmn2:inputSet id="_-pZVAXWkEeSUG-GZzG41KQ">
<bpmn2:dataInputRefs>DataInput_10</bpmn2:dataInputRefs>
</bpmn2:inputSet>
<bpmn2:outputSet id="_-pZVAnWkEeSUG-GZzG41KQ"/>
</bpmn2:ioSpecification>
<bpmn2:dataInputAssociation id="_-pZVA3WkEeSUG-GZzG41KQ">
<bpmn2:targetRef>_979E19DE-261A-4099-8B53-D254A1E7EFBE_TaskNameInputX</bpmn2:targetRef>
<bpmn2:assignment id="_-pZVBHWkEeSUG-GZzG41KQ">
<bpmn2:from xsi:type="bpmn2:tFormalExpression" id="_-pZ8EHWkEeSUG-GZzG41KQ">UserOne</bpmn2:from>
<bpmn2:to xsi:type="bpmn2:tFormalExpression" id="_-pZ8EXWkEeSUG-GZzG41KQ">_979E19DE-261A-4099-8B53-D254A1E7EFBE_TaskNameInputX</bpmn2:to>
</bpmn2:assignment>
</bpmn2:dataInputAssociation>
<bpmn2:dataInputAssociation id="DataInputAssociation_10">
<bpmn2:targetRef>DataInput_10</bpmn2:targetRef>
<bpmn2:assignment id="Assignment_10">
<bpmn2:from xsi:type="bpmn2:tFormalExpression" id="FormalExpression_20">false</bpmn2:from>
<bpmn2:to xsi:type="bpmn2:tFormalExpression" id="FormalExpression_19">DataInput_10</bpmn2:to>
</bpmn2:assignment>
</bpmn2:dataInputAssociation>
...
~~~
Version-Release number of selected component (if applicable):
- BPMS 6.0.3
- JBDS 7.1.1
- BPMN2 Modeler - Diagram Editor (Version: 1.0.2.201402102317)
How reproducible:
- Always
Steps to Reproduce:
1. Import the attached project "jBPM6TaskSkippableTest.zip" into Eclipse/JBDS
2. Try to run the "SkippableTaskTestClass" class with commenting and uncommenting the following lines to test an Eclipse designer generated and a jBPM Web Designer generated process individually.
~~~
//Testing a process created through Eclipse Designer
//ksession.startProcess("com.sample.bpmn.NonSkippable");
//Testing a process created through jBPM Web Designer
ksession.startProcess("TestProject.TestDefaultSkippable");
~~~
3. If required created a fresh BPMN2 process once using BPMN2 Diagram Editor in JBDS 7.1.1 and again in jBPM Web designer, where the process must have a User Task associated with it. Do not touch the "Skippable" property by any means and then try to execute the process and access the skippable property using this API
~~~
TaskSummary.isSkippable()
~~~
4. Please make sure to use "6.0.3-redhat-6" as jBPM version in the pom.xml so that we test it on Enterprise bits.
Actual results:
- The test results would print the value for "Skippable" property as "true" whereas the check-box in the designer for this property was unchecked.
Expected results:
- Ideally it should return "false" since the designer shows this property as unchecked.
Additional info:
- NA