10-jbpm工作流之"自定义活动Custom"
来源:互联网 发布:南昌军工软件 编辑:程序博客网 时间:2024/05/21 21:52
自定义工作流活动:
1.工作流图片:test.png:
2.配置文件test.jpdl.xml: 该配置指定了custom的实现类
<?xml version="1.0" encoding="UTF-8"?><process name="test" xmlns="http://jbpm.org/4.4/jpdl"> <start name="start1" g="238,36,48,48"> <transition name="to custom1" to="custom1" g="-70,-22"/> </start> <end name="end1" g="237,243,48,48"/> <custom name="custom1" g="217,132,92,52" class="cn.edu.zust.itee.custom.ExternalActivityBehaviourImpl"> <transition name="to end1" to="end1" g="-50,-14"/> </custom></process>
package cn.edu.zust.itee.custom;import java.util.Map;import org.jbpm.api.activity.ActivityExecution;import org.jbpm.api.activity.ExternalActivityBehaviour;/** * @author 郑勇 * 2013-7-11 14:41 * 自定义活动 */public class ExternalActivityBehaviourImpl implements ExternalActivityBehaviour {// 到达这个活动时执行的方法@Overridepublic void execute(ActivityExecution execution) throws Exception {System.out.println("发送手机短信-------------");// 默认执行完代码后,离开当前活动(节点),也可以完成//execution.takeDefaultTransition(); //离开当前活动// 使用指定名称的Transition离开当前活动//execution.take(transitionName);//执行完后不要离开,而是要等待外部手动调用signal()方法时才离开execution.waitForSignal(); }// 离开当前活动前执行的方法(如果在execute方法中,直接离开当前活动了,那么该方法就不会被执行了)@Overridepublic void signal(ActivityExecution execution, String signalName, Map<String, ?> parameters) throws Exception {System.out.println("发送手机短信已经完成-------------");}}
测试类JAVA Code:
package cn.edu.zust.itee.custom;import java.io.InputStream;import java.util.List;import org.jbpm.api.Configuration;import org.jbpm.api.ProcessEngine;import org.jbpm.api.ProcessInstance;import org.jbpm.api.task.Task;import org.junit.Test;/** * @author 郑勇 * 2013-7-11 14:50 * Custom自定义活动 */public class CustomActivity { ProcessEngine processEngine= Configuration.getProcessEngine();@Testpublic void testCustomActivity(){//部署流程定义//获得当前包中的文件InputStream in = this.getClass().getResourceAsStream("test.jpdl.xml");processEngine.getRepositoryService() .createDeployment() .addResourceFromInputStream("test.jpdl.xml", in) .deploy();//启动流程实例ProcessInstance pi = processEngine.getExecutionService().startProcessInstanceByKey("test");System.out.println("processIntenceId="+pi.getId());System.out.println("当前正在执行的活动:"+pi.findActiveActivityNames()); }//离开活动@Testpublic void signal(){//让指定的Execution(即:ProcessInstance)向后执行一步//(excutionId对应jbpm4_execution表中的“ID_”字段)String excutionId = "test.610007";processEngine.getExecutionService().signalExecutionById(excutionId);}}
- 10-jbpm工作流之"自定义活动Custom"
- 06-jbpm工作流之状态活动State
- jbpm自定义活动
- 工作流 之JBPM简介
- 08-jbpm工作流之Decision流程决策(判断活动执行方向)
- jbpm设计活动之state
- JBPM工作流引擎之并发流程&组任务&事件&自定义任务
- JBPM工作流
- JBPM工作流
- JBPM工作流
- JBPM工作流
- JBPM工作流
- JBPM工作流
- JBPM工作流
- jBPM工作流
- JBPM工作流
- JBPM-工作流
- 【工作流】:JBPM
- 4-1阻塞型IO
- Linux 的多线程编程的高效开发经验
- .net 数据格式说明
- Struts2自定义Interceptor
- The Zen of Python
- 10-jbpm工作流之"自定义活动Custom"
- GWT实现文件上传下载
- android中ListView控件&&onItemClick点击事件
- build.xml是什么
- jquery1.9移除了browser的替代方法
- Eclipse快捷键大全(转载)
- 我心目中最好的框架组合
- TinyOS2.1 windows xp安装
- 最近开发遇到的问题---1