PRD-审批流BPM(结合企微审批引擎和结合flowable方案选择)

2023-05-16

前言

流程设计历来都是比较繁琐之事,由于公司急需上线流程化的平台,内部系统迫切需要升级,在无产品经理的情况下,我迎难而上,正如《人人都是产品经理》所言“不是每个人都能以产品经理为业,但在我看来,产品经理是一类人,他们做事的思路与方法可以解决很多实际的生活问题。
只要你能够发现问题并描述清楚,转化为一个需求,进而转化为一个任务,争取到支持,发动起一批人,将这个任务完成,并持续不断以主人翁的心态去跟踪、维护这个产物那么,你就是产品经理。
至少,你已经是自己的产品经理了。这才是“人人都是产品经理”的真谛。

第一次做需求分析、设计、走了很多的弯路,一开始以为用企微审批引擎能节约资源,实际发现会更加浪费资源,且扩展性不强。也调研了像diboot这些成熟的workflow,但阻塞在了收费上,就没再去寻找其他开源替代方案,一心扎到企微流程引擎中无法自拔,浪费了一些资源和时间,以后在这方面要保持警惕,一定要想好,调研好才能开始做。

1、认识审批流

1.1、认识审批流

审批流,是一种工作流,常见于中后台系统,其本质是待审信息的流动方式及决策过程。
即申请者(人或系统)提供待审信息,交由相关审批人进行传递及处理,期间,每个审批者会基于自己的岗位职责与权限分工对待审信息进行核对(检查/确认…)、判断(通过/驳回/转交/挂起…)及协商(反馈意见…),直至抵达最高决策层进行取舍。
image.png

1.2、为什么要创建审批流

合规化:帮助管理者规范团队的运转流程、防范决策失误;引导申请者遵循正确的流程规范,避免违规操作。

1.3、审批流的构成要素

image.png

  • 谁发起审批(申请者):不仅仅指某个用户,也可能是系统或是第三方服务商。
  • 谁来审批(审批者):可能是某个审批群组或是特定的审批人,受限于权限与分工。
  • 按什么规则审批(审批规则):不同权限与分工的审批者按一个或多个审批条件进行审批。
  • 审批什么(待审信息):申请者基于不同的申请事项,按要求提供的信息。
  • 各角色可以干嘛(操作动作):可以是审批操作(通过、驳回…),也可以是流程操作(转交、撤回…)。
  • 怎么告诉各角色(通知方式):即通知申请者、审批者的渠道(短信、电话、邮件、平台消息提醒…)。

1.4、好的审批流要满足什么条件

image.png

  • 信息传达准确:能有效并准确传达审批流的相关信息。
  • 流程操作高效:能提升组织内部的运转效率。
  • 节点可预知:能帮助各角色提前了解审批流程。
  • 历史可回溯:对已结束的审批单据能随时回溯。

2、盘点审批流程

image.png

2.1、归纳角色类型

用户角色角色描述
申请者公司员工(包括中干基层、项目经理、采购、研发等)
审批者专业组长审批专业组组长岗位员工及其审批链条
项目经理审批项目经理岗位员工及其审批链条
部门长审批部门长岗位员工及其审批链条
供应链审批供应链岗位员工及其审批链条
库管审批库房管理岗位员工及其审批链条

2.2、理清任务流程

角色场景任务泳道图.jpg

2.3、挖掘产品功能点

2.3.1、用户旅程地图

用户旅程地图.jpg

2.3.2、产品功能列表

主功能子功能子功能
审批管理发起申请发起审评
我的申请审批列表
我审批的待处理审批列表
已处理审批列表
审批设置提醒设置
模板设置
项目列表发布审批发布审批
任务列表发起审批发起审批
任务详情发起审批发起审批
审批记录审批记录
采购入库发起审批发起审批
采购退库出库发起审批发起审批
其他入库发起审批发起审批
其他出库发起审批发起审批

3、审批流页面设计

