BPM驳回的优化设计

一、批量审批的概念

1.1什么是批量审批

即相同流程的同一节点(非会签),在审批人通过统一表单填写审批意见后,批量办理当前任务,并将流程状态流向下一节点(或结束)。

所有下一步节点均相同,且下一步审批人亦相同。下一步审批人通过批量任务的任一任务取得,且支持重新选择。

批量操作全部成功,或全部失败。

对于表单页面在打开后,使用js更新表单数据的,不得使用批量审批。

涉及到子表,且子表的数据用于流程运转的控制,无法使用批量审批。

能否使用批量审批,在流程定义和流程配置-批量审批配置中由系统管理员和流程管理员进行定义。

二、实现方案

2.1.简单方案

简单方案不考虑表单,亦不对表单信息做更新。只是通过系统取到下一步节点名称及下一步审批人(下一步审批人支持用户自由选择),并生成下一节点的任务,并将任务指派给下一步审批人。本方案适合简单的线性流程,即只有提交和驳回,且不执行配置的前后置任务。目前提案专利的批量审批即使用简单方案实现,但由于在模块中实现,在不同的节点将批量审批时的需必填的字段先行在审批页面组装,本步骤审批人填写必填字段后,点击审批,直接生成新任务。

2.2.完整方案

完整方案需考虑表单的更新,并能够支持使用除isRe流程变量以外的字段控制流程走向。需支持前后置的执行。

在FlowRunTime的组装中,除processDefineId,taskId,processExecutionId,formDeinfeId,tableDefineId,pkValue外,FomrData即表单字段名与值的对应是关键,FormData在页面打开后使用js搜集数据,并组织对应关系,然后发给后台。由于我们的批量审批不考虑页面打开后,通过js控制的字段更新,即字段更新只允许通过人工参与填写的方式实现,所以先通过tableDefineId和pkValue取得对应的表单数据;

根据ColumnDeinfe、formDefineId、formVersionId,节点名称和表单权限定义得到本步骤必填的字段,根据columnDefine中的控制类型,即是日期、字符、下拉菜单还是textarea等组装成一个新的表单弹框,审批人填写后,并使得系统筛选出来的默认审批人或选择下一步审批人,将这一部分表单数据和数据库中查询得到的数据数据,共同组装成FormData;

多条FormData和taskId、pkValue、processExecutionId以及共同的流程、表单定义id、共同的下一节点名称和下一步审批人,一起传入并循环调用doNextStep,list中的所有运行,即一次批量审批在一个事务中,如有一个运行出现异常或执行失败,所以操作全部回滚至原来的状态。

三、两种方案的比较

简单方案实现较简单,但不支持前后置任务和表单的更新,适用简单的线性流程;

完整方案考虑到了表单的更新和前后置任务的执行,实际是在未打开页面前就将历史表单数据取出,根据表单权限将必填字段由批量审批人统一填写后,再循环单一审批逻辑,达到批量审批的效果。

两种方案目前均不支持下一步节点或下一步审批人各不相同的情况。

时间: 2024-11-08 23:34:21

BPM驳回的优化设计的相关文章

BPM实例分享:领导不通过某流程时,如何即可结束流程并告知发起人驳回通知

在很多业务场景中,你是否碰到这样的流程疑问: 领导不通过某审批单时,如何实现即刻结束流程并告知发起人该审批被驳回的通知?   鉴于近期有H3 BPM 10.0的用户向小编咨询这个问题, 且一些业务场景中一般都会涉及此流程, 小编特此整理此文并与大家共同分享! 系统版本:H3 BPM 10.0 用户:结束流程是指直接跳过中间流程直接结束?还是指该流程已作废? 回答:是中间节点全部跳过,直接结束流程.流程作废和流程结束是两个流程状态,不能混淆了. 用户:在哪个地方.如何设置流程结束通知? 我在属性-

H3 BPM接口说明文档

H3 BPM接口说明文档 二〇一七年四月 目 录 1 引擎接口唯一入口:OThinker.H3.IEngine 3 1.1 构造Engine对象 3 1.2 属性 4 2 类:OThinker.H3.Acl.IBizRuleAclManager 6 3 类:OThinker.H3.Acl.IFunctionAclManager 8 4 类:OThinker.H3.Acl.ISystemOrgAclManager 12 5 类:OThinker.H3.Acl.ISystemAclManager 1

bpm功能指标

