拆解钉钉流程审批功能:卡片式配置的审批流是怎样设计的?

news2025/1/13 8:05:14

有个客户要求我们做个定制开发,客户觉得钉钉的操作体验比较不错(用户使用的惯性),要求我们要实现钉钉的自动配置审批流程,不过幸不辱命,对比个钉钉的流程审批、表单配置的相关功能,做了个Java私有化的版本。

钉钉的流程审批操作确实相对于activity、flowable 更加贴近于业务人员,后面两个常用的流程引擎更加适合于技术人员。

如上图对比,其中,左侧的卡片式的流程配置要比右侧传统的流程配置,操作简洁、流程透明,体验好很多。本篇我们详细拆解审批功能,如果你的产品中涉及到业务审批流的,强烈推荐你了解一下卡片式配置的审批流是如何设计的。相信看完这篇后,你会对审批流有非常清晰的认知。

一、审批流基本内容

做审批流程,我们要思考流程审批的几个基础问题:

1、流程从哪里来?发起流程

2、流程到哪里去?流程的路径

3、参与人是谁?参与人员

4、要干什么事?交互的结果

要解决从上面几个问题,我们就需要深刻理解流程,流程包括集中核心能力拼装而成:

1、发起节点;

2、人工执行节点(审核);

3、路由判断节点;

4、自动化业务节点(触发);

分析我们逐一拆解,分析,讲解我们是如何实现仿钉钉审批功能。

二、流程发起

在日常的企业内部的业务过程中,发起流程的场景可以有

1、在用户的工作台里边发起一个流程 ,通过工作台的业务申请入口创建流程(例如,个人用户主动发起费用报销)

2、在业务执行过程中,需要发起流程审批,这种模式需要在数据管理或者列表管理的中,通过按钮/表单去触发流程 (例如,在创建入库单的时候,需要发起流程审批)

3、系统内部或者外部系统达到某种条件的时候,系统自动创建审批流程,这种模式下需要支持接口创建流程的能力 (例如,设备故障,自动创建一个故障处理的故障单)

这种我们构建了逻辑引擎,在逻辑引擎中实现了 通过接口创建工作流的功能

三、人工审批节点

人工节点审批包括:包括了环节名称、环节关联的表单、环节处理的人员(关联组织/公司/团队/角色/个人)、审批的时限、业务触发按钮等等,如下图所示。

其中,要支持自动审批、审批后触发的关联业务逻辑等等,如下图所示

审批人的表单,是可以独立设计的,点击设计后会进入表单设计器中

审批表单设计采用了“所见即所得”的拖拽式表单设计器。布局上,左侧是表单控件区、右侧是表单的信息和表单控件的属性设置,中间则是表单预览区。设计表单的时候,用户可以直接从左侧的表单控件区拖拽表单到预览区,然后在右侧设置该字段的属性即可完成一个表单字段的增加。删除表单字段只需要点击选中一个字段后,点击小垃圾桶图标删除即可。

除了审批环节,也可以支持抄送环节:

四、分支节点

分支条件:流程会随着表单的内容(分支条件变量)、发起人的信息不同而经过不同的审批环节,控制流程进入不同审批环节的元素称之为分支条件。举个例子,对于借款这个流程,有些公司会设置1000-5000天以内部门负责人审批即可,超过5000需要更高一级领导审批。

审批的条件可以根据表单的数据进行函数加工,灵活实现各种判断条件

五、在线测试

配套列表与测试功能,可以便捷的完成业务的测试与入口的构建。

六、会签功能

七、触发自动化业务

从人工业务联动自动化处理的业务,通过新增自动化业务节点实现。

八、总结

钉钉作为当下国内移动协同办公的老大,能够满足大部分企业的办公需求,当然在很多场景下,客户需要私有化部署、定制化开发、且成本需要控制的情况下,那么就可以考虑JVS快速开发平台。如果想要获得更多了解,可以在 Gitee上搜索“JVS”。

九、获取开源

  • 开源仓库地址:https://gitee.com/software-minister

  • 管理平台(含管理平台、低代码、数据智仓):https://frame.bctools.cn/

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/379502.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

世界上最流行的编程语言,用户数超过Python,Java,JavaScript,C的总和!

世界上最流行的编程语言是什么? Python? Java? JavaScript? C?都不是,是Excel!外媒估计,全球有12亿人使用微软的Office套件,其中估计有7.5亿人使用Excel!可是Excel不就是能写点儿公式&#x…

华为OD机试题【合并数组】用 C++ 进行编码 (2023.Q1)

最近更新的博客 华为od 2023 | 什么是华为od,od 薪资待遇,od机试题清单华为OD机试真题大全,用 Python 解华为机试题 | 机试宝典【华为OD机试】全流程解析+经验分享,题型分享,防作弊指南华为od机试,独家整理 已参加机试人员的实战技巧文章目录 最近更新的博客使用说明合并数…

计算机组成原理4小时速成:五大组成部分:运算器,控制器,存储器,输入设备输出设备

计算机组成原理4小时速成:五大组成部分:运算器,控制器,存储器,输入设备输出设备 2022找工作是学历、能力和运气的超强结合体,遇到寒冬,大厂不招人,可能很多算法学生都得去找开发&am…

BOSHIDA AC-DC电源模块基本原理及常见问题

BOSHIDA三河博电科技 AC-DC电源模块基本原理及常见问题 AC/DC电源模块的基本原理是从交流源中获取电压,然后由整流器转换为直流电压,且输出能量比输入的电压高,从而达到电路输出直流电压、电流的目的。 交流交换器模块由负责控制的设备,整流器,电容器和变压器组成。负责控制的设…

恢复谷歌翻译的究极方法

