读书人

JBPM4工作流施用(二)

发布时间: 2012-07-08 17:43:43 作者: rapoo

JBPM4工作流应用(二)

?5.task人工任务活动
?? 1)、使用task活动的assignee属性进行任务分配

?JBPM4工作流施用(二)

?

?

? ?Assignee属性默认会被作为EL表达式来执行,任务被分配给#{order.owner}。

??

?

?? 部分事例代码如下:

?

?

?? AssignTask类必须实现AssignmentHandler类,代码如下:

??

?

?? 泳道中的用户组中的用户在接受任务后成为任务的分配者,同时泳道也会发生变化,接收任务者在流程实例中会被固化为分配者。

?

??? 子流程SubProcessReview定义JPDL:

?? 流程变量是父子流程用来沟通的纽带。父流程在子流程启动时将自己的“父流程变量”输入子流程,
???反之,子流程在结束时可以将自己的“子流程变量”返回父流程,从而实现父子流程间的数据交换。
??? 部分事例代码如下:

?

?

?? 子流程SubProcessReview定义:

JBPM4工作流施用(二)

?

?? 部分事例代码如下:

?

?? 子流程SubProcessReview定义:

?

??? 部分事例代码如下:

?

?

7.自定义活动
?? 如果有特殊而复杂的业务需求,与其生套JBPM本身提供的流转控制活动,不如自己实现一个自定义的活动使用。
Jpdl定义:

?

?

?自定义活动的类需实现ExternalActivityBehaviour接口

?

?JohnDoe事例代码如下:

Map<String, Object> variables = new HashMap<String, Object>();    variables.put("hand", new Hand());    variables.put("joesmoe", new JoeSmoe());        ProcessInstance processInstance = executionService.startProcessInstanceByKey("Java", variables);    String pid = processInstance.getId();        // 获取流程变量answer    String answer = (String) executionService.getVariable(pid, "answer");    assertEquals("I'm fine, thank you.", answer);    // 获取流程变量hand    Hand hand = (Hand) executionService.getVariable(pid, "hand");assertTrue(hand.isShaken());

??

读书人网 >软件架构设计

热点推荐