日常工作中,我们经常要画一些业务流程,那么业务流程的基本元素有哪些呢?以下以一个完整的业务流程元素为示例:
- 流程步骤:业务流程中必须包含的具体步骤,例如收集数据、处理请求、审核、决策、执行、发布等。
- 流程参与者:业务流程中参与执行流程步骤的人员,包括业务部门的员工、客户、供应商、合作伙伴等。
- 流程输入:业务流程所需的数据、信息或文件等,例如订单信息、发票、报告等。
- 流程输出:业务流程的结果,例如订单确认、审核通过、发货等。
- 流程资源:业务流程中所需的物质或非物质资源,例如人力资源、财务资源、设备、技术支持等。
- 流程时间:业务流程执行所需的时间,例如订单处理的时间、审批的时间等。
- 流程状态:业务流程在执行过程中所处的状态,例如待处理、处理中、已完成等。
以上的流程元素,其实整个落地的所有内容,就是流程引擎的很多属性,以及流程结合业务表单的过程,BPMN也是围绕这些内容来分解的。
这些基本元素共同构成了业务流程的框架,业务流程管理的核心就是对这些基本元素进行规划、执行和监控。以上内容其实还是比较虚,并且在我们日常工作中,流程的设计还是很复杂的,有很多业务元素,业务规则,然后分解成很多步骤,也就是活动(节点),对于流程的设计需要慢慢来,这一节有个感性的认知。
日常工作画流程图,大多是个草图,很严格的流程图,是需要由工作要求,相关文件等等构成的,由相关配套绩效考核制度来对应执行,细化这些基本流程元素,可以统称为流程的节点,Node,或者Acitivity 都是一个意思,或者更为准确的为流程元素FlowElement。根据业务特点,FlowElement可以分为以下几大类:
开始节点流程最开始节点,整个流程由此节点开始,没有输入边。一般来讲,只有一个开始节点,或者由自动节点驱动开始。
结束节点流程经过该节点后,流程将结束,没有输出边。可以有多个结束节点。
人工节点- 发起节点,跟进业务驱动,启动发起流程。
- 审批节点,这是重中之重,其实可以包含以下节点,如何解耦,是一个好的业务流程的标准,这一类就是人工干预,配合分支的设计,基本决定了整个流程设计的失败还是成功,无论是从技术上还是从用户体验上,都是如此。下一个章节,我们来看国内审批节点基本的动作有哪些,一些晦涩的没有行业标准的审批操作,是需要一个行业协会来解决的事情。
- 签字节点,需要专门手工签字,或者和一起会签的地方,可以设置这类节点。
- 抄送节点,知会节点,可以发票意见或者不发票意见。
- 投票节点,对某个事情,的意义,同意,反对,弃权。设置透过率。
- 会签节点,就是大家签署意见,一种是向前会签,一种是向后会签。
- 沟通节点等等,可以根据业务模型不断的进行增加,国内的大多数工作流,其实为这一块,是审批流,以审批动作为基础,在一个节点或者多个节点之间来回传递信息。
在该节点上,会产生一些任务,可以是人工任务或者自动化任务,如果为人工任务,一般会产生阻塞,只有任务完成,达到一定条件,才能驱动流程往下一个节点行进。
- 短信节点,邮件节点等。
- 脚本节点,shell节点
- 数据同步节点
- 信号节点
- 事件节点
- restful节点 ,一些后台的服务节点,可以根据业务不断扩充。
- 顺序连线
- 逻辑连线,连线中增加了很多的逻辑条件,这里可以有一些诸如For,while等,比较复杂执行场景的连线设计,值得探讨,特别是如果深入低代码中去。
- 分支连线(如果BPMN落地规范中,就是称之为各类网关),这个地方考验流程设计者的智慧,特别是对于审批流来讲。需要专门章节设计介绍。
- 子流程,需要分开来专门章节展开。
- 自由设计子流程
- 权责流程等等,如果面对各类业务,快速组装,导入,生成各类流程。
- 决策节点:该节点存在决策表达式,流程经过该节点时,会执行决策表达式,决定下一步往哪个节点行进。
- 分支节点:当存在多条支线时,需要分支节点。
- 合并节点:与分支节点配合,多条支线最终会合并到该节点,由该节点决定是否可以往下一步行进。
- 分支/合并流程:分支与合并要成对出现,由合并节点判断是否具备合并条件。需要有分支符号和合并符号,更有可读性
- 子流程:主流程中存在子流程,当所有子流程结束,主流程才结束。
- 子流程节点:主流程中衍生出的流程,该流程有自己的生命周期,子流程也会产生阻塞,所以只有子流程执行结束,才能驱动流程往下一节点行进。
以上是业务流程基本元素,那么普通的业务人员,或者公用的业务流程到底如何画合适呢,参照以下的建议:
· 流程图须以单一入口,单一出口特征绘制。“开始”符号只能出现一次,但是“结束”符号可以出现多次。结束符号是很有意义的。
· 相同流程图,符号大小最好一致,看起来更美观。
· 流程图符号绘制顺序,应从上至下,从左到到右的顺序。
· 同一路径,指示箭头应只有一个,用来表示流程的执行顺序或数据的流向。进入一个流程节点,尽量走同一条线进入,而不是在一个节点上尽量减少多个入口。
· 流程图如有参考到其他流程。可引用已定义的流程,不需要重复绘制。
· 路径符号(连线)间应避免相互交叉。
· 复杂流程图 请分为主子流程图来绘制,不要画在同一流程图中。
· 流程图禁止死循环。
了解了这些基本业务流程元素,才能着手去使用基本工具去绘制这些业务流程,然后才能跟使用BPMN的标准去落地这些业务流程,这也是为什么BPMN为何那么复杂,因为要应对复杂的业务描述,那么引入各类概念来应对,比如泳道图,跨多个部门如何协调,这里更多还是审批流概念,一些事件,服务,业务系统的交互等等。