3.1、搭建信息架构

信息架构推导脑图

角色权限列表
在这里插入图片描述

4、链接消息通知

发起审批到相应的节点均有企微通知

5、原型设计

5.1、为什么要和企微结合

1、基于目前场景,如若重新设计BPM,是个很大的工程,企微有现成的产品解决方案,我们系统做对接融合即可
2、企微生态相对成熟,可无缝打通联系人和审批,无缝打通网页和APP端,能做到轻松在企微中审批相关任务
3、会涉及到跨部门的审批和企微结合亦方便进行
和企微审批打通,具体流程如下:
0.png
image.png

企微相关开发接口:审批流程引擎

6、企微自建应用开发步骤

6.1、创建企业

一个手机号可以创建多个测试企业用做测试使用

6.2、新建自建应用

image.png

6.3、应用设置

配置可信域名等:
image.png

6.4、获取应用accessToken

image.png

6.5、企微审批引擎相关接口

https://developer.work.weixin.qq.com/document/path/97437
image.png

6.6、整体思路

整体流程

在这里插入图片描述

image.png
创建一个模板均是相同的表单控件,唯一不同的是模板名称、模板id,在管理后台创建完模板后,需要去企微修改流程配置,进行跳转

{
    "template_name": [
        {
            "text": "我的api测试模版2",
            "lang": "zh_CN"
        }
    ],
    "template_content": {
        "controls": [
            {
                "property": {
                    "control": "Text",
                    "id": "Text-01",
                    "title": [
                        {
                            "text": "单据类型",
                            "lang": "zh_CN"
                        }
                    ],
                    "placeholder": [
                        {
                            "text": "请输入单据类型",
                            "lang": "zh_CN"
                        }
                    ],
                    "require": 1,
                    "un_print": 0
                },
                "config": {}
            },
            {
                "property": {
                    "control": "Text",
                    "id": "Text-02",
                    "title": [
                        {
                            "text": "单据名称",
                            "lang": "zh_CN"
                        }
                    ],
                    "placeholder": [
                        {
                            "text": "请输入单据名称",
                            "lang": "zh_CN"
                        }
                    ],
                    "require": 1,
                    "un_print": 0
                },
                "config": {}
            },
            {
                "property": {
                    "control": "Text",
                    "id": "Text-03",
                    "title": [
                        {
                            "text": "单据详情",
                            "lang": "zh_CN"
                        }
                    ],
                    "placeholder": [
                        {
                            "text": "请输入单据详情",
                            "lang": "zh_CN"
                        }
                    ],
                    "require": 1,
                    "un_print": 0
                },
                "config": {}
            },
            {
                "property": {
                    "control": "Text",
                    "id": "Text-04",
                    "title": [
                        {
                            "text": "备注",
                            "lang": "zh_CN"
                        }
                    ],
                    "placeholder": [
                        {
                            "text": "请输入备注",
                            "lang": "zh_CN"
                        }
                    ],
                    "require": 0,
                    "un_print": 0
                },
                "config": {}
            }
        ]
    }
}

image.png
image.png

image.png

如有对模板的修改,需调用修改模板接口,但控件不做修改,接口只修改名称,其余参数和新建保持一致,流程修改还是需要到企微,修改后需要更新对应预览截图
image.png

image.png
传参可如下:
image.png

