文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

jbpm使用要点

2023-06-03 08:03

关注

作者:gagaghost Email:gagaghost@gmail.com

流程流转方式:

在一个流程实例化后,流程的节点就会自动进入启动节点,如果要离开启动节点,必须调用signal()的方法.调用该方法后,流程会进入后续节点,也即进入stateOne节点,如果再signal()一次,执行的指针将会指向task1,如过再signal()一次,执行指针就会离开task1节点,移动到下一个节点,而下一个节点正好是end节点, 流程就会终止。当然在task的AssignmentHandle中用TaskInstance.end()方法也可以的。

特别需要说明的是:如果Task Node上没有任务,则执行指针就会自动经过该节点执行到下一个节点.如果task1上没有任务,则在stateOne上调用了signal()后,流程就会结束.

如何取出一个用户的任务列表?

要取出用户的任务列表,必须保证流程已经持久在数据库中了,就可以用如下的语句进行提取了:

JbpmConfiguration config = JbpmConfiguration.getInstance();

JbpmContext jbpmContext = config.createJbpmContext();

TaskMgmtSession session=new TaskMgmtSession(jbpmContext.getSession());

List tasks=session.findTaskInstances("gaga");

如何把一个任务安排给用户?

在Task node上添加Task,并添加AssignmentHandler,在

public class TaskAsignMent implements AssignmentHandler {

public void assign(Assignable assignable, ExecutionContext executionContext)

throws Exception {

assignable.setActorId("gaga");// assignable就是工作项

}

}

泳道(Swimlane)如何使用?

泳道就是用来描述角色的.如果你的某些工作项目是角色来操作的,就可以使用泳道.泳道有点批处理的意思,如果有多个节点是某个角色的用户来完成的,就需要使用这个东西了,否则在每一个任务上设置AssignmentHandler会累死人的^_^!

如何将一个任务安排给用户?

在任务上设置一个AssignmentHandler,在其execute方法中进行设置,和在任务节点上设置用户的方法一样.只不过这里是泳道而已.

如何将流程和要流转的业务系统中的数据结构关联起来?

在流程启动的时候,在流程中放一个变量,该变量中存放外部数据结构的id.当用户得到工作列表的时候,就会取出流程实例中的id,有了id就可以在业务数据库中取出业务数据了.

如何区分在一个任务列表中不同节点上的处理界面?

建立一个节点和界面对应的表即可,用户选定了任务后,系统根据用户选定任务的节点的名称或其他唯一标识符,找出与之对应的界面导航连接后,redirect到该页面即可.

如何图形化显示当前流程的状态?

写一个servlet,将图形显示出来就可以了,如:

public class ProcessImageServlet extends HttpServlet {

private static final long serialVersionUID = 1L;

protected void doGet(HttpServletRequest request, HttpServletResponse response)

throws ServletException, IOException {

long processDefinitionId = Long.parseLong( request.getParameter( "definitionId" ) );

JbpmContext jbpmContext = JbpmContext.getCurrentJbpmContext();

ProcessDefinition processDefinition = jbpmContext.getGraphSession().loadProcessDefinition(processDefinitionId);

byte[] bytes = processDefinition.getFileDefinition().getBytes("processimage.jpg");

OutputStream out = response.getOutputStream();

out.write(bytes);

out.flush();

// leave this in.it is in case we want to set the mime type later.

// get the mime type

// String contentType = URLConnection.getFileNameMap().getContentTypeFor( fileName );

// set the content type (=mime type)

// response.setContentType( contentType );

}

}

在创建数据库表时出现的错误

JbpmConfiguration config = JbpmConfiguration

.parseResource("jbpm.cfg.xml");

config.createSchema();

config.close();

提示语法错误,更新了hibernate最新版本的就可以。

hibernate-3.1.3,jbpm

如何向指定的分支流转?

用TaskInstance的end方法,如下所示:

JbpmConfiguration config = JbpmConfiguration.getInstance();

JbpmContext jbpmContext = config.createJbpmContext();

TaskInstance taskInstance=jbpmContext.getTaskMgmtSession().loadTaskInstance(taskId);

String offshoot="" + param.get(Constant.OFFSHOOT);

//taskInstance.end(offshoot);

taskInstance.end();

jbpmContext.save(taskInstance);

jbpmContext.close();

[@more@]

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