找回密码
 立即注册

QQ登录

只需一步,快速开始

zhangsheng

中级会员

50

主题

206

帖子

636

积分

中级会员

积分
636
zhangsheng
中级会员   /  发表于:2024-3-12 10:22  /   查看:4702  /  回复:26
本帖最后由 zhangsheng 于 2024-3-12 11:09 编辑

老师好:

       取回与回退,区别在于发起节点不同,实质都是对已经提交的某个任务释放。
       审批记录视图中,对于取回操作,被取回的任务会保留提交记录,再增加一条该任务的取回记录;对退回,上级被回退的任务则只有一条提交记录。
       严格区分的话,回退与取回的不同在于:取回只改变了一个任务的状态,回退改变了两个任务(本办理任务,与上级完成任务)的状态。目前回退在审批视图中的处理,只增加了一条本任务的记录,缺少对上级任务变更状态的对应记录。
       我的个人理解:回退=本任务回退方式的提交+上级已提交任务的取回。
       仅从暴露的访问方式分析,目前取回的处理更合理;回退如果只增加一条记录,对于上级任务审批表就没有了独立意义(全任务表修改也可以)。
       目前机制无法应对的问题就是:回退后,上级任务再流程表中只有提交痕迹,因为回退被取回的过程,在全任务和审批表中都无记录,系统在无法剔除这种情形的情况下,用户仍有可能对该任务尝试取回,我目前是借助自建表进行规避:
              
       但上述情形会让用户非常迷惑:显示提交的,究竟是不是提交,还不一定。
       最节省服务器资源的方式就是这个任务不应该出现在用户可取回的视野内。
       不清楚内部机制是否有其它原因,请问上述机制未来是否会合并保留一种?我要是仿照取回,在回退时往ACT_HI_COMMENT表添加一条记录,是否可行?




本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x

26 个回复

倒序浏览
Joe.xu讲师达人认证 悬赏达人认证 活字格认证
超级版主   /  发表于:2024-3-12 18:38:14
沙发
感谢楼主的详细反馈,我们这边先验证一下目前版本取回和回退的异同,同时也请楼主补充一下背景,为什么需要判断是取回还是回退,以便于我们评估此需求
回复 使用道具 举报
zhangsheng
中级会员   /  发表于:2024-3-12 22:32:12
板凳
版主,我们以“起始->填单->审批->结束”流程为例,假设现在填单已经提交,审批处于等待办理。


取回,只能对已经提交的任务取回,上述情形只能对填单取回;取回的结果是审批重新回到等待办理;
回退,只能对运行的任务回退,上述情形只能对审批任务回退;回退的结果也是审批重新回到办理;

上述过程,二者的结果相同,但是操作的节点不同,所以权限就会不同。

取回是本节点提交人的主动撤回,对于提交人是自发性;
回退是下节点待办人的驳斥退回,对于提交人时被动性;

取回适用场景比回退广泛的多,频次也高。但是回退也有自己的特别适用地方,比如下面用于流程锁定:

适9.0.103.1流程复活后次末节点任务不能取回
https://gcdn.grapecity.com.cn/showtopic-202778-1-1.html
(出处: 葡萄城开发者社区)


当然,也可以在审批节点,操作填单任务的取回,但是取回完毕后本审批环节就一同被取回了,用户接下来只能关闭页面,不符合常规逻辑。

取回与回退都应该保留,目前版本回退在审批表中缺乏记录。
回复 使用道具 举报
Joe.xu讲师达人认证 悬赏达人认证 活字格认证
超级版主   /  发表于:2024-3-13 09:29:17
地板
我这边检查了测试了一下,简单的流程如下



针对于取回操作审批记录如下

针对于回退操作


取回和回退都加了两条任务,一个是对当前节点的操作,一个是对回退/取回之后的节点任务重新创建,
楼主说的少了记录是指少了什么呢


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复 使用道具 举报
zhangsheng
中级会员   /  发表于:2024-3-13 09:59:52
5#
本帖最后由 zhangsheng 于 2024-3-13 10:07 编辑
Joe.xu 发表于 2024-3-13 09:29
我这边检查了测试了一下,简单的流程如下

取回退回在审批表中应该都包含三部分

取回:本节点完成任务取回+后序正在办理任务的删除/结束+新任务正在办理
退回:本节点任务回退+前序任务的取回+新任务正在办理

现在都只有两部分记录
取回没有“后序正在办理任务的删除/结束”这一部分,目前没发现有什么影响;
回退没有“前序任务的取回”这一部分,这个有影响。对于系统,不能分辨前序任务是否已被取回。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复 使用道具 举报
Joe.xu讲师达人认证 悬赏达人认证 活字格认证
超级版主   /  发表于:2024-3-13 17:53:18
6#
想了半天还是不太理解,
退回:本节点任务回退+前序任务的取回+新任务正在办理

这个前序任务的取回是指什么,回退不应该就是本节点任务回退+新任务正在办理吗
能就一个实际的例子讲一下吗,不然担心理解的不到位,内部推进错了
回复 使用道具 举报
zhangsheng
中级会员   /  发表于:2024-3-13 22:13:00
7#
回退,本任务回退+上级节点新任务办理,还有上级节点原来完成任务的取回(系统内部如何处理并不清楚,先暂用“取回”指代)。要不上级节点老任务完成+新任务办理,还都是对应同一个上上节点,就逻辑错误了。上级节点完成任务的取回,这个过程没有审批记录,与其它正常提交未取回的任务状态混同了。
回复 使用道具 举报
experdot
高级会员   /  发表于:2024-3-14 09:50:21
8#
本帖最后由 experdot 于 2024-3-14 09:55 编辑

取回和回退对审批记录视图的影响是完全相同的,
1. 都会导致“审批记录视图”新增一条记录。
2. “审批记录视图”中的取回操作记录,其关联的任务ID是填单节点的任务
3. “审批记录视图”中的回退操作记录,其关联的任务ID是审批节点的任务



本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复 使用道具 举报
Grayson.Shang活字格认证 Wyn认证
超级版主   /  发表于:2024-3-14 11:40:14
9#
感谢大佬支持,张总,咱们这个讨论的这个问题是想要了解取回和审批的区别。
其实就我的理解,在实现原理上两者的区别其实并不大,和楼上大佬所说的差不多,其实就是在审批记录中,会记录这个操作是谁发起的,而结果是一样的。

可能主要区别是,回退是下一个节点发出的,操作的也是自身的节点,所以操作不受限制,而取回本身操作是其他的节点,不是本身的节点,所以应该会受到限制。

不过我想了解一下,咱们对这个问题的关注的原因是什么,是有什么场景,需要实现,而回退和取回对咱们功能的实现,有着比较大的影响。
回复 使用道具 举报
zhangsheng
中级会员   /  发表于:2024-3-14 20:08:35
10#
目前现实的问题就是:回退后被取消的上节点完成任务,在审批表里和没被取消的完成任务混在一起,所以用户在页面对它仍有操作取回的权利。只有点击取回后服务端返回报错,才知道这个任务不能取回。
操作过的用户知道,和系统判断出来知道,是两回事啊。
回复 使用道具 举报
123下一页
您需要登录后才可以回帖 登录 | 立即注册
返回顶部