jbpm流程实例保存
问题描述:
我是JBPM的新手。我使用jbpm4.4 这是我的基本的示例代码:jbpm流程实例保存
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>
我有一个关于它的问题:
- 假设该进程的执行在某种状态下停止,我怎么能坚持执行并再次恢复?我想为多个用户运行一个进程并保留执行轨迹。
我认为JBPM文档非常差!那么你能为我提供一个有用的资源吗? 在此先感谢
答
我必须同意,jbpm 4.x的文档很苗条。 {我提前道歉,如果信息没有用,仍然得到它自己挂}
我花了一段时间才开始。 编辑:This博客对于入门非常有帮助。 就持久性而言,开始并不太难。 您将需要指定一个jbpm.hibernate.cgf.xml文件。
如果你在熟悉配置之前已经使用过hibernate的话。 如果没有,这是从我的测试休眠配置文件连接到MySQL DB 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>