3 Replies Latest reply: Oct 3, 2011 5:44 PM by Ryan Peterson RSS

Event to skip to a different node in the Process?

Ryan Peterson Newbie

Hi guys,

 

I've got a process/process instance with several nodes, something like:
start -> sendEmail -> 3-day timer -> send 2nd email -> 3-day timer -> send final email -> wait 3 days -> end

 

If the user opens the email and clicks a link, I'd like to send an event to JBPM to move them into a 2nd process (or branch of this process).  The click could happen at any time/node within the process after the first sendEmail node.  Is it possible for an event to enact this type of behavior?

 

 

Thanks in advance for any suggestions!

  • 1. Re: Event to skip to a different node in the Process?
    bob flip Newbie

    Hi Ryan,

     

    You can create a HumanTask like a parallel branch for each timer. Then  user will complete the HumanTask, and process will moved to next node immediately.

     

    Rgds,

    Bob 

  • 2. Re: Event to skip to a different node in the Process?
    Ryan Peterson Newbie

    Thanks Bob, that does seem to make the most sense.  So in the previous example:

     

    start -> [sendEmail] -> [3-day timer] -> [send 2nd email] -> [3-day timer] -> [send final email] -> [3-day timer] -> end

                                         |event|                                           |event|                                             |event|

                                                                                     [newServiceTask] -> [x-day timer] -> [etc..]

     

    Anytime the event gets triggered while in the timer states, they would know to proceed through to [newServiceTask] rather than continuing on the previous node path. 

     

    I'll give this a shot & report back, thanks!

  • 3. Re: Event to skip to a different node in the Process?
    Ryan Peterson Newbie

    I wound up using a diverging eventBasedGateway.

     

    Two nodes extend from the eventBasedGateway, the first is a timer, the second is an event.  Whichever occurs first invalidates the other path, and execution continues from that node onwards.