2010-10-28 61 views
2

我是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> 

我有一個關於它的問題:

  1. 假設該進程的執行在某種狀態下停止,我怎麼能堅持執行並再次恢復?我想爲多個用戶運行一個進程並保留執行軌跡。

我認爲JBPM文檔非常差!那麼你能爲我提供一個有用的資源嗎? 在此先感謝

回答

0

我必須同意,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>