惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

量子位
小众软件
小众软件
S
SegmentFault 最新的问题
人人都是产品经理
人人都是产品经理
博客园 - 【当耐特】
博客园 - 三生石上(FineUI控件)
C
Check Point Blog
S
Schneier on Security
Microsoft Azure Blog
Microsoft Azure Blog
N
Netflix TechBlog - Medium
Engineering at Meta
Engineering at Meta
GbyAI
GbyAI
罗磊的独立博客
有赞技术团队
有赞技术团队
V
V2EX
Y
Y Combinator Blog
博客园 - 叶小钗
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
F
Fortinet All Blogs
W
WeLiveSecurity
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
Stack Overflow Blog
Stack Overflow Blog
The Cloudflare Blog
S
Security @ Cisco Blogs
TaoSecurity Blog
TaoSecurity Blog
MyScale Blog
MyScale Blog
Hugging Face - Blog
Hugging Face - Blog
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
www.infosecurity-magazine.com
www.infosecurity-magazine.com
PCI Perspectives
PCI Perspectives
H
Heimdal Security Blog
Schneier on Security
Schneier on Security
Security Latest
Security Latest
AWS News Blog
AWS News Blog
月光博客
月光博客
Security Archives - TechRepublic
Security Archives - TechRepublic
Recent Announcements
Recent Announcements
Google DeepMind News
Google DeepMind News
博客园 - Franky
Cisco Talos Blog
Cisco Talos Blog
T
Threat Research - Cisco Blogs
M
MIT News - Artificial intelligence
T
Troy Hunt's Blog
N
News and Events Feed by Topic
Cloudbric
Cloudbric
Scott Helme
Scott Helme
云风的 BLOG
云风的 BLOG
Attack and Defense Labs
Attack and Defense Labs

人人都是产品经理

