2

我是 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. 假设进程的执行在某种状态下停止,我怎么能坚持执行并再次恢复呢?我想为多个用户运行一个进程并跟踪执行情况。

我认为JBPM文档很差!所以你能为我推荐一个有用的资源吗?提前致谢

4

1 回答 1

0

我必须同意 jbpm 4.x 的文档很精简。{如果这些信息没有用,我提前道歉,我自己仍然掌握它的窍门}

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

如果您在熟悉配置之前使用过 hibernate。如果没有,这是我的测试休眠配置文件中的一个片段,它连接到 MySQL DB:

<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>
于 2010-11-02T09:15:10.523 回答