Activiti学习笔记11 — 判断节点的使用
2015-12-02 14:43
267 查看
一、 创建流程
View Code
四、运行结果
[INFO][2015-12-02 14:39:58,335][com.mcs.activiti.test.TestExclusiveGateway]processInstanceId:170001
[INFO][2015-12-02 14:39:58,641][com.mcs.activiti.test.TestExclusiveGateway]领导批示的旅游经费是: 11500.0
[INFO][2015-12-02 14:39:58,642][com.mcs.activiti.test.TestExclusiveGateway]executionId: 170001
[INFO][2015-12-02 14:39:58,816][com.mcs.activiti.test.TestExclusiveGateway]由于领导指示的经费是:11500.0,所以你可以国外游!
[INFO][2015-12-02 14:39:58,914][com.mcs.activiti.test.TestExclusiveGateway]判断分支结点流程成功执行!
/** * 3、启动流程、执行任务,并查看状态 */ @Test public void testExcusiveGateway() { // 获取服务对象的实例 RuntimeService runtimeService = processEngine.getRuntimeService(); String processDefinitionKey = "确定旅游地点"; // 自动执行与Key相对应的流程的最高版本 ProcessInstance processInstance = runtimeService.startProcessInstanceByKey(processDefinitionKey); String processInstanceId = processInstance.getId(); logger.info("processInstanceId:" + processInstance.getId()); //获取当前流程下Execution对象 Execution e1 = runtimeService .createExecutionQuery() .processInstanceId(processInstanceId) //每个流程的唯一标识 .activityId("申请旅游经费") //每个活动的唯一标识 .singleResult(); Assert.assertNotNull(e1); //执行逻辑,请领导批示旅游经费 Double money =11500d; //把金额放入变量中 runtimeService.setVariable(e1.getId(), "money", money); logger.info("领导批示的旅游经费是: " + money); //推动流程流转 logger.info("executionId: " + e1.getId()); runtimeService.signal(e1.getId()); if (money >= 10000d) { Execution e2 = runtimeService .createExecutionQuery() .processInstanceId(processInstanceId) //每个流程的唯一标识 .activityId("国外游") //每个活动的唯一标识 .singleResult(); Assert.assertNotNull(e2); logger.info("由于领导指示的经费是:" + runtimeService.getVariable(e2.getId(), "money") + ",所以你可以国外游!" ); //推动流程流转 runtimeService.signal(e2.getId()); } else if ( money > 1000d && money < 10000d ) { Execution e2 = runtimeService .createExecutionQuery() .processInstanceId(processInstanceId) //每个流程的唯一标识 .activityId("国内游") //每个活动的唯一标识 .singleResult(); Assert.assertNotNull(e2); logger.info("由于领导指示的经费是:" + runtimeService.getVariable(e2.getId(), "money") + ",所以你可以国内游!" ); //推动流程流转 runtimeService.signal(e2.getId()); } else { Execution e2 = runtimeService .createExecutionQuery() .processInstanceId(processInstanceId) //每个流程的唯一标识 .activityId("省内游") //每个活动的唯一标识 .singleResult(); Assert.assertNotNull(e2); logger.info("由于领导指示的经费是:" + runtimeService.getVariable(e2.getId(), "money") + ",所以你可以省内游!" ); //推动流程流转 runtimeService.signal(e2.getId()); } //检查结束状态 ProcessInstance pInstance = runtimeService .createProcessInstanceQuery() .processInstanceId(processInstanceId) .singleResult(); Assert.assertNull(pInstance); logger.info("判断分支结点流程成功执行!"); }
View Code
四、运行结果
[INFO][2015-12-02 14:39:58,335][com.mcs.activiti.test.TestExclusiveGateway]processInstanceId:170001
[INFO][2015-12-02 14:39:58,641][com.mcs.activiti.test.TestExclusiveGateway]领导批示的旅游经费是: 11500.0
[INFO][2015-12-02 14:39:58,642][com.mcs.activiti.test.TestExclusiveGateway]executionId: 170001
[INFO][2015-12-02 14:39:58,816][com.mcs.activiti.test.TestExclusiveGateway]由于领导指示的经费是:11500.0,所以你可以国外游!
[INFO][2015-12-02 14:39:58,914][com.mcs.activiti.test.TestExclusiveGateway]判断分支结点流程成功执行!
相关文章推荐
- Jprofiler监控工具(内存泄漏)
- 修改apache2的监听端口
- App图标适配
- “一致性哈希即Consistent Hashing” 和 “libconhash” 的学习感悟
- Linux-debian5,忘记root密码的解决办法
- linker command failed with exit code 1 (use -v to see
- LeetCode(260) Single Number III
- WEB前端规范
- 单机静默安装GI软件并创建ASM实例和ASM磁盘组
- [css]我要用css画幅画(六)
- LeetCode(260) Single Number III
- 皆大欢喜的加薪
- NAS备份, NDMP
- 皆大欢喜的加薪
- 皆大欢喜的加薪
- 皆大欢喜的加薪
- 皆大欢喜的加薪
- 皆大欢喜的加薪
- 皆大欢喜的加薪
- 皆大欢喜的加薪