偶然间看过一些所谓工作流的框架,简单看了一下文档,但没有起个项目具体编写过代码学习。工作流的本质是什么,
工作流的目的是干什么?是为了简化某些类型的功能定制开发成本吗?
工作流最简单的表现是什么?数字数组?字符串数组? xml ?最高级最有逼格的表现是流程图设计吗?
工作流与可视化开发有什么区别吗?
1
tinyuu 2021-05-10 09:07:13 +08:00
参考钉钉、 飞书中的审批流程
|
2
lqw3030 2021-05-10 09:17:00 +08:00
通过配置实现复杂业务场景下 if else 拼接
|
3
murmur 2021-05-10 09:17:23 +08:00
工作流是审批用的,你可以理解成流程图,但是国内的工作流比流程图复杂的多
|
4
kop1989 2021-05-10 09:24:26 +08:00 1
1 、工作流本质上是单据的可配置流转。
2 、目的是实现可配置的、灵活的单据流转流程,以节省开发工作量。 3 、表现方式很多,比如选择节点处理人,流程图,拖拉拽等等。 4 、可视化开发是开发层面的,工作流是使用层面的(用户层面的)。 |
5
CodeJr 2021-05-10 09:26:51 +08:00
解耦配置流程,方便流程的变动
|
6
312ybj 2021-05-10 09:39:42 +08:00
工作流主要是为了提高企业的流程流转效率,activity 和 flowable 都是基于 Bpmn2.0 协议的,表现为 xml,但是人家有渲染引擎解析 xml 。 设计流程图肯定是图形化页面化,自己生成 xml,然后套用这个 xml
|
7
weizhen199 2021-05-10 10:24:15 +08:00
用途是写代码的不用手艹流程了
|
8
taowen 2021-05-10 10:27:21 +08:00
用 PHP 代码写死的流程,要改就得找程序员。工作流的目的是让最终用户参与逻辑的编写,把一部分代码逻辑推迟到运行时去定义。
|
9
minbaby 2021-05-10 10:42:20 +08:00
工作流( Workflow ),是对工作流程及其各操作步骤之间业务规则的抽象、概括描述。工作流建模,即将工作流程中的工作如何前后组织在一起的逻辑和规则,在计算机中以恰当的模型表达并对其实施计算。工作流要解决的主要问题是:为实现某个业务目标,利用计算机在多个参与者之间按某种预定规则自动传递文档、信息或者任务。
工作流管理系统( WfMS )是处理工作流的电脑软件系统,其主要功能是通过计算机技术的支持去定义、执行和管理工作流,协调工作流执行过程中工作之间以及群体成员之间的信息交互。工作流需要依靠工作流管理系统来实现。 工作流属于计算机支持的协同工作( CSCW )的一部分。后者是普遍地研究一个群体如何在计算机的帮助下实现协同工作的。 参见: https://zh.wikipedia.org/w/index.php?title=工作流 |
10
SlipStupig 2021-05-10 10:45:22 +08:00
工作流的本质就是:把大象装到冰箱里需要几步?需要哪些步骤
|
11
tctc4869 OP @weizhen199 那哪些类型的流程实现的代码可以被工作流替代?哪些流程不能用工作流实现?
|
12
timethinker 2021-05-10 11:20:14 +08:00 3
我之前集成过 Activiti,本质上它就是一个有限状态机,使用它的目的就是为了应对频繁变更的审批流程。
既然是状态机,就涉及到状态节点的切换,即触发了什么事件(输入)导致状态进入到下一个状态(输出),每一个状态节点拥有生命周期,hook 节点生命周期的不同阶段用来处理自定义的逻辑,并且可以控制状态机的走向。节点有不同的类型,有些内置类型的节点,例如进入到这个节点就发送一封邮件,发送完以后进入到下一个节点。 对于我刚才说的以上这些功能,实际上就是一个流程的定义,这个定义不是通过我们写代码的方式来硬编码的,而是在运行时进行管理的,而这个定义也有一个标准( bpmn )用于规范整体的结构。 流程定义完成以后,下一步就是考虑如何将定义“实例化”,流程定义只是一个静态模板,它是元数据(即描述数据的数据),就像我们写一个 Java 类,是需要被实例化的。启动一个流程定义相当于创建了一个流程实例,每一个流程实例具有生命周期,从开始节点一步一步往下走,直到走到了结束节点。 Activiti 或者 Flowable (推荐)非常方便进行拓展,它完成了我们上面所说的那些基础功能(流程定义与部署、实例状态管理等等),我们可以自己按照需要进行定制化的开发。特别需要注意的就是,在使用上,不要把流程实例当做一个业务实体来用(例如你有 10W 个订单,但是里面未完成的订单也许只有几百个),每一个流程实例都有自己的生命周期,当它完成了以后,它的使命也就结束了,在 Activiti 中将会从 RU_XXX 系列表中移除,不过我们可以对其进行拓展,将它的结果存储到外部的一个归档数据库中。 对于简单一点的场景,例如所有的节点都是 UserTask (通常用于审批),可能自己设计一张表就结束了,压根用不到工作流引擎。但是对于以事件驱动的整个集成系统来说还是有意义的,特别是对于频繁变更的流程。 |
13
ReferenceE 2021-05-10 11:25:21 +08:00 via Android
去用一个 gayhub 免费的 GitHub actions 看看
|
14
imn1 2021-05-10 13:01:56 +08:00
任何事情(工作)都可以以工作流方式描述,所以工作流实际上就是个抽象概念
例如晚餐:厨房卫生、采购食材、预处理食材、厨具准备、烹饪、餐厅卫生、餐具准备、餐桌准备、入席、就餐、离席、餐桌清理、餐具清理、厨具清理、厨余处理、餐厅和厨房保洁…… 这些步骤哪些是有先后的,哪些可以并行,然后根据可行情况单线程、多线程、协程等等组织完成 一个项目少不了立项、事前评估、审批、筹备、执行或长期执行、事后或定期评估……就形成项目管理这个工作流 工作流的本质就是用有限的“描述方式”,说清各种千变万化的具体工作,让相同或相似的工作更顺利 既然是抽象,就一定是把可变项抽离,例如“imn1 在 hh:mm:ss 对 LZ 回帖 xxxx 内容”,抽象成“水军甲在主角出场后大肆抨击”,把具体的某个人工作,抽象成岗位的工作描述 工作流的目的就是传导(让多次的工作遵循某种特定的模式) 之前说过一句话,这里也可以用,“所谓传承,就是想把自己的感受传给别人,但感受本身是无法传导的,只能传导如何再现这种感受的方法” 工作流也一样,今天的晚餐感受,明天就不同了,所以无法把这种感受保留,但可以保留今天晚餐的做法,留待下次重新体会。工作流就是这个意思,把一个或多个具体的工作,抽象为工作流,那么别人(或者今后的自己)用这种工作流记录,就能相对顺利完成相同或相似的工作 描述李白写诗前喝了多少酒,酒是多少度,那是故事,但“喝完酒写诗”就是工作流,够简单了吧。但你也该看出来了,没有最简单,只有事情的大小,小事情工作流就少,简单;但大项目,工作流就复杂,工序繁多 至于计算机的工作流术语,楼上各位都说得比我清楚,但我想说的是,结合上面的说明,如果你是个擅长写抽象类的高手,你就能写出工作流代码,去想哪个能写工作流不对,而是该想:这个怎么写成工作流 |
15
tankren 2021-05-10 13:07:50 +08:00
同一个术语放在不同的场景代表的东西可能不一样
|
17
clf 2021-05-10 14:05:50 +08:00
目前主要是为数字化办公服务的。比如请假,你提了请假流程,你的请假信息在流转到人事的时候就会进考勤系统里自动算工资了。还有就是电子签章、合同审批等等配合使用。
很多事情都是有一个步骤的,而这个步骤抽象后就是工作流。 |
18
zjsxwc 2021-05-10 16:17:56 +08:00
|
19
xiaoxinshiwo 2021-05-11 16:06:23 +08:00
做过 OA 的估计会知道
|
20
wangxiaoaer 2022-09-22 08:53:19 +08:00
|