2 Replies Latest reply on Oct 31, 2012 10:59 AM by vavi

    why jbpm5.3 usertask  support only one incoming connection?

      I have a process, contains approve and reject. if reject,the process should return to usertask1.

       

      if I write the process definition file using hand(without the eclipse plugin),it will throw a exception:

       

      ProcessLoadError: unable to parse xml : Exception class java.lang.IllegalArgumentException : This type of node cannot have more than one incoming connection!

       

      imo, what I said should be a common request/case.

       

      so why jbpm5.3 usertask  support only one incoming connection?

       

      Hope someone can answer my question,thx a lot.

       

       

       

      PS:the process difinition details:

       

        <itemDefinition id="_conditionWhoItem" structureRef="Object" />

       

       

        <itemDefinition id="_2-conditionWhoItem" structureRef="Object" />

       

       

        <itemDefinition id="_4-conditionWhoItem" structureRef="Object" />

       

       

        <itemDefinition id="_5-conditionWhoItem" structureRef="Object" />

       

       

        <process processType="Private" isExecutable="true" id="com.sample.bpmn" name="Sample Process" tns:packageName="defaultPackage" >

       

       

          <!-- process variables -->

          <property id="conditionWho" itemSubjectRef="_conditionWhoItem"/>

       

       

          <!-- nodes -->

          <startEvent id="_1" name="StartProcess" />

          <userTask id="_2" name="1" >

            <ioSpecification>

              <inputSet>

              </inputSet>

              <outputSet>

              </outputSet>

            </ioSpecification>

            <potentialOwner>

              <resourceAssignmentExpression>

                <formalExpression>FME</formalExpression>

              </resourceAssignmentExpression>

            </potentialOwner>

          </userTask>

          <exclusiveGateway id="_3" name="Gateway" gatewayDirection="Diverging" />

          <userTask id="_4" name="3" >

            <ioSpecification>

              <inputSet>

              </inputSet>

              <outputSet>

              </outputSet>

            </ioSpecification>

            <potentialOwner>

              <resourceAssignmentExpression>

                <formalExpression>SLE2</formalExpression>

              </resourceAssignmentExpression>

            </potentialOwner>

          </userTask>

          <userTask id="_5" name="2" >

            <ioSpecification>

              <inputSet>

              </inputSet>

              <outputSet>

              </outputSet>

            </ioSpecification>

            <potentialOwner>

              <resourceAssignmentExpression>

                <formalExpression>SLE1</formalExpression>

              </resourceAssignmentExpression>

            </potentialOwner>

          </userTask>

          <endEvent id="_6" name="End" >

              <terminateEventDefinition/>

          </endEvent>

       

       

          <!-- connections -->

          <sequenceFlow id="_5-_2" sourceRef="_5" targetRef="_2" />

         

         

          <sequenceFlow id="_1-_2" sourceRef="_1" targetRef="_2" />

          <sequenceFlow id="_2-_3" sourceRef="_2" targetRef="_3" />

          <sequenceFlow id="_3-_4" sourceRef="_3" targetRef="_4" name="SLE2" >

            <conditionExpression xsi:type="tFormalExpression" >return conditionWho == "SLE2";</conditionExpression>

          </sequenceFlow>

          <sequenceFlow id="_3-_5" sourceRef="_3" targetRef="_5" name="SLE1" >

            <conditionExpression xsi:type="tFormalExpression" >return conditionWho == "SLE1";</conditionExpression>

          </sequenceFlow>

          <sequenceFlow id="_4-_6" sourceRef="_4" targetRef="_6" />

       

       

        </process>