JBPM实践之并发子流程的实现Word文件下载.doc

上传人:wj 文档编号:1456104 上传时间:2023-04-30 格式:DOC 页数:7 大小:121KB
下载 相关 举报
JBPM实践之并发子流程的实现Word文件下载.doc_第1页
第1页 / 共7页
JBPM实践之并发子流程的实现Word文件下载.doc_第2页
第2页 / 共7页
JBPM实践之并发子流程的实现Word文件下载.doc_第3页
第3页 / 共7页
JBPM实践之并发子流程的实现Word文件下载.doc_第4页
第4页 / 共7页
JBPM实践之并发子流程的实现Word文件下载.doc_第5页
第5页 / 共7页
JBPM实践之并发子流程的实现Word文件下载.doc_第6页
第6页 / 共7页
JBPM实践之并发子流程的实现Word文件下载.doc_第7页
第7页 / 共7页
亲,该文档总共7页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

JBPM实践之并发子流程的实现Word文件下载.doc

《JBPM实践之并发子流程的实现Word文件下载.doc》由会员分享,可在线阅读,更多相关《JBPM实践之并发子流程的实现Word文件下载.doc(7页珍藏版)》请在冰点文库上搜索。

JBPM实践之并发子流程的实现Word文件下载.doc

1<

?

xml 

version="

1.0"

encoding="

UTF-8"

>

2<

process-definition 

xmlns="

"

name="

super1"

<

start-state 

start-state1"

transition 

to="

task-node1"

/transition>

/start-state>

6

task-node 

create-tasks="

signal="

description>

我们要利用这个TaskNode实现并发子流程,create-tasks="

true"

是为了可以手动控制任务实例的创建,同时创建子流程,

10 

是为了实现当所有子流程均已完成,主流程才能继续运行的效果

11 

/description>

12 

task 

sub1"

13 

要并发的子流程之一<

14 

/task>

15 

sub2"

16 

要并发的子流程之二<

17 

18 

event 

type="

node-enter"

19 

action 

NodeEnterAction"

class="

jbpmTest.bfzlc.action.NodeEnterAction"

/action>

20 

/event>

21 

end-state1"

22 

/task-node>

23

24 

end-state 

/end-state>

25

26 

process-start"

27 

script 

SuperProcessStart"

28 

System.out.println(&

quot;

主流程启动,并设置主流程ID&

);

29 

/script>

30 

31 

process-end"

32 

SuperProcessEnd"

33 

主流程结束&

34 

35 

36<

/process-definition>

下面是主流程的Node-EnterAction的代码:

1public 

class 

NodeEnterAction 

implements 

ActionHandler 

{

2

public 

void 

execute(ExecutionContext 

executionContext) 

throws 

Exception 

//取得本节点所有的Task

Set<

Task>

tasks 

((TaskNode)executionContext.getNode()).getTasks();

TaskMgmtInstance 

tgmt 

executionContext.getTaskMgmtInstance();

for 

(Task 

:

tasks) 

//为每一个Task创建实例

TaskInstance 

taskInstance 

tgmt.createTaskInstance(task, 

executionContext);

//业务Service

JbpmTestFacade 

jbpmTestFacade 

((JbpmTestFacade)SpringBeanUtil.getBean("

jbpmTestFacade"

));

//根据Task的名字,为每一个Task创建相应的子流程

ProcessInstance 

processInstance 

jbpmTestFacade.createProcessInstance(task.getName());

//设置创建这个子流程的流程实例ID

processInstance.getContextInstance().setVariable("

TaskInstanceID"

 

taskInstance.getId());

//子流程开始流转

processInstance.signal();

}

23}

再看其中一个子流程的定义:

Sub1Task"

SubTask1"

11

13

ProcessStartScript"

-------------------sub1流程启动------------------------------&

19

SubProcessEndAction"

jbpmTest.bfzlc.action.SubProcessEndAction"

23<

24

下面是该子流程的ProcessEndAction:

SubProcessEndAction 

System.out.println(executionContext.getProcessDefinition().getName()+"

结束"

//得到创建当前子流程的那个TaskInstanceID

String 

taskInstanceID 

executionContext.getContextInstance().getVariable("

).toString();

//取得创建当前子流程的那个主流程taskInstance

jbpmTestFacade.geTaskInstance(Long.valueOf(taskInstanceID));

taskInstance.end();

14

15}

思路很清楚,代码也很简单,按照这种方式我们可以让子流程实现所有Task能实现的功能

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > PPT模板 > 商务科技

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2