谷歌翻译为什么会失效,我想各位在去年11月的时候就知道了。可是要怎么解决失效的问题呢?之前我们是通过手动Ping可以连接的ip各位可能觉得麻烦,心里觉得什么档次还要我手动ping就没有可以自动扫描的吗?还别说真的有我最近发现一个…

GVINS论文中关于GNSS的基础知识

1.GNSS发射信号的组成 卫星所发射的信号可分为三个层次:载波(Carrier signal)、伪码(PRN code伪码中的一种)和数据码(Navigation message)。在这三个层次中,伪码和数据码一起先通过调制依附在正弦波形式上的载波,然后卫星将调制后的载波信号…

外贸建站,为什么别人的询盘更多更精准?

大多企业进行外贸建站的目的就是想要获得更多的精准询盘,但是具体该如何做,大多企业都没有方向,要么就是在网上看各种不系统的文章学着操作,要么就找个建站公司做好网站就不管了,而最终结果都不甚理想。那么怎样才能让…

The KINGDOM Software 32-bit导入segy数据

说明 1、软件:The KINGDOM Software 32-bit 2、电脑系统:win10 3、操作:导入segy数据(如果读者没有数据,可使用下面会用到的示例数据) 步骤 1、打开kingdom软件,找到最上面菜单栏的“surve…

php学习笔记 安装XAMPP hbuilder配置

PHP7.0编程 基础配置 Download XAMPP (apachefriends.org) 下载XAMPP,修改端口如图 网站根目录的默认路径:xampp\htdocs。MySQL数据库默认路径:xampp\mysql\data。 XAMPP的默认密码如下。 ●MySQL。User:root;Pas…

项目管理工具dhtmlxGantt甘特图入门教程(十五):从MS项目导入/导出(中)

这篇文章给大家讲解利用dhtmlxGantt导入MS项目。 dhtmlxGantt是用于跨浏览器和跨平台应用程序的功能齐全的Gantt图表,可满足应用程序的所有需求,是完善的甘特图图表库 DhtmlxGantt正版试用下载(qun:764148812)https…

【Java爬取赛事网站】命令行输出(仅供学习)

Java爬取赛事网站 参与社区的问题回答 问题回答这个作业属于哪个课程软件工程-23年春季学期这个作业要求在哪里软件工程实践第二次作业—文件读取这个作业的目标完成对澳大利亚网球公开赛相关数据的收集,并实现一个能够对赛事数据进行统计的控制台程序其他参考文献…

Kafka-Kraft 模式架构部署

Kafka-Kraft 模式架构部署 Kafka网址:https://kafka.apache.org/ PS:因环境原因此文档内端口都有修改! 1.去官网下载二进制包 PS:3.4.0是目前最新的版本!需要jdk1.8及以上版本启动。 [rootk8s-node1 ~]# wget https:/…

Linux下各种锁的理解和使用及总结解决epoll惊群问题(面试常考)

一.锁 锁出现的原因 临界资源是什么: 多线程执行流所共享的资源 锁的作用是什么, 可以做原子操作, 在多线程中针对临界资源的互斥访问... 保证一个时刻只有一个线程可以持有锁对于临界资源做修改操作... 任何一个线程如果需要修改,向临界资源做写入操作都必须持…

如何在 Primavera P6 中使用赢得值/挣值管理

目录 演示案例 如何在Primavera中绘制EVM图? 你是否想过如何在Primavera P6调度工具中应用挣值管理? 事实上,Primavera P6 能够使用挣值管理技术来控制项目进度和绩效,将项目成本与项目进度整合起来 演示案例 我们以一个简单…

JVM方法区详解有这篇就够了

1、方法区在哪里《Java虚拟机规范》中明确说明:“尽管所有的方法区在逻辑上是属于堆的一部分,但一些简单的实现可能不会选择去进行垃圾收集或者进行压缩。”但对于HotSpotJVM而言,方法区还有一个别名叫做Non-Heap(非堆&#xff09…

记录面试问题

以下问题不分先后,按照印象深浅排序,可能一次记录不完成,后面想起来会及时补充,如有不对,恳请各位围观大佬多多指教🙏 印象最深的是一道很简单很简单的题目,我结束面试之后赶紧代码敲敲发现答错…

简易计算器-课后程序(JAVA基础案例教程-黑马程序员编著-第十一章-课后作业)

【案例11-2】 简易计算器 【案例介绍】 1.案例描述 本案例要求利用Java Swing 图形组件开发一个可以进行简单的四则运算的图形化计算器。 2.运行结果 运行结果 【案例分析】 要制作一个计算器,首先要知道它由哪些部分组成,如下图所示: 一…

见山,见路,见天地:OpenHarmony的开源共建攀登

自诞生之日起,OpenHarmony就引起着各方的关注,可谓是盛况空前。但一款开源操作系统的成功,困难不在第一步,而是第一步后面的一万步。那么,踏出开源第一步之后的OpenHarmony,后面的故事如何发展了呢&#xf…

(五十三)大白话基于主键的索引是如何设计的,以及如何根据主键索引查询?

上回我们说了数据页分裂的过程,在你不停的往表里灌入数据的时候,会搞出来一个一个的数据页,如果你的主键不是自增的,他可能会有一个数据行的挪动过程,保证你下一个数据页的主键值都大于上一个数据页的主键值。 在这个…

开启MySQL慢查询以及慢查询日志使用

目录 要开启慢查询,需要关注这几个参数 打开慢查询日志 把日志文件存储在文件中 模拟慢查询 如何寻找并查看慢查询日志 把日志文件存储在表中: 其他关注参数 log_slow_admin_statements Slow_queries 在生产环境中:mysqldumpslow工具分…