找回密码
 立即注册

QQ登录

只需一步,快速开始

TSGXDZ

金牌服务用户

60

主题

205

帖子

1085

积分

金牌服务用户

积分
1085
TSGXDZ
金牌服务用户   /  发表于:2022-7-12 17:31  /   查看:3509  /  回复:9
1金币
本帖最后由 Chelsey.Wang 于 2022-7-15 14:09 编辑

在复杂工作流流程中,如何在下游流程未办理的前提下,提交人随时撤回已办理的流程,进行修改。

经测试,好像回退和调度的任务ID需为待办理的任务的ID。使用已处理中的任务ID会提示已经处理。

如果一个填报节点后多个审批节点,如果想撤回填报修改内容后再次提交流程如何操作。
麻烦大神给个demo

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

最佳答案

查看完整内容

我看了下你的DEMO 首先有几个问题,你的任务详情页面不知道出于什么原因,嵌入的子页面中的图文列表的内容丢失了,可能是你在制作demo文件的时候出现了问题 我用一个新的DEMO来演示下工作流撤回的逻辑 我先解释两个概念 全部任务视图指的是所有的流程任务,包括目前要处理的流程任务+已处理的流程任务 运行任务视图指的是当前正在流转的流程任务 我们可以通过活字格的服务端命令去关联流程任务,这时的管理流程任务,指 ...

9 个回复

倒序浏览
最佳答案
最佳答案
Eric.Liang讲师达人认证 悬赏达人认证 活字格认证
超级版主   /  发表于:2022-7-12 17:31:13
来自 4#
我看了下你的DEMO
首先有几个问题,你的任务详情页面不知道出于什么原因,嵌入的子页面中的图文列表的内容丢失了,可能是你在制作demo文件的时候出现了问题

我用一个新的DEMO来演示下工作流撤回的逻辑
我先解释两个概念
全部任务视图指的是所有的流程任务,包括目前要处理的流程任务+已处理的流程任务
运行任务视图指的是当前正在流转的流程任务

我们可以通过活字格的服务端命令去关联流程任务,这时的管理流程任务,指的是管理的运行任务,提供的需要是运行任务的ID,并不是全部任务的ID
基于这个逻辑,工作流的撤回可以这么实现

DEMO中有两个用户A和Administrator,可以使用A用户发起流程

1.首先是工作流的设计


2.在已办页面的全部运行任务表格中添加撤回按钮,此时,只需要传递流程实例ID即可,使用流程实例ID获取需要管理的流程任务ID和上一环节名称都放到服务端命令来处理,原因是因为我们的工作流视图是有一定的数据权限的,前端页面端如果没有权限,是不能在前端进行数据读取的,这样做也是为了保证数据的安全性。


3.流程撤回的服务端命令如下:
先根据流程实例ID,去全部运行视图中获取对应的上一环节的节点名称和负责人,查询行数为1行,排序方式使用结束时间进行倒序排序

如果上一环节处理人不是当前登录用户,返回异常信息到前端页面中

如果满足了上一环节处理人=当前登录用户,使用流程实例ID获取对应的运行任务视图中的任务ID,并使用管理流程任务进行调度即可,调度的操作名称可以设置为撤回


前端撤回按钮根据服务端命令的返回值,进行提醒,如果异常,提示异常信息即可


工程文件见附件,可以使用A用户发起流程测试下


本帖子中包含更多资源

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

x
回复 使用道具 举报
Chelsey.Wang讲师达人认证 悬赏达人认证 活字格认证
论坛元老   /  发表于:2022-7-12 17:50:19
2#
您好,这个问题我们需要花时间调查一下,有结果后会继续在本贴中跟进~
回复 使用道具 举报
夏雪冬阳
论坛元老   /  发表于:2022-7-12 20:12:04
3#
提交后,下一节点末处理前撤回的功能也是刚需
回复 使用道具 举报
小侠米
论坛元老   /  发表于:2022-7-13 08:48:13
5#
Eric.Liang 发表于 2022-7-12 21:00
我看了下你的DEMO
首先有几个问题,你的任务详情页面不知道出于什么原因,嵌入的子页面中的图文列表的内容 ...

这就是回退 功能,本身就有,不同的是回退 是要下一个审批人才能操作,这里是希望当前已处理者可以操作
这个 回退 可以做成一个命令插件吧
回复 使用道具 举报
Eric.Liang讲师达人认证 悬赏达人认证 活字格认证
超级版主   /  发表于:2022-7-13 09:44:25
6#
小侠米 发表于 2022-7-13 08:48
这就是回退 功能,本身就有,不同的是回退 是要下一个审批人才能操作,这里是希望当前已处理者可以操作
...

这个目前没有现成的功能,可能需要通过我的这种实现方式来做,不过我们也会考虑看后续是否可以把这个撤回的功能内置
回复 使用道具 举报
Chelsey.Wang讲师达人认证 悬赏达人认证 活字格认证
论坛元老   /  发表于:2022-7-13 10:03:51
7#
感谢大佬的支持!
如果您的问题已解决,可以设置最佳答案给有帮助到你的回复;
如果您的问题还未解决,欢迎跟帖补充;
如果您有新的问题,也欢迎创建新的求助帖。
回复 使用道具 举报
fanhuayimeng
论坛元老   /  发表于:2022-7-13 10:08:01
8#
学习到了
回复 使用道具 举报
TSGXDZ
金牌服务用户   /  发表于:2022-7-13 10:08:35
9#
当前demo只能实现简单的单一流程的撤回,如果提交后的节点为会签等会产生多个待办任务的话,用这个方法就不能撤回。比如工作流提交后如图,有两个人会签。
点撤回的话会提示如图,无法撤回

尝试在现有服务端命令的基础上加了一个循环,循环执行调度取到的所有任务ID,但是撤回的时候提示

看审批记录貌似是正确的。不知道这样对不对,会不会有异常,该如何实现这个功能或优化。



本帖子中包含更多资源

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

x
回复 使用道具 举报
Eric.Liang讲师达人认证 悬赏达人认证 活字格认证
超级版主   /  发表于:2022-7-13 11:38:25
10#
TSGXDZ 发表于 2022-7-13 10:08
当前demo只能实现简单的单一流程的撤回,如果提交后的节点为会签等会产生多个待办任务的话,用这个方法就不 ...

管理流程任务中可以对运行时任务进行调度操作,如果当前节点是一个会签节点,有多个运行时任务,此时调度命令只需要调度其中一个进行中任务,其他任务会被整体取消基于这个策略,实现如下:
1.查询运行时任务ID,只需要查第一行



2.进行调度即可


3.调度完成后全部任务视图内容如下:


DEMO见附件,使用A用户发起流程2,填单完成后B,C用户会收到待办

本帖子中包含更多资源

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

x
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部