为什么你的产品找不到差异化?90%的失败都卡在第一步上(下) – 人人都是产品经理, 3年从30万到1300万用户、获2200万美元融资,这个AI教育产品用“抽卡”破解了获客难题 – 人人都是产品经理, 园区招商系统怎么做才能真正帮到去化?我加了这一个功能,推广链接转发400次阅读过万 – 人人都是产品经理, AI大事件:OpenAI发完网络安全模型又搞药物研发,小鹏汽车要抓”DeepSeek时刻” – 人人都是产品经理, 电商不是卖货,是一场更残酷的产品经理实战 – 人人都是产品经理, 没想到,活动营销又回来了! – 人人都是产品经理, 为何All-in海外KOC:一场关于AI时代窗口期的豪赌 – 人人都是产品经理, 重新理解企业的内部协作 – 人人都是产品经理, 苹果的 AI 战略到底是什么? – 人人都是产品经理, 医疗智能体·第2讲——合规护城河:等保、PIPL与HIPAA的架构实战 – 人人都是产品经理, 向量知识库五步法:从“答非所问”到“精准回复” – 人人都是产品经理, 鸿蒙PC三方库构建总指挥HPKBUILD(sha)库为例 – 人人都是产品经理, 何时该用LLM?AI产品经理的LLM设计指南 – 人人都是产品经理, 医疗信息领域的需求方、决策方、准入方以及关注点(二) – 人人都是产品经理, 即梦涨价:一场被误读的「傲慢」 – 人人都是产品经理, 面试AI PM必答题:Hermes和OpenClaw的区别,如何讲清楚业务价值 – 人人都是产品经理, AI的下一张船票:世界模型——AI产品经理必须理解的技术拐点 – 人人都是产品经理, 小红书做GEO,怎么让AI信你?记住这 3 个重要信息 – 人人都是产品经理, 5 家印度 AI 初创公司,看看印度 AI 再做什么 – 人人都是产品经理, AI项目跨团队协作:产品技术业务如何不打架 – 人人都是产品经理, Agentic Workflow(智能体工作流):让AI从”答案生成器”变成”数字员工” – 人人都是产品经理, lycium_plusplus 项目全景解读:OpenHarmony 三方库构建的“大管家” – 人人都是产品经理, 从爆单救火到前置履约:两套预采策略,把生鲜大促履约效率拉满 – 人人都是产品经理, 什么时候该补货?我用一轮数据做了一个决定 – 人人都是产品经理, 从“机械兜底”到“动态分流”:AI客服重复进线治理的4大底层逻辑 – 人人都是产品经理, 抖音拼效率,红书拼洞察 – 人人都是产品经理, 全民狂欢与退潮——为什么龙虾这波热潮冷却得如此之快? – 人人都是产品经理, Stripe押注!MPP重塑全球支付 – 人人都是产品经理, 小红书GEO:AI引用你的内容,不是因为你对,而是因为你看起来可信 – 人人都是产品经理, 前百度副总裁押注办公Agent,日韩付费爆发,Manus迎来强劲对手 – 人人都是产品经理, 企事业单位数字化的业务供需本质 – 人人都是产品经理, 医疗智能体·第1讲——医疗信息化重构:从“辅助软件”到“自主智能体”的范式转移 – 人人都是产品经理, 粉丝量就是空气!!! – 人人都是产品经理, 用户说“薯片碎了”,机器回“要买吗?”:意图识别的翻车与破局 – 人人都是产品经理, RAG召回准确率从75到90 我做对了这三件事 – 人人都是产品经理, AI大事件:Anthropic改收费、OpenAI发安全版、手术机器人纳入医保、阿里发布”秒悟” – 人人都是产品经理, Chrome 推出 Skills 新功能,Agent 重塑上网方式 – 人人都是产品经理, GitHub前创始人拿了a16z的1700万美元,做Agent时代的Git – 人人都是产品经理 拷贝或克隆其他 Flutter OH 项目到本地后无法运行 – 人人都是产品经理, 优惠券设计:优惠券创建 – 人人都是产品经理, 不用死磕文档!AI 助手 1 小时搞定飞书 CLI 安装 + 配置 + 知识库 – 人人都是产品经理, 用小龙虾做竞品分析报告:从2天到20分钟,我是怎么做到的 – 人人都是产品经理 用小龙虾做市场分析报告:搞懂这3个公式,市场规模不再靠猜 – 人人都是产品经理, 你早就在做 Harness 工程,只是不知道它叫这个名字 – 人人都是产品经理, Think Long就够?你可能想多了! – 人人都是产品经理, 货代SRM实战:供应商准入怎么做,才能让资源池不是通讯录而是可交付网络? – 人人都是产品经理, 如何做好用户调研?详解基本技巧 – 人人都是产品经理, 木鸟、途家、美团对打,平台春天行动开“卷” – 人人都是产品经理, 入职才发现公司不靠谱?小红书从业者求职避坑指南 – 人人都是产品经理, 美国 AI 三巨头联手封堵,中国 AI 突围之路在何方 – 人人都是产品经理, 小红书,放在需求对面的镜子 – 人人都是产品经理, AI 会带来大规模失业吗? – 人人都是产品经理, 从出单到补货前,我第一次犹豫:该不该放大? – 人人都是产品经理, Flutter 三方库鸿蒙化适配:5 种高效检查方式,快速判断是否需要适配 – 人人都是产品经理, 从做产品进阶拿结果:医美机构产品经理转岗科室运营经理 – 人人都是产品经理, 阿里HappyHorse,一场关于“Token经济”的阳谋 – 人人都是产品经理, To B AI:客户留存落地的观察与思考 – 人人都是产品经理, AI产品的“生命线”——数据采集、标注、清洗的产品化设计 – 人人都是产品经理, 谈谈AI Agent(二):当“孩子”能自己“体验世界”时,你该学什么? – 人人都是产品经理, UI/UX设计师的3层能力进阶,前两层让你活下来,第三层…才是真正的分水岭 – 人人都是产品经理, 2分钟 → 30秒,效率提升75%:B端产品经理如何用「规则枷锁」驯服AI幻觉? – 人人都是产品经理, 还没来得及学OpenClaw,来了个更猛的:Hermes Agent – 人人都是产品经理, AI日报:宇树机器人跑出10m/s刷新世界纪录 – 人人都是产品经理, 一文说透基金互金如何用情绪价值引导用户决策做转化 – 人人都是产品经理, 当浏览器开始替你”看”网页:AI 浏览器正在亲手拆掉它脚下的那张网 – 人人都是产品经理, 0代码,一天时间我Vibe Coding了个网站 – 人人都是产品经理, Hermes 和 OpenClaw 之争,Agent 的能力应该“装上去”还是“长出来”? – 人人都是产品经理 视频生成的“桌子”,字节Seedance 2掀完,阿里快乐马掀 – 人人都是产品经理, 从听不懂到完全信任:我的 Codex 深度产品体验 – 人人都是产品经理, 当虚拟偶像有了北京户口,与真人偶像还有什么区别? – 人人都是产品经理, 会说,远远比会做更重要 —— 对 SBTI 爆火现象的五层观察 – 人人都是产品经理, AI产品经理必看:当“搭环境”比“选模型”更重要,你的认知还在2024年吗? – 人人都是产品经理, 2026年AI产品商业化核心逻辑:从功能demo到规模化营收的3个必破卡点 – 人人都是产品经理, 京东围绕供应链,卷起裤腿下场的那些事儿 – 人人都是产品经理, SBTI一夜刷屏:它赢在了“太会说人话” – 人人都是产品经理, 折扣零售的真相:不是便宜,而是价值感! – 人人都是产品经理, 和甲方吵了一架,最后加钱做了——我学到的ToB产品经理生存法则 – 人人都是产品经理, 和几位小红书操盘手聊了8小时,干货全在这 – 人人都是产品经理, 智谱GLM-5.1登场,开源模型首超Opus4.6!!! – 人人都是产品经理 Anthropic收入凭什么反超OpenAI,终于有人把这事说清楚了 – 人人都是产品经理, 史上最有故事感的技术报告——Claude最强模型Mythos 7个极其精彩的细节 – 人人都是产品经理, 模型不是壁垒,Harness 也不是 – 人人都是产品经理, 抖音本地生活业务思考21 – 人人都是产品经理, Superpowers:145k Star的AI编码框架,到底是什么来头? Superpowers:145k Star的AI编码框架,到底是什么来头? – 人人都是产品经理, OpenAI 的路走错了,Anthropic Harness 解法启示:模型需要实践专科生 – 人人都是产品经理, 画原型图的前一步:设计站点地图 – 人人都是产品经理, 给 DeepSeek 的最后一封催更信 – 人人都是产品经理, 手把手教你用 Claude Code 搭建 AI 营销团队:5 个 Agent、12 项技能,独立完成研究、写作、设计全流程 – 人人都是产品经理, 你以为大模型在学语言?不,它在重新发明语言学 – 人人都是产品经理 所谓Skill,不过是AI时代的工业垃圾 – 人人都是产品经理, 聊一聊内容传播的几个方法 – 人人都是产品经理, 当平台开始吃掉生态:从 OpenClaw 被封杀,读懂 Anthropic 的这盘棋 – 人人都是产品经理, 你装了 10 个 AI 插件,Obsidian 还是一个文件夹 – 人人都是产品经理 关于AI智能体架构演进的系统性思考:从单体试水到多体协同的重构 – 人人都是产品经理, 当“人”变成Skill,我们又该何去何从? – 人人都是产品经理 Mythos 事件:前沿 AI 治理的意外实验 – 人人都是产品经理, 货代CRM:信用与风险管理怎么做,才能把坏账风险拦在放货之前? – 人人都是产品经理, 从HR收集自拍照到员工自助录入——我见证了园区人脸识别从”不可用”到”真好用”的全过程 – 人人都是产品经理 千问闯关AI混沌期:阿里画靶,吴嘉张弓,马云射箭? – 人人都是产品经理,
从0到1构建工作流引擎(一)
橘钻 · 2023-08-31 · via 人人都是产品经理

