jbpm流程实例保存

时间:2010-10-28 08:33:48

标签: jbpm

我是JBPM的新手。我正在使用jbpm4.4 这是我的基本示例代码:

    ProcessEngine processEngine = new Configuration()
           .buildProcessEngine();
      NewDeployment deployment=processEngine.getRepositoryService().createDeployment().addResourceFromClasspath("com/pardis/jpdl/test.jpdl.xml");
      String deploymentId = deployment.deploy();
      Map<String,Object> variables = new HashMap<String,Object>();
      variables.put("customer", "John Doe");
      variables.put("type", "Accident");
      variables.put("amount", new Float(763.74));
      ProcessInstance processInstance = processEngine.getExecutionService().startProcessInstanceByKey("iran",variables,"doops");
processEngine.getExecutionService().signalExecutionById(processInstance.getId());

这是我的流程定义:

<?xml version="1.0" encoding="UTF-8"?>

<process key="iran" name="test" xmlns="http://jbpm.org/4.4/jpdl">
   <start g="388,85,48,48" name="start1">
      <transition g="-49,-18" name="to state1" to="state1"/>
   </start>
   <end g="519,310,48,48" name="end1"/>
   <java class="test.TestAction" g="278,173,92,52" method="pr" name="java1">
      <arg> <object expr="#{type}"/> </arg>
      <arg> <object expr="#{customer}"/> </arg>
      <arg> <object expr="#{amount}"/> </arg>
      <transition name="to state2" to="state2" g="-49,-18"/>
   </java>
   <state g="89,151,92,52" name="state1">
      <transition g="-45,-18" name="to java1" to="java1"/>
   </state>
   <state name="state2" g="500,205,92,52">
      <transition name="to end1" to="end1" g="-42,-18"/>
   </state>
</process>

我有一个问题:

  1. 假设在某些状态下暂停执行进程,我怎么能坚持执行并再次恢复呢?我想为多个用户运行一个流程并跟踪执行情况。
  2. 我认为JBPM文档很差!你能为我建议一个有用的资源吗? 提前谢谢

1 个答案:

答案 0 :(得分:0)

我必须同意jbpm 4.x的文档很小。 {如果信息无用,我会提前道歉,我自己仍然掌握它}}

我花了一段时间才开始。 编辑:This博客对入门非常有帮助。 就持久性而言,开始并不是太粗糙。 您需要指定一个jbpm.hibernate.cgf.xml文件。

如果您已熟悉配置之前已使用过hibernate。 如果没有,这是我的测试hibernate配置文件连接到MySQL数据库的一个snippit:

<property name="hibernate.dialect">org.hibernate.dialect.MySQLInnoDBDialect</property>
<property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
<property name="hibernate.connection.url">jdbc:mysql://localhost:3306/MySQL</property>
<property name="hibernate.connection.username">root</property>
<property name="hibernate.connection.password">password</property>