10-jbpm工作流之"自定义活动Custom"
2013-07-11 15:12
399 查看
自定义工作流活动:
1.工作流图片:test.png:
2.配置文件test.jpdl.xml: 该配置指定了custom的实现类
3.custom的实现类:实现ExternalActivityBehaviour接口:
测试类JAVA Code:
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>
3.custom的实现类:实现ExternalActivityBehaviour接口:
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 { // 到达这个活动时执行的方法 @Override public void execute(ActivityExecution execution) throws Exception { System.out.println("发送手机短信-------------"); // 默认执行完代码后,离开当前活动(节点),也可以完成 // execution.takeDefaultTransition(); //离开当前活动 // 使用指定名称的Transition离开当前活动 // execution.take(transitionName); //执行完后不要离开,而是要等待外部手动调用signal()方法时才离开 execution.waitForSignal(); } // 离开当前活动前执行的方法(如果在execute方法中,直接离开当前活动了,那么该方法就不会被执行了) @Override public 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(); @Test public 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()); } //离开活动 @Test public void signal(){ //让指定的Execution(即:ProcessInstance)向后执行一步 //(excutionId对应jbpm4_execution表中的“ID_”字段) String excutionId = "test.610007"; processEngine.getExecutionService().signalExecutionById(excutionId); } }
相关文章推荐
- SP2010开发和VS2010专家"食谱"--第三章节--高级工作流(1)--创建自定义活动
- SP2010开发和VS2010专家"食谱"--第三章节--高级工作流(1)--创建自定义活动
- SP2010开发和VS2010专家"食谱"--第三章节--高级工作流(2)--为沙盒解决方案创建自定义活动
- SP2010开发和VS2010专家"食谱"--第三章节--高级工作流(2)--为沙盒解决方案创建自定义活动
- 09-jbpm工作流之"分支聚合Join-Fork"
- 12-jbpm工作流之 分配任务给一个"组的成员"GroupTask
- 【活动通知】南京 GDG 10 月份 "Nanjing GDG 校园行"
- 11-jbpm工作流之"事件处理Event"
- Android应用自定义User Data管理(将Settings下的"清除数据"变成"管理空间")
- "围观"设计模式(10)--创建型之原型模式(Prototype Pattern)
- 10_9_2从类MyClass中派生一个类MyDervedClass,重写GetString(),使用该方法的基类实现代码从基类中返回一个字符串,但在返回的字符串中添加文本"(output fro)"
- Spring3自定义环境配置 <beans profile="">
- WorkFlow设计篇Step.5—用户自定义工作流活动-WF4.0
- windows8安装myeclipse 10.0时出现failed to find a main class in "c:\windows\temp"解决
- 【myeclipse 10 】Exception in thread "main" java.lang.NoClassDefFoundError: com/sun/mail/util/LineInpu
- JBPM工作流<转>
- [jbpm]jBPM(十):webSale的"页面流"介绍
- jbpm 错误 loader constraint violation: when resolving interface method "javax.servlet.jsp.JspApplicationContext.getExpressionFacto
- WF4.0实战(二十三):自定义工作流活动的外观的两种方式
- 黄淮学院CSDN高校俱乐部"把梳子卖给和尚"话剧表演活动