一个完整的工作流引擎,应该具备哪些功能模块?这篇文章里,作者尝试结合实际工作经验和实际案例,对构建工作流引擎这件事儿进行了总结,并对工作流引擎的功能模块进行了大概讲述,一起来看。

最近我做了工作流引擎系统,借鉴了市面上的一些成熟工作流引擎,将其做了一些简化以更适用于实际情况,同时在复盘的时候发现当初踩了一些坑。所以希望以文章的形式写出来构建一个完整的工作流引擎应该有哪些功能模块,哪些功能逻辑,可以抽象哪些业务逻辑,有哪些思考的点。希望对需要的同学有所帮助,也和大家一起讨论改进。

文章分为两篇,由4个板块组成:

  1. 工作流引擎简介;
  2. 从案例出发推演功能;
  3. 功能模块概览;
  4. 功能与逻辑详解。

本文包括前三个板块。

一、工作流引擎简介

1. 工作流是什么?

为了完成某一项工作,而需要有多个环节、多个人员来分工、配合共同完成;而每个环节和每个人员的处理操作是有先后顺序的,所以有流向性的特征,也就称之为“工作流”。

常见的工作流简单的有如请假流程、离职流程,较为复杂的有采购流程、立项流程等。

大家经历过就会知道一个工作流会有多个操作节点,也就对应多操作人员;比如请假需要部门领导通过、人事经理通过等,比如采购需要领导验收合同、财务付款等(工作流和审批流的概念本文就不展开)。