一级模块 二级模块 三级模块 说明 门户 模块化首页 模块化首页 首页内容模块化组成,支持在线方式动态调整门户内容 模板管理 门户模板 首页样式模板化,可以配置模板并且随意切换首页应用模板  部件管理 内置部件 内置丰富的部件模板,包含新闻部件.文档部件.内容部件.ASCX部件.快速链接部件等 扩展部件 可自定义扩展部件 子门户 部门门户 允许设置部门门户,与主门户一样具备可配置功能 权限管理 门户权限 允许各部门建立自己的门户并且授权 部件权限 门户部件内容权限管理,允许不同用户登录同一门户查

移动BPM解决方案

畅通开放  无边界的渠道 效率倍增  更高效的处理方式 即时共享  更强大的决策能力 各种终端应用 帮您实现:新任务通知.任务预警.催办.任务审批.任何数据汇总提醒消息通知...... · 短信 · 客户端:苹果(iPhone).安卓(Android) · 平板:HTML5设计,无任何插件,完全满足平板电脑办公的需求 企业微信号 基于微信企业号的解决方案,用户只需关注您的企业号,即可享受移动办公带来的乐趣 · 无需安装 微信移动办公 · 团队协作 任务无缝对接 · 删繁就简 让工作更简单 · 随

H3 BPM V10.0 产品更新日志

一.功能 1.H3 BPM产品全新推出J2EE版本,支持Linux环境部署 2.移动端支持与钉钉集成:组织机构同步.消息推送.钉钉免登BPM 3.简化了原有的组织结构 现有结构:组织.用户.角色.组 原有结构:组织.用户.职务.群组.用户组.岗位.编制 4.系统锁定功能:用户可以在离开时进行系统锁定,重新登录后,保留原操作页面 5.虚拟账户功能:实现了管理人员对企业中跨部门管理.一人对应多部门职位的场景需求的良好支持 6.系统内置账户功能:内置账户用户,在进行AD同步时,如果不在AD域中,不会被

BPM实例方案分享:表单子表自动填入数据

软件环境:H3 BPM 9.2.7 业务需求: 现在想要实现一个效果:在打开表单.选择合同阶段后能够读取后台数据,将多行数据自动填入下方的子表. 本文将用三种方法实现自动填入子表的功能. 方法一 前台使用如下几个函数就可以实现了,在合同的onchange事件获取数据以后处理. 复制代码 //获取子表 var dtl = $.MvcSheetUI.GetElement("子表名").SheetGridView(); //增加子表行 dtl.addbtn.click();  或 dtl._

如何解决“BPM导入组织架构出现问题导致系统无法登陆”

遇到问题如图所示↓ 进入H3系统登陆页面. 点击登陆后显示如图错误. 跟踪后显示参数为空. 问题描述:通过web service方式进行组织机构导入,只导入ObjectID和Name等共通的6个字段.导入成功后后台只显示部门,无法显示人员,当重启集成引擎后,则无法登陆,出现上述问题. 出现问题原因:系统部门表"OT_OrganizationUnit"和用户表"OT_User"中的ObjectID字段必须为36位,本次问题原因就是BPM系统使用了其他系统的Object

【H3 BPM工作流程管理产品小故事】第二篇 文本默认值

Boss感觉方便了很多,然而采购部采购员阿海却还是有点意见,他跑来找小明. 阿海:现在申请都是我在提交,申请人和申请部门能不能不要每次都要填写啊,好麻烦的.小明:没问题,这个简单.小明在表单中把申请人.申请部门的"DefaultValue"属性分别设为"{Originator.UserName}"."{Originator.OUName}",保存然后预览了一下效果,果然OK,阿海满意而归. 默认值属性 文章来源于:H3 BPM社区 http://

【H3 BPM工作流程管理产品小故事】第三篇 参与者与数据加载

这才过了两天,阿海又来了. 阿海:公司决定改进管理方式,以后物资申请的申请人和申请部门要写具体使用人的名字和部门了.小明:不是要让我改回去吧?阿海:那太麻烦了,你能不能把申请人改成选择,选好人自动加载对应的部门信息?小明:我昨天看了教程,申请人换成"参与者(单人)"就是了,但是自动加载--小明还是决定去找大毛.大毛:在"参与者(单人)"控件中,有一个属性"MappingControls",可以再其中设置属性映射关系,系统会自动按照映射,将属性赋值