{
    "template_id": "C4RdAwFWww7vv3oFEPoX1o4B3Mr9VHjzwbjw1Atwh",
    "template_name": [
        {
            "text": "我的api测试模版3",
            "lang": "zh_CN"
        }
    ],
    "template_content": {
        "controls": [
            {
                "property": {
                    "control": "Text",
                    "id": "Text-01",
                    "title": [
                        {
                            "text": "单据类型",
                            "lang": "zh_CN"
                        }
                    ],
                    "placeholder": [
                        {
                            "text": "请输入单据类型",
                            "lang": "zh_CN"
                        }
                    ],
                    "require": 1,
                    "un_print": 0
                },
                "config": {}
            },
            {
                "property": {
                    "control": "Text",
                    "id": "Text-02",
                    "title": [
                        {
                            "text": "单据名称",
                            "lang": "zh_CN"
                        }
                    ],
                    "placeholder": [
                        {
                            "text": "请输入单据名称",
                            "lang": "zh_CN"
                        }
                    ],
                    "require": 1,
                    "un_print": 0
                },
                "config": {}
            },
            {
                "property": {
                    "control": "Text",
                    "id": "Text-03",
                    "title": [
                        {
                            "text": "单据详情",
                            "lang": "zh_CN"
                        }
                    ],
                    "placeholder": [
                        {
                            "text": "请输入单据详情",
                            "lang": "zh_CN"
                        }
                    ],
                    "require": 1,
                    "un_print": 0
                },
                "config": {}
            },
            {
                "property": {
                    "control": "Text",
                    "id": "Text-04",
                    "title": [
                        {
                            "text": "备注",
                            "lang": "zh_CN"
                        }
                    ],
                    "placeholder": [
                        {
                            "text": "请输入备注",
                            "lang": "zh_CN"
                        }
                    ],
                    "require": 0,
                    "un_print": 0
                },
                "config": {}
            }
        ]
    }
}

2、为单据绑定模板
image.png
image.png

3、发起审批
3.1、根据模板id获取模板详情
image.png

3.2、发起审批

{
    "creator_userid": "CangHe",
    "template_id": "C4RdAwDkjzZaWDQn9fAoKogTZEAvaMoX42Lo9qgy6",
    "use_template_approver": 1,
    "apply_data": {
        "contents": [
            {
                "control": "Text",
                "id": "Text-1675996804140",
                "value": {
                    "text": "这是自动抓取的单据类型"
                }
            },
            {
                "control": "Text",
                "id": "Text-1675997969505",
                "value": {
                    "text": "这是自动抓取的单据编码"
                }
            },
            {
                "control": "Text",
                "id": "Text-1675998042838",
                "value": {
                    "text": "这是自动抓取的单据详情"
                }
            }
        ]
    },
    "summary_list": [
        {
            "summary_info": [
                {
                    "text": "单据名称:xxxx",
                    "lang": "zh_CN"
                }
            ]
        },
        {
            "summary_info": [
                {
                    "text": "单据类型:xxxx",
                    "lang": "zh_CN"
                }
            ]
        }
    ]
}

image.png
接口调用成功后,保存单据编号

3.3、更新审批进度
可根据回调单据编号对应更新,点击手动刷新调用获取单据详情接口

7、结合开源flowable自研引擎

经研究发现企微审批接口和审批引擎均有一定的弊端,未能实际满足我们的需求,下面就两种情况的弊端先说明
微审批接口弊端:
1、必须为自建应用
2、表单模板添加超链接,无法用正常浏览器打开,需求中需要能打开内部系统链接
3、建立模板需现在企微上进行操作
4、无法在自己内部系统进行审批
5、审批状态实时要企微回调接口才可获取,内部获取审批详情接口事实性不高
6、开发成本也高,且无法复用内部其他系统,扩展性不强

企微审批引擎:
1、相对审批接口,引擎主要是给第三方应用提供,但只能在企微内部自建应用通过JS-SDK打开,扩展性不强
2、开发成本较高
3、复用性不强
4、内部系统无法直接审批,当审批流过多时,对审批人需要找很久,无法像内部接口一样可以有处理状态的
5、用户体验不好

综合以上调研,自研一套审批引擎对公司来说迫在眉睫
我们调研了很多开源的引擎,发现大部分都是基于flowable引擎开发的,包括:
1、https://www.diboot.com/
workflow整体将表单和流程进行了完美融合,可惜这部分并不开源
image.png
2、http://106.52.168.121:1024/work/create
基于ruoyi和flowable,且开源,对我们来说比较友好
image.png

7.1、我的事务和流程管理

