- 浏览: 459742 次
- 性别:
- 来自: 陕西.西安
文章分类
最新评论
-
gaodadawei:
登录失败,请重试楼主,我目前遇到这样一个错误,claros i ...
James+Claros+intouch2.1配置 -
VerRan:
qq346448412 写道请问。你上一节、 用的ORACLE ...
James+Claros+intouch2.1配置 -
qq346448412:
请问。你上一节、 用的ORACLE数据库、 这一节又用的是MY ...
James+Claros+intouch2.1配置 -
paladin1988:
good,我喜欢..
Hibernate自关联关系 -
lygxy12:
请问,能给163发邮件吗?该怎么配置?我安装上面的操作,发给1 ...
James+Claros+intouch2.1配置
1. 流程图
如果传入的条件为“you are good” 则走good 分支并执行完成操作,good分支转向completed ,此操作之心hello操作。
如果传入的条件为“you are bad”则走bad 分支并结束流程
2. 流程定义文件
<?xml version="1.0" encoding="UTF-8"?> <process key="PurchaseOrder2" name="PurchaseOrder2" xmlns="http://jbpm.org/4.4/jpdl"> <start g="17,80,80,40"> <transition to="CheckOrder"/> </start> <decision g="209,81,80,40" name="CheckOrder"> <handler class="com.spring.order.purchaseOrderHandler" /> <transition g="-22,-18" name="good" to="Completed"> </transition> <transition name="bad" to="Error" g="-23,-18"> </transition> </decision> <java class="com.spring.hello.Hello" g="297,12,80,40" method="sayHello" name="Completed"/> <end g="307,166,80,40" name="Error"/> </process>
这里当执行到checkOrder选择条件时,执行一个处理句柄通过handler标签定义,具体处理类通过com.spring.order.purchaseOrderHandler处理
3. 处理类实现
此类实现 如果传入的参数为"you are greate" 则让流程走向 good 分支 否则执行bad 分支、
此类需要实现接口DecisionHandler
package com.spring.order; import org.jbpm.api.jpdl.DecisionHandler; import org.jbpm.api.model.OpenExecution; public class purchaseOrderHandler implements DecisionHandler { /** * */ private static final long serialVersionUID = -1063124149556228361L; @Override public String decide(OpenExecution execution) { String content = (String) execution.getVariable("content"); if (content.equals("you are great")) { System.out.println("good---"); return "good"; } else if (content.equals("you are bad")) { System.out.println("bad---"); return "bad"; } return "good"; } }
4. 执行流程
package com.spring.order; import java.util.HashMap; import java.util.Map; import org.jbpm.api.Configuration; import org.jbpm.api.ProcessEngine; import org.jbpm.api.ProcessInstance; import org.jbpm.api.history.HistoryProcessInstance; import org.jbpm.api.history.HistoryProcessInstanceQuery; public class ProcessEngineLearn { public static String deployProcess(ProcessEngine pe, String jpdlPath) { return pe.getRepositoryService().createDeployment() .addResourceFromClasspath(jpdlPath).deploy(); } public static void deleteProcessInst(ProcessEngine pe, String processInstId) { pe.getRepositoryService().deleteDeployment(processInstId); } public static ProcessInstance excuteProcess(ProcessEngine pe, String key, Map<String, Object> variables) { return pe.getExecutionService().startProcessInstanceByKey(key, variables); } public static void findHisProcessInstance(ProcessEngine pe) { HistoryProcessInstanceQuery hpq = pe.getHistoryService() .createHistoryProcessInstanceQuery(); System.out.println(hpq.count()); System.out.println(hpq.processDefinitionId("Hello-3").list().size()); for (java.util.Iterator<HistoryProcessInstance> it = hpq .processDefinitionId("Hello-3").list().iterator(); it.hasNext();) { HistoryProcessInstance hpi = (HistoryProcessInstance) it.next(); System.out.println("hpi.getProcessInstanceId()=" + hpi.getProcessInstanceId()); System.out.println("hpi.getProcessDefinitionId()=" + hpi.getProcessDefinitionId()); pe.getExecutionService().startProcessInstanceById( hpi.getProcessDefinitionId()); } } /** * @param args * @throws InterruptedException */ public static void main(String[] args) throws InterruptedException { ProcessEngine pe = new Configuration().buildProcessEngine(); deployProcess(pe, "com\\spring\\order\\perchaseOrder2.jpdl.xml"); Map<String, Object> variables = new HashMap<String, Object>(); variables.put("content", "you are bad");// 传入流程的参数 excuteProcess(pe, "PurchaseOrder2", variables); } }
发表评论
-
AKKA 学习笔记之1
2013-09-15 15:08 23537AKKA 是一款基于actor模型实现的 并发处理框架。基 ... -
Ant 集成 junit 自动生成测试报告
2013-08-28 08:56 1025在当下Maven 统治大片江山,Gradle后起之秀的情况 ... -
很有用的测试工具
2013-08-27 11:21 7181. findbugs findbugs是一种静态 ... -
java 之 JNI
2013-08-27 11:06 1692前言: 在查看java socket实现代码时最终发现其 ... -
HSQLDB实现学习笔记-数据库服务器连接
2013-08-27 10:27 12681 数据库服务器连接 主要用于描述客户端是如何与 ... -
HSQLDB实现学习笔记-数据库服务器创建
2013-08-27 10:16 2988前言: HSQLDB作为一个纯java实现的开源数据库, ... -
反射实现 AOP 动态代理模式(Spring AOP 的实现 原理)(转)2
2011-04-13 14:01 12111package sinosoft.dj.aop ... -
反射实现 AOP 动态代理模式(Spring AOP 的实现 原理)(转)
2011-04-13 13:49 877转自: http://www.blogjava.net/Do ... -
Sun Remote Procedure Call
2011-04-05 15:45 1330Most network programming is ... -
pushlet
2011-03-31 22:54 881http://baike.baidu.com/view/246 ... -
Comet:基于 HTTP 长连接的“服务器推”技术(转)
2011-03-31 22:39 883http://www.ibm.com/developerwor ... -
冒泡排序
2011-03-30 16:03 993package com.datastruct.sort; ... -
快速排序
2011-03-30 16:02 943package com.datastruct.sort; ... -
Cookie
2011-03-30 14:11 8051、登录www.iteye.com 输入用户名,密 ... -
OCP秘笈
2011-03-29 22:19 737http://oracle.chinaitlab.com/Sp ... -
HashCode计算方法
2011-03-29 17:34 967Returns a hash code for this ... -
Merkle-Hellman背包算法
2011-03-23 17:54 1117转自:http://baike.baidu.com/view/ ... -
Android webService访问实例
2011-03-23 13:09 4293参考网上的例子实现一个简单的天气查看功能。 界面包含一个按钮, ... -
Android 源码查看
2011-03-22 14:10 1564在网上看了几个关于源码查看的方法但是都不是很清晰,此文列出 ... -
在Android中解析XML数据
2011-03-21 22:20 978http://www.williamhua.com/2009/ ...
相关推荐
- **启动流程实例**:调用startProcessInstanceByKey方法,会在执行表jbpm4_execution、历史记录表jbpm4_hist_...等中新增条目。 **PVM 机制** JBPM4引入了Process Virtual Machine(PVM)机制,用以替代之前的...
【jbpm4请假实例代码】是一个基于jbpm4工作流引擎的示例应用,它用于演示如何在实际项目中实现员工请假流程的自动化管理。jbpm4是一个开源的工作流管理系统,它提供了强大的业务流程建模、执行和管理功能,使得...
【jbpm4之HelloWorld实例】是一个初学者入门教程,主要介绍了如何在Java环境中使用jbpm4(Business Process Management Suite 4)框架构建一个简单的"Hello World"流程应用。jbpm4是一个开源的工作流和业务流程管理...
**jbpm4实例源码详解** jbpm4是一款开源的工作流管理系统,它是Java Business Process Management的简称,主要用于处理业务流程的建模、执行和管理。jbpm4在企业级应用中广泛使用,它提供了强大的工作流引擎,可以...
【jbpm4.4 工程项目实例】是一个基于jbpm工作流引擎的Web应用程序,旨在提供一个实际操作的示例,帮助开发者了解如何在实际项目中应用jbpm。jbpm是一个开源的工作流管理系统,它支持业务流程建模、部署、执行以及...
**JBPM4 实例详解** JBPM4 是一个开源的工作流管理系统,用于处理业务流程自动化。它是Java平台上的一个轻量级、灵活的业务流程管理(BPM)框架,为组织提供了一种有效管理和控制业务流程的方法。对于初学者而言,...
JBPM是一个扩展性很强的工作流系统,百分百用JAVA语言开发,持久层采用Hibernate实现,理论上说,只要Hibernate支持的数据库JBPM都支持。同时它还能被部署在任何一款JAVA应用服务器上 JBPM的工程文件,大家可以到...
jBPM4应用和实例分卷2
jBPM4应用和实例分卷3
【JBPM4开发实例】是关于使用JBPM4进行工作流开发的一个具体实践教程,适合初学者进行入门学习。JBPM4是一个开源的工作流管理系统,它允许开发者设计、执行和管理业务流程。在这个实例中,我们将详细介绍如何设置...
jbpm4.3表结构和表字段说明文档通常会详细介绍jbpm4中涉及的数据库表,包括实体如任务实例(TaskInstance)、流程实例(ProcessInstance)、工作项(WorkItem)等的表结构和字段。这些信息对于开发者来说至关重要,...
**jBPM4.4开发实例** jBPM(Java Business Process Management)是一个开源的工作流管理系统,用于管理和执行业务流程。jBPM4.4是该框架的一个版本,它提供了强大的工作流服务,包括流程定义、流程实例管理、任务...
4. **配置数据库连接**:JBPM需要数据库存储流程实例信息,如MySQL或H2,配置相应的数据库连接。 **三、创建请假流程实例(jbpm4leave)** 1. **设计流程模型**:使用Eclipse的BPMN插件或专门的流程设计工具(如...
**JBPM4.3与Spring整合的会签实例详解** JBPM(Java Business Process Management)是一个开源的工作流管理系统,主要用于处理业务流程自动化。在JBPM4.3版本中,它提供了一个强大的工作流引擎,可以方便地实现复杂...
jbpm4web项目则为开发者提供了一个参考实例,帮助理解和实践jbpm4.3在Web应用中的应用。在实际开发中,理解jbpm的核心概念、与Java的集成方式以及SSH框架的配合,对于构建高效、灵活的企业级应用至关重要。
4. 部署"jbpm_web"到Web服务器,如Tomcat或Jetty。 5. 通过Web界面启动流程实例,观察流程的执行情况。 通过这个可运行实例,你可以深入理解jbpm的工作原理,学习如何定义流程,如何在代码中与工作流引擎交互,以及...
jbpm实例的开发涉及流程定义、数据库配置、事务管理等多个方面,需要对Java、Eclipse插件、数据库管理和事务处理有一定的了解。通过实践,你可以更好地掌握jbpm的使用,从而在项目中实现灵活、高效的工作流管理。