2. 工作流引擎主要是用来做什么的?

工作流引擎是一个为实现工作流程的定制化,并驱动工作流程完整进行的工具。其特点在于可以实现随着公司实际业务的发展(如组织架构的改动、业务逻辑的改动),而能快速做出灵活响应更改工作流,减少重复性的开发成本。

  • 比如一开始公司只有10个工作流,随着业务发展需要20个,多出来的这10个不用写死在代码里,直接可以在工作流引擎内配置;
  • 比如公司有人事变动,需要更改某些工作的审批人,也可以直接配置;
  • 公司的业务发生了一些改变,原来的审批节点只有5个,现在要增加到10个,等等情况都可配置。

3. 工作流引擎的边界是什么?

工作流引擎主要只配置工作流,所以需要与业务系统如ERP区隔开,并需与业务系统通过接口对接,以此业务系统方可发起流程、审批流程、完成流程。

也就是说工作流引擎和业务系统是相互独立但又通过接口对接的两个系统,一个工作流引擎可以对接多个业务系统,为其配置工作流。

所以操作逻辑应该是:先在业务系统定义有哪些流程,然后在工作流引擎中配置具体流程,再在业务系统中发起/处理流程,并在工作流引擎中可以对已发起流程进行管理;当公司的各类业务系统较多时,不用每个业务系统都去开发自己的工作流管理模块,这样可以较大地也提高了开发和维护效率,减少了开发成本。

二、从案例出发推演功能

了解了工作流引擎是干嘛的,我们就可以来看看其应该包含哪些内容。但是如果我一来直接就从某个功能开始讲,大家肯定是比较抽象的。

所以我们先从一个审批案例着手,从0开始为完成这个案例我们该配置哪些数据?这样更有助于大家能先有一个全局的认识,然后再来讲一个个的功能,这样大家可能更容易接受。

前提条件:

某公司有甲、乙、丙、丁4个部门:

  • 条件1:每个部门各有1个部门负责人a、b、c、d
  • 条件2:甲/乙部门的分管领导是e,丙/丁部门的分管领导是f
  • 条件3:东南区域的总监是g,西南区域的总监是h

假设成立项目也就是立项需要走流程,不同类型的项目走的流程肯定不一样,假设关于项目的维度有项目等级(包括一级、二级),项目区域(包括东南,西南)。通过排列组合,我们可以得到以下4类项目:

  • 项目1:一级项目,东南
  • 项目2:二级项目,东南
  • 项目3:一级项目,西南
  • 项目4:二级项目,西南

有了前提条件,我们再分场景来看,不同部门的人员发起不同类型的项目,流程会怎样走。

场景1

如果一级项目由分管领导审批,二级项目由部门负责人审批,不管哪个区域的项目都要由区域总监审批。根据这个前提我们就可以得到下面这个流程图:

