1 Reply Latest reply on Mar 27, 2007 10:23 PM by dslevine

    Question About Launching a Workflow from Within Another Work

    buggz

      Hello all. I'm new to jBPM and I have searched the forums for an answer to this question. I saw a similar issue in http://www.jboss.com/index.html?module=bb&op=viewtopic&t=78536, but it did not seem to completely answer my question...

      We have an initial process definition from which a number of additional workflows may execute. Specifically, we are developing a Service Request workflow. The initial request entails reviewing the request for the request type (password change, new software requirement, etc.), and then spawning the necessary secondary workflow depending on the request type.

      My question: We are trying to determine if each of these additional workflows should be considered sub-processes, or brand new workflows. I am concerned that if we consider them sub-processes, the main process instance will not end until the entire sub-process has completed. Therefore, instead we'd really like to spawn the secondary request workflow and then immediately end the initial workflow. Is this an advisable way to perform this task?

      Here is my rudimentary processdefinition.xml:

      <process-definition name="srq">
      
       <!-- SWIMLANES -->
       <swimlane name="analyst">
       <assignment class="org.jbpm.delegation.assignment.ActorAssignmentHandler" config-type="field">
       <type>role</type>
       <name>Analyst</name>
       </assignment>
       </swimlane>
       <swimlane name="requestor">
       <assignment class="org.jbpm.delegation.assignment.ActorAssignmentHandler" config-type="field">
       <type>role</type>
       <name>Requestor</name>
       </assignment>
       </swimlane>
      
       <!-- START-STATE -->
       <start-state name="incoming request">
       <transition to="review request"/>
       </start-state>
      
       <!-- NODES -->
       <task-node name="review request">
       <task name="review" description="#{review.description}">
       <assignment actor-id="#{actor.id}"/>
       </task>
       <transition name="" to="process1"></transition>
       <transition name="cancel" to="done"></transition>
       <transition name="reject" to="done"></transition>
       </task-node>
      
       <end-state name="done"/>
      
       <process-state name="process1">
       </process-state>
      
      </process-definition>
      


      Thanks very much in advance for your help.