Java工作流程引擎系统的退回规则 专题说明
概述
说明:流程引擎的退回与发送,分别是前进与后退,它是流程引擎的基础功能操作,流程的退回根据不同的应用场景,也是需要不同的方式来控制,我们把这些方式叫做规则处理。
退回工作的场景相对复杂,由于与审核组件,表单联系在一起为了能适用更多的应用场景,少写代码,所有请仔细约定本文章关于退回的设置。
退回窗口页面:
首先选择要退回的节点,然后填写退回原因,最后点击退回方式,完成退回工作。
被退回人打开退回的工作查看页面:
被退回人,可以从待办里打开工作,首先弹出的是退回信息。
退回规则设置
退回规则在节点按钮标签栏目中的退回标签设置,如下图:
不能退回:当前节点不能执行退回功能,当前节点的操作人员就不能看到退回按钮。
只能退回上一个节点:只能退回上一个节点,从那里发送来的,就退回到那里去。
可以退回以前任意节点:不限制退回的节点,但是退回的节点必须是当前节点以前的节点。
可退回指定的节点:退回指定的节点,此功能需要在流程属性中的可退回的节点中设置它。
总结:
1,根据实际业务需求,设置不同的退回方式。
2, 配合退回前、退回后的事件完成业务的可逆的操作。
退回的消息处理
1.执行退回后,系统都会向执行人发送消息,发送对象仅限于上一节点的执行人员,这样上被退回的点上的工作人员就有一个待办工作,如果您集成了ccim它就会自动发一个消息提醒。
2.退回的动作写入WF_Track中,流程轨迹中就能很好的反应出来。
3.被退回的人在进入当前工作时,第一次会有消息提示。
CCBPM如何处理流程退回过程的数据的完整性?
流程在退回时,有一段流程数据就是从当前点到退回点的所做的工作,这部分节点的数据如何处理成为了我们要探讨与取舍的难点。
以请假流程为例,申请人发起,部门经理审批,总经理审批,人力资源归档。如果总经理退回到第一个点,可以解释为,部门经理做的无效的工作,此部分工作需要删除,在3.0以前的版本,CCBPM都是这样的处理的,这样的解释也是用户所接受的。
但是在其它的流程就不能这样解释了,因为他需要保留历史痕迹,并且在退回后有如下可能要发生。
1, 退回到指定的点后,发起人删除流程。
2, 退回到退回节点后,发起人修改表单后发送,按原节点发回来。
3, 退回到退回节点后,发起人修改表单后发送,经历与其它的路线步骤到当前点。
4, 退回到退回节点后,发起人修改表单后发送,该走其它的路线不经当前点。
基于如上可能性的发生CCBPM,做了如下处理。
1, 退回阶段流程数据写入txt 文件里,放在D:\ccflow\CCFlow\DataUser\ReturnLog
2, 增加了流程报告与节点的焦点字段功能,系统把每一步骤的操作都记到日志表里了,通过焦点字段的配合,可以让操作员方便明晰的看到轨迹。
CCBPM6.0通过如上两个方法解决退回数据的完整性问题。
退回并原路返回
与节点属性中的[是否可以退回并原路返回?] 配合使用
应用场景:一个流程走过了ABCDEFG几个节点,在G节点上发现要退回给B节点上去,还期望B节点的人员完成后直接发送给G节点上来,这种应用场景就是是否可以在退回后原路返回。如果是直接退回并不原路返回,那么CCBPM将会删除退回点与退回到点中间的数据,否则就不删除它。
单节点退回规则
单节点退回规则,是对可退回的节点仅仅有一个有效。
操作员想达到点击退回按钮,直接可以退回,不需要弹出退回窗口了。
这种工作模式下,退回的意见有两个填充模式,退回信息的字段,与审核组件填写的意见。
如果选择【按照退回信息填写字段作为退回意见直接退回】您就需要在退回信息填写字段属性里,填写这个字段名。
如果选择【按照审核组件填写字段作为退回意见直接退回】,您就需要在当前节点表单里,启动审核组件功能。
退回信息填写字段
用户经常会在审批意见的字段中填写意见然后点退回按钮,审批意见就是该操作员的审核意见,这个时候CCBPM需要把审核意见带入退回窗口,这个字段就是退回信息填写字段。
在demo的第二个节点,我们看看退回的效果,我们先看看测试效果。
点退回,CCBPM就会把审核意见放到退回的窗口里面
被退回后信息提示:在退回成功后,用于个性化的提示被退回的信息,支持ccbpm表达式。
单节点退回规则:
谓的单节点退回规则是指按照节点的设置的退回规则,被退回的节点只有一个节点的时候才能适用此规则。
启用此规则的时候,用户点击退回按钮,系统就会直接弹出退回信息,并执行了退回。
这种模式下的退回,是根据设置的退回意见规则填充退回信息,如果设置[退回信息填写字段]来作为退回意见,就要在该[退回信息填写字段]文本框里填写该字段的名字。
如果设置了按审核组件的意见做为退回信息直接退回,对于当前节点启用了审核组件有效。
Java工作流程引擎系统的退回规则 专题说明的更多相关文章
- Java开发学习(二十三)----SpringMVC入门案例、工作流程解析及设置bean加载控制
一.SpringMVC概述 SpringMVC是隶属于Spring框架的一部分,主要是用来进行Web开发,是对Servlet进行了封装.SpringMVC是处于Web层的框架,所以其主要的作用就是用来 ...
- Java Spring MVC工作流程
本文是对 SpringMVC 工作流程的总结,自己一定要可以用语言描述. 名词解释: DispatcherServlet:前端控制器,是 SpringMVC 工作流程的中心,负责调用其他组件,在系统启 ...
- Java框架之SpringMVC 05-拦截器-异常映射-Spring工作流程
SpringMVC 拦截器 Spring MVC也可以使用拦截器对请求进行拦截处理,可以自定义拦截器来实现特定的功能,自定义的拦截器可以实现HandlerInterceptor接口中的三个方法,也可以 ...
- 【Java面试】介绍下Spring IoC的工作流程
Hi,我是Mic 一个工作了4年的粉丝,在面试的时候遇到一个这样的问题. "介绍一下Spring IOC的工作流程" 他说回答得不是很好,希望我能帮他梳理一下. 关于这个问题,我们 ...
- Java开发学习(十五)----AOP入门案例及其工作流程解析
一.AOP简介 1.1 什么是AOP AOP(Aspect Oriented Programming)面向切面编程,一种编程范式,指导开发者如何组织程序结构. OOP(Object Oriented ...
- RDIFramework.NET ━ .NET快速信息化系统开发框架 ━ 工作流程组件WinForm业务平台
RDIFramework.NET ━ .NET快速信息化系统开发框架 工作流程组件WinForm业务平台 接上篇: RDIFramework.NET ━ .NET快速信息化系统开发框架 ━ 工作流程组 ...
- 前端发展态势 && 前端工作流程个人浅析
于在未开启cleartype的情况下,一些中文字体在非偶数字号下的显示效果欠佳,所以一般建议使用12.14.16.18.22px等偶数字号.也就 是对某个分辨率选择离它最近的偶数字号.例如:屏幕横向分 ...
- Cookie&Seesion会话 共享数据 工作流程 持久化 Servlet三个作用域 会话机制
Day37 Cookie&Seesion会话 1.1.1 什么是cookie 当用户通过浏览器访问Web服务器时,服务器会给客户端发送一些信息,这些信息都保存在Cookie中.这样,当该浏览器 ...
- SpringMVC-DispatcherServlet工作流程及web.xml配置
工作流程: Web中,无非是请求和响应: 在SpringMVC中,请求的第一站是DispatcherServlet,充当前端控制器角色: DispatcherServlet会查询一个或多个处理器映射( ...
随机推荐
- Go相关面试题目总结(日常更新)
1.go的深拷贝与浅拷贝 深拷贝 会赋值全部的内容 内容一样但是地址不一样 修改任何一个后地址不一样 内容也会一样 changeName(h1)对象传到函数里面也是深拷贝 b := a 这是深拷贝 会 ...
- js 中的yield
yield是什么 yield是ES6的新关键字,使生成器函数执行暂停,yield关键字后面的表达式的值返回给生成器的调用者.它可以被认为是一个基于生成器的版本的return关键字. yield关键字实 ...
- ShardingJDBC的基本配置和使用
一.ShardingSphere介绍 ShardingSphere是一套开源的分布式数据库中间件解决方案组成的生态圈,它由Sharding-JDBC.Sharding-Proxy和Sharding-S ...
- vue中的生命周期事件和钩子函数
vue实例有一个完整的生命周期,也就是从开始创建.初始化数据.编译模板.挂载Dom.渲染->更新->渲染.卸载等一系列过程,我们称这是vue的生命周期.通俗的将就是vue实例从创建到销毁的 ...
- 解决 node-sass 安装失败
在项目下新建.npmrc文件内容如下: sass_binary_site=https://npm.taobao.org/mirrors/node-sass/ phantomjs_cdnurl=http ...
- PTA数据结构与算法题目集(中文) 7-26
PTA数据结构与算法题目集(中文) 7-26 7-26 Windows消息队列 (25 分) 消息队列是Windows系统的基础.对于每个进程,系统维护一个消息队列.如果在进程中有特定事件发生, ...
- maven聚合与继承笔记
maven聚合 聚合的目的是为了快速构建项目,当我们有几个maven模块,想要一次性构建,而不是到每个模块下面去执行maven命令,这时候就需要使用maven聚合(或者称为多模块). 使用聚合的时候, ...
- 以太坊代币,USDT归集流程图
1.用户充值 600 代币 (网站小助手会及时监听到用户的充值信息,并回调给用户填写的URL地址) 2.会员转账600代币,属于大额转账,开始触发系统的自动汇集程序 注:这里系统检测到会员的地址并没有 ...
- MyBatis(五):分页
本文是按照狂神说的教学视频学习的笔记,强力推荐,教学深入浅出一遍就懂!b站搜索狂神说或点击下面链接 https://space.bilibili.com/95256449?spm_id_from=33 ...
- 一天学一个Linux命令:第一天 ls
文章更新于:2020-03-02 注:本文参照 man ls 手册,并给出使用样例. 文章目录 一.命令之`ls` 1.名字及介绍 2.语法格式 3.输出内容示例 4.参数 二.命令实践 1.`ls ...