liuqipao 2012-07-05
1. 原理就备了
只接给大家点代码看看吧哈。。
package org.zk.liuqing.jbpm.test.helloworld; import java.util.List; import org.jbpm.api.Configuration; import org.jbpm.api.Execution; import org.jbpm.api.ExecutionService; import org.jbpm.api.ProcessDefinition; import org.jbpm.api.ProcessEngine; import org.jbpm.api.ProcessInstance; import org.jbpm.api.RepositoryService; /** * * @author LiuQing * @see Jbpm 测试用例 * @date 2009-7-5下午02:14:10 * @version 1.0 */ public class HelloWorldJbpm { public static void main(String[] args) { // TODO Auto-generated method stub //启动流程引擎 ProcessEngine engine = Configuration.getProcessEngine(); //专门用于管理流程实例 ExecutionService executionService = engine.getExecutionService(); //通过流程定义的Key来发起新流程 executionService.signalExecutionById("helloworld.40001"); //查看执行状态 Execution execution = executionService.findExecutionById("helloworld.40001"); System.out.println(execution.getState()); } /** * @see 根据已经定义的流程创建实例 */ public void viewProcessInstance() { //启动流程引擎 ProcessEngine engine = Configuration.getProcessEngine(); //专门用于管理流程实例 ExecutionService executionService = engine.getExecutionService(); //通过流程定义的Key来发起新流程 ProcessInstance processInstance = executionService.startProcessInstanceByKey("helloworld"); //执行流程下一步 processInstance = executionService.signalExecutionById(processInstance.getId()); //是否正常结束 boolean isEnd = processInstance.isEnded(); System.out.println(isEnd); //查看流程列表 List<ProcessInstance> processInstances = executionService.createProcessInstanceQuery().list(); for (ProcessInstance en:processInstances) { System.out.println(en); } } /** * @see 那立流程 */ public void viewSystem() { //启动流程引擎 ProcessEngine engine = Configuration.getProcessEngine(); //获得流程服务 RepositoryService service = engine.getRepositoryService(); //发布流程定义信息到流程引擎中去 String developementId = service.createDeployment() .addResourceFromClasspath("org/zk/liuqing/jbpm/test/helloworld/helloworld.jpdl.xml").deploy(); System.out.println(developementId); //查看以定询流程 List<ProcessDefinition> definitions = service.createProcessDefinitionQuery().list(); for (ProcessDefinition en:definitions) { System.out.println(en.getDeploymentId()); } //删除部署流程 service.deleteDeploymentCascade("10001"); } }
2. 环境文件就从jbpm中复制出来到项目中就OK
helloworld.jpdl.xml
<?xml version="1.0" encoding="UTF-8"?> <process description="start" name="helloworld" xmlns="http://jbpm.org/4.4/jpdl"> <start g="180,22,48,48" name="start"> <transition name="to s" to="s" g="-23,-18"/> </start> <state g="150,130,92,52" name="s"> <transition name="to end" to="end" g="-36,-18"/> </state> <end g="188,259,48,48" name="end"/> </process>
与JBPM3不同也不说了。。就这样吧