首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件架构设计 >

jbpm4.3轻巧 实现会签完整版

2012-10-27 
jbpm4.3轻松 实现会签完整版process namehuigao xmlnshttp://jbpm.org/4.3/jpdl xmlns:xsihttp:/

jbpm4.3轻松 实现会签完整版

<process name="huigao" xmlns="http://jbpm.org/4.3/jpdl" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://jbpm.org/4.3/jpdl http://jbpm.org/4.3/jpdl ">
?? <start g="172,34,48,48" name="开始">
????? <transition g="-53,-17" name="审稿" to="审稿"/>
?? </start>
?? <task assignee="shengao" form="com/zhangrun/forms/first.ftl" g="150,125,92,52" name="审稿">
????? <transition g="-83,-17" name="会稿或办文" to="会稿或办文"/>
?? </task>
?? <decision g="178,227,48,48" name="会稿或办文">
????? <transition g="-65,-17" name="会稿" to="会稿">
????? <condition expr=" # { select=="huigao" } "/>
????? </transition>
????? <transition g="-53,-17" name="办文" to="办文">
????? <condition expr=" # { select==" banwen " } "/>
????? </transition>
?? </decision>
?? <custom g="16,230,92,52" name="会稿">
????? <transition g="60,153:-53,-17" name="审稿" to="审稿"/>
?? </custom>
?? <task assignee="banwen" g="298,225,92,52" name="办文">
????? <transition g="348,373:-47,-17" name="结束" to="结束"/>
?? </task>
?? <end g="180,354,48,48" name="结束"/>
</process>

JAVA代码

public class Custom implements ExternalActivityBehaviour {

private static final long serialVersionUID = 1L;

public void execute(ActivityExecution activityExecution) throws Exception {
?? ExecutionImpl executionimpl = (ExecutionImpl) activityExecution;

?? DbSession dbsession = EnvironmentImpl.getFromCurrent(DbSession.class);
?? TaskImpl taskimpl = dbsession.createTask();
?? taskimpl.setName("customTem");
?? taskimpl.setExecution(executionimpl);
?? taskimpl.setProcessInstance(executionimpl.getProcessInstance());
?? taskimpl.sngine()
???? .getTaskService();
?? Activity activity = executionImpl.getActivity();
?? List<Task> tasks = taskService.createTaskQuery().processInstanceId(
???? pi.getId()).list();

?? List<Task> subTask_list = taskService.getSubTasks(tasks.get(0).getId());
?? Iterator<Task> iter = subTask_list.iterator();
?? while (iter.hasNext()) {
??? Task subtask = iter.next();
??? if (parms.get("username").equals(subtask.getAssignee())) {
???? taskService.completeTask(subtask.getId());
??? }
?? }
?? if (subTask_list == null || subTask_list.size() == 1) {
??? Transition transition = null;
??? if ((signalName == null)
????? || ((Task.STATE_COMPLETED.equals(signalName))
??????? && (activity.getOutgoingTransitions() != null) && (activity
??????? .getOutgoingTransitions().size() == 1))) {
???? transition = activity.getOutgoingTransitions().get(0);
??? } else {
???? transition = activity.findOutgoingTransition(signalName);
??? }
??? taskService.completeTask(tasks.get(0).getId());
??? executionImpl.take(transition);
?? } else {
??? executionImpl.waitForSignal();
?? }
}

}

?

转载自:http://www.blogjava.net/pengo/archive/2009/12/09/305226.html

1 楼 showtime520 2010-10-03   楼主,这段代码你运行过吗?没运行过怎么能叫轻松实现?还完整版,你这样写最害人啊 2 楼 iuottp 2010-11-08   不好意思,我也是转载的,贴在这里只是为了自己查看方便些。

热点排行