第一期,将plus集成到我们系统,我的事务和流程管理暂不做改动,调整相应交互即可
image.png

7.2、任务审批

添加任务设置-审批设置
image.png
image.png
为任务选择审批流程

新建任务-配置审批
image.png

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

PRD-审批流BPM(结合企微审批引擎和结合flowable方案选择) 的相关文章

  • 基于STM32F407四旋翼无人机---PID算法控制(六)

    基于STM32F407四旋翼无人机 PID算法控制 xff08 六 xff09 PID介绍PID仿真分析 PID介绍 PID介绍 此算法是由P xff08 比例 xff09 I xff08 积分 xff09 和D xff08 微分 xff0
  • 四足机器人(一)----MATLAB simulink对四足机器人物理建模

    四足机器人 xff08 一 xff09 MATLAB simulink对四足机器人物理建模 一 本设计中用的是网上下载的别人已经画好的四足机器狗的3D模型 那么我们就需要将这些3D模型导入到MATLAB的建模中 xff0c 打开MATLAB
  • 四足机器人(二)---运动学逆解和步态规划

    四足机器人 xff08 二 xff09 运动学逆解和步态规划 运动学逆解步态规划MATLAB仿真 运动学逆解 其实运动学分为运动学正解和运动学逆解 xff0c 二者有什么区别呢 xff1f 因为在四足机器人中用的是12个舵机 xff0c 所
  • 四足机器人(三)--- 姿态控制

    四足机器人 xff08 三 xff09 姿态控制 概述姿态表示使用MATLAB实现姿态控制算法效果 概述 四足机器人运动过程中 xff0c 身体部分的姿态会不断地发生变化 假如机器人的足端一直保持与地面接触且相对位置不发生变化 xff0c
  • VSCode+python+opencv搭建过程

    VSCode 43 python 43 opencv搭建过程 python安装VSCode安装安装opencv python安装 首先打开python的官网 www python org xff0c 进入python官网下载页面 xff0c
  • 智能家居之主机---计划筹备

    智能家居之主机 计划筹备 前言绪言前期构思 硬件平台结构平台 前言 绪言 感觉有一年多没发过文章了 xff0c 这一年多太忙了 xff0c 来到新的公司后要学的太多了 xff0c 代码风格 xff0c 架构 xff0c 操作系统 xff0c
  • 智能家居之主机--环境搭建

    智能家居之主机 环境搭建 硬件环境软件环境结构 硬件环境 上节说到硬件平台的搭建 xff0c 之前是在altium designer上面画好的 xff0c 现在要支持国产 xff0c 没办法只能在立创EDA上面重新画了 xff0c 有的人说
  • 智能家居之主机--驱动层搭建

    智能家居之主机 驱动层搭建 bsp 底层驱动bsp gpiobsp adcbsp uartbsp timer 伪调度 bsp 底层驱动 bsp gpio 利用一个config h的配置文件 xff0c 把所有要使用的gpio的属性配置好 x
  • STM32串口自定义数据接收协议

    文章目录 写在前面0 需求1 问题产生1 1 模块 43 上位机实验1 2 电路板串口数据接收实验1 3 问题来了 xff01 2 开始分析2 1 串口数据格式2 2 测一波波形 3 代码分析4 新的问题 xff1a 串口数据累加总结 写在
  • 科普:电池的保护电路

    科普 xff1a 电池的保护电路 http www cnbeta com articles 204504 htm
  • 汇编语言基础知识-寄存器

    汇编语言基础知识 寄存器 寄存器是距离CPU中最近的存储单元 xff0c 对于现代CPU其获取数据的顺序往往是 CPU 61 61 gt 寄存器 61 61 gt 一级缓存 61 61 gt 二级缓存 61 61 gt 三级缓存 61 61
  • ERROR:未定义标识符“cout“、“endl“

    ERROR情况 xff1a 未定义标识符 span class token string 34 cout 34 span 未定义标识符 span class token string 34 endl 34 span 问题原因 xff1a c
  • VSCode格式化快捷键

    Shift 43 Ctrl 43 F
  • Linux内核源代码分析一(Linux0.12)

    Linux内核源代码分析一 xff08 Linux0 12 xff09 Linux 内核主要由 5 个模块构成 xff0c 它们分别是 xff1a 进程调度模块 内存管理模块 文件系统模块 进程间通信模块和网络接口模块 1 引导启动程序 x
  • Qt类继承关系以及所属模块关系一览表

    Qt类关系一览表 高清版下载 xff1a Qt类继承关系以及所属模块关系一览表 更多内容请关注个人博客 xff1a https blog csdn net qq 43148810
  • cartographer主从机rviz订阅地图出错

    参考 xff1a https answers ros org question 261071 rviz client md5sum error ERROR 1563347805 272316618 Client rviz wants top
  • Gooseeker软件使用教程

    因为课程需要使用到Gooseeker软件 xff0c 写个使用教程防止以后忘记 安装好gooseeker软件 xff0c 下图为安装好的界面 xff1a 点击右上方的 MS谋数台 xff0c 弹出如下界面 xff1a 在左上方的网址栏输入想
  • HTTP Auth认证请求(附代理)-代码篇

    2种方式 方式一 xff1a Http请求头上添加Basic Authentication认证 httpPost httpPost addHeader Authorization 34 Basic 34 43 Base64 encodeBa
  • Makefile以及CMakelists的编辑

    1 概念 在linux中不像windows和mac有图形界面 xff0c 怎么快速的用命令行运行大型项目成为一个问题 xff0c 并且像c c 43 43 需要自己添加include文件的位置 xff0c 当文件数目变多的时候 xff0c
  • python爬虫练习1:计算评分平均值

    练习要求 xff1a 抽取某本书的前50条短评内容并计算评分的平均值 提示 xff1a 有的评论中并不包含评分 代码 xff1a span class token comment coding utf 8 span span class t