先解释一下流程的构成元素,如上图:

  • 有操作节点,比如提交、分管领导、部门负责人;
  • 有网关,如菱形带×这个是互斥网关;
  • 有流转条件,如图内的一级项目、二级项目,流转条件是和互斥网关是一起使用,通过流转条件来判断不同的工作流数据该流向哪个操作节点。

如果从0开始,这个时候系统里什么数据都没有,那我们是不是要先录入部门、人员等组织架构信息?所以就会得到如下图简化的表单信息:

但是注意,这上图只是组织架构信息,并不是该人员在流程中的实际角色。

再回头看一下流程图,我们在流程中只会有部门负责人、分管领导、区域总监这3个角色,并没有指定这个3个角色具体是谁进行审批?因为a是部门负责人,b也是,g是区域总监,h也是。

所以这个时候我们需要引入用户矩阵这个概念来解决这个问题,也就需要再录入一个表单来记录流程中的实际角色,如下图:

先说为什么要这样一张表来记录这些信息?为什么不直接用组织架构表?这样做主要达到2个目的:

  1. 为了解决多个人员担任同一角色,但又存在变量的情况(比如部门、区域不同),这样在流程中只需要配置一个角色就行了,不用每个人员都配置一次(具体后面演示);比如同样是部门负责人,a管理甲部门,b管理乙部门。
  2. 为了将组织结构中的职位与流程中的角色进行解耦;同时调整更灵活,比如在公司中叫部门负责人,在流程中可以叫部门老大,如图3所示。

然后解释一下为什么要条件变量和变量值?是因为不同的项目会流向不同的操作节点,系统就需要通过条件变量来判断,而哪种项目要走哪条流程,是由其变量值来确定的。

根据以上变量值,再结合之前的流程图,我们就可以得到下图:

有了流程的相关数据,我们再来看流程会怎样走。假设张三是丙部门的人员,他来走立项流程,不同的项目属性会经历下列审批人:

流程的配置大概就是这些,但有1个思考的点:如果没有用户矩阵这张表,我们的流程会配置成什么样?

如图所示,我们需要把每个参与到人员都配置到流程中去,也就是一个人员就要占一个审批节点;并且只能通过流转条件来控制该项目需要走到哪个审批节点。这样流程将会非常庞大且臃肿。

场景2

基于场景1,我把这些元素打乱了再重新排一下来设定场景:如果甲/乙部门的项目由分管领导审批(e负责一级项目,f负责二级项目),丙/丁部门的项目由区域总监审批(g负责东南,h负责西南),最后再统一由部门负责人审批。所以得到如下流程图:

组织架构的表单我们已经有了,就不再赘述了。然后第二步我们需要往用户矩阵表里添加信息:

第三步就能得到这个带有用户矩阵的流程图:

所以可以得到以下结论:

  • 假设张三是丙部门员工,发起一个一级、东南区域项目立项,会走g和c的审批;
  • 假设李四是甲部门员工,发起一个一级、东南区域项目立项,会走e和a的审批。

为什么我会举场景2这个例子?

通过场景1和场景2,大家可以看出条件变量有很多,包括人员所属部门、项目所属区域、项目等级,而对比这两个场景大家可以发现,这些条件变量都是可以放到操作节点或流转条件里去配置的。

比如场景1中不同的项目等级走不同的顺序流,场景2中的项目等级是放到操作节点里,不同的等级经过不同的人审批,而这个审批的角色都叫分管领导。

三、功能模块概览

经过上面的例子,我们知道了一个完整的流程应该包含哪些元素:组织架构、用户矩阵、条件变量等,有了这些数据才能配置到流程内。

所以我们就可以看到一个工作流引擎应该由以下功能来组成:

下一篇接着讲工作流引擎具体的功能与逻辑。

本文由 @橘钻 原创发布于人人都是产品经理,未经许可,禁止转载

题图来自 Unsplash,基于 CC0 协议

该文观点仅代表作者本人,人人都是产品经理平台仅提供信息存储空间服务。