I recently figured out how to reassign swimlanes for a processInstance and 
thought an example might help others

Note: the assignments are currently hardcoded but a more production capable 
version of this Action could be designed that retrieves a processInstance 
varaible, possibly a hashMap and iterates over the key value pairs assigning 
the value to swimlane (key).

Any thoughts on the code?  I had to do the Session.save(swimlane) in order to 
get it to work.  Anyone see any problems with this?



  | 
  | package test;
  | 
  | import org.hibernate.Session;
  | import org.jbpm.JbpmConfiguration;
  | import org.jbpm.JbpmContext;
  | import org.jbpm.graph.def.ActionHandler;
  | import org.jbpm.graph.exe.ExecutionContext;
  | import org.jbpm.taskmgmt.def.Swimlane;
  | import org.jbpm.taskmgmt.exe.SwimlaneInstance;
  | 
  | public class SwimlaneReassignmentAction implements ActionHandler {
  | 
  |     public void execute(ExecutionContext executionContext) throws Exception 
{
  |             
  |             
  |             Session hibSession = 
executionContext.getJbpmContext().getSession();
  |             
  |             executionContext.getContextInstance().getProcessInstance()
  |                             
.getTaskMgmtInstance().getSwimlaneInstance("buyer").setActorId(
  |                                             "test8");
  |             executionContext.getContextInstance().getProcessInstance()
  |                             
.getTaskMgmtInstance().getSwimlaneInstance("salesman")
  |                             .setActorId("test7");
  |             try {
  |                     
executionContext.getContextInstance().getProcessInstance()
  |                                     
.getTaskMgmtInstance().getSwimlaneInstance("accountant")
  |                                     .setActorId("test6");
  |             } catch (Exception e) {
  |                     Swimlane sl = new Swimlane("accountant");
  |                     hibSession.save(sl);
  |                     SwimlaneInstance sli = new SwimlaneInstance(sl);
  |                     sli.setActorId("test6");
  |                     hibSession.save(sli);
  |                     
  |                     
executionContext.getContextInstance().getProcessInstance()
  |                                     
.getTaskMgmtInstance().addSwimlaneInstance(sli);
  |                     
  |                     
  |             }
  | 
  |             try {
  | 
  |                     
executionContext.getContextInstance().getProcessInstance()
  |                                     
.getTaskMgmtInstance().getSwimlaneInstance("shipper")
  |                                     .setActorId("test5");
  | 
  |             } catch (Exception e) {
  | 
  |                     Swimlane sl = new Swimlane("shipper");
  |                     hibSession.save(sl);
  |                     SwimlaneInstance sli = new SwimlaneInstance(sl);
  |                     sli.setActorId("test5");
  |                     hibSession.save(sli);
  |                     
  |                     
executionContext.getContextInstance().getProcessInstance()
  |                                     
.getTaskMgmtInstance().addSwimlaneInstance(sli);
  |             }
  |             
  |             
  |             // propogate the token through the transition on this node
  |             
  |             
  |             
  |             executionContext.getNode().leave(executionContext, "evaluate 
web order");
  |             
  |     
  |             
  | 
  |     }
  | 
  | }
  | 

View the original post : 
http://www.jboss.com/index.html?module=bb&op=viewtopic&p=3970338#3970338

Reply to the post : 
http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=3970338
_______________________________________________
jboss-user mailing list
jboss-user@lists.jboss.org
https://lists.jboss.org/mailman/listinfo/jboss-user

Reply via email to