随机推荐

  • python爬虫练习2:取道指成分股数据

    练习要求 xff1a 在 http money cnn com data dow30 上抓取道指成分股数据并将30家公司的代码 公司名称和最近一次成交价放到一个列表中输出 代码 xff1a span class token comment
  • python中sort函数的使用

    转自https blog csdn net lyy14011305 article details 76148512 我们需要对List进行排序 xff0c Python提供了两个方法 对给定的List L进行排序 xff0c 方法1 用L
  • Python序列与文件编程练习

    练习一 xff1a 使用以下语句存储一个字符串 xff1a string 61 My moral standing is 0 98765 将其中的数字字符串转换成浮点数并输出 代码 xff1a span class token commen
  • 简单平台用户信息管理系统

    要求 xff1a 用字典创建一个平台的用户信息 xff08 包含用户名和密码 xff09 管理系统 xff0c 新用户可以用与现有系统帐号不冲突的用户名创建帐号 xff0c 已存在的老用户则可以用用户名和密码登陆重返系统 实现代码 xff1
  • DataFrame小练习

    练习要求 xff1a 已知有一个列表中存放了一组音乐数据 xff1a music data 61 the rolling stones Satisfaction Beatles Let It Be Guns N Roses Don t Cr
  • nenuacm 2019 新生训练#10 字符串处理 题解

    题目链接 Ultra Fast Mathematician 解题思路 xff1a 题目说辣么多 xff0c 其实就是将两个二进制进行异或运算 xff1a 相同位上的数字相同 xff0c 异或结果为0 xff0c 否则为1 AC代码 span
  • 比较两个字符串大小(C语言)

    比较两个字符串的大小 比较两个字符串的大小 xff0c 不许使用strcmp函数 输入格式 在两行分别输入两个长度小于20的字符串 在字符串中不要出现换行符 xff0c 空格 xff0c 制表符 输出格式 直接输出 gt 或 lt 或 61
  • 海康web3.0使用记录

    项目中集成海康web3 0控制摄像头 近期项目中的业务需求涉及播放控制实时监控 xff0c 采用了海康web3 0的开发包 xff0c 开发包规范是32位IE11浏览器 xff0c 业务前期本来只是播放rtsp流的监控 xff0c 所以采取
  • 字符串与数字范围

    当字符串由数字组成时 xff0c 告诉你字符串的长度是length xff0c 意味着变成数字时最大会达到10length 1 比如告诉字符串长度最长为105 xff0c 那要注意数字可以达到10的105 1次方 xff0c 大约是1010
  • 如何在VS2019上配置OpenCV

    目录 前言正文1 安装Visual Studio2017 20192 配置 OpenCV https so csdn net so search q 61 OpenCV amp spm 61 1001 2101 3001 7020 2 1
  • GCC编译与Makefile基本语法

    写在最前面 xff1a 所有的博文都是为了若干年月以后当我再次翻看可以快速回想起之前的零星知识 学海无涯 xff0c 在看这篇文章的未来的你 xff0c 加油吧 xff01 目录 一 Makefile简介 二 Linux环境下的C语言编译过
  • CMake与CMakeLists是干什么的?

    写在最前面 xff1a 所有的博文都是为了若干年月以后当我再次翻看可以快速回想起之前的零星知识 学海无涯 xff0c 在看这篇文章的未来的你 xff0c 加油吧 xff01 因为之前看到有些软件中使用了CMake xff0c 不太理解为什么
  • 解决vscode智能代码提示快捷键 Ctrl+Space 无效的问题

    背景 vscode 智能代码提示除了输入时通过字符触发 xff0c 还能使用快捷键ctrl 43 space触发 xff0c 但是在 Windows 下会发现没有效果 因为这个快捷键在Windows下是系统的中文 简体 输入法 输入法 非输
  • Ubuntu系统安装、并解决Ubuntu系统网络连接激活失败问题

    Ubuntu系统安装 并解决Ubuntu系统网络连接激活失败问题 前言 1 Ubuntu安装过程中要保证网络连接稳定 2 Ubuntu安装过程要保证U盘不离开插槽 3 第一次安装请先浏览整个过程 xff0c 再进行操作 4 卸载Ubuntu
  • 激光雷达运动畸变去除方法

    文章目录 一 激光雷达运动畸变产生的原因二 为什么需要解决这个问题 xff1f 三 去除运动畸变的原理四 运动去畸变的方法1 纯估计方法 xff08 ICP VICP xff09 2 传感器辅助的方法 xff08 odom xff0c IM
  • curl下载文件的命令

    curl文件下载 curl将下载文件输出到stdout xff0c 将进度信息输出到stderr xff0c 不显示进度信息使用 silent 选项 1 curl URL silent 这条命令是将下载文件输出到终端 xff0c 所有下载的
  • 倍福ADS通讯(一)——ADS通讯简介

    ADS通讯简介 xff08 一 xff09 简介 xff08 二 xff09 ADS通讯协议概述 xff08 三 xff09 ADS通讯协议的设备标识 xff08 四 xff09 使用TwinCAT Ads中间件 xff08 一 xff09
  • 使用select的TCP服务器

    select函数详解 span class token macro property span class token directive hash span span class token directive keyword inclu
  • undefined symbol问题的查找、定位与解决方法

    今天被客户测出来一个问题 xff1a 程序执行中报错 xff0c 报错内容如下 XXXX xff1a symbol lookup error xff1a home libpdfium so xff1a undefined symbol xf
  • PRD-审批流BPM(结合企微审批引擎和结合flowable方案选择)

    前言 流程设计历来都是比较繁琐之事 xff0c 由于公司急需上线流程化的平台 xff0c 内部系统迫切需要升级 xff0c 在无产品经理的情况下 xff0c 我迎难而上 xff0c 正如 人人都是产品经理 所言 不是每个人都能以产品经理为业