learun开发社区 - 力软.net/java快速开发平台官方论坛

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 1533|回复: 0

【转载】软件开发标准工作流设计剖析

  [复制链接]

2

主题

10

帖子

189

积分

注册会员

Rank: 2

积分
189
发表于 2018-11-27 17:39:04 | 显示全部楼层 |阅读模式
在一些稍微复杂的后台系统中,工作流的设计是不可避免的重要部分,一个优秀的后台工作流系统,不仅可以使后期使用系统的时候更高效,还可以实际解决企业面临的问题。
一、工作流及其类型
在企业级的后台系统中,工作流是比较常见的一个功能,其基本应用可以归纳为以下两个方面。
1.涉及到流程审批的系统功能
审批流程很常见,比如一般OA中的请假申请,加班申请,出差申请;人事系统中的入职流程审批,离职审批。
公司内部如果有业务系统中某些比较重要或者比较谨慎的操作,也需要层层审批。
对于流程审批类的工作流,其特点为会将审批的角色划分为生产者与处理者。生产者即生产数据的角色,其在工作流的工作为新数据的添加;处理者即对已有数据的进行某些操作。
从某种意义上讲,工作流所进行的某些功能操作是以处理者的需求进行设计的。例如在进行请假审批的时候,领导需要看到的是请假者请假的事由,天数,请假类型等等,而不是请假者为了让领导看明白自己将请假的内容填写的详尽。所以我们在设计流程审批类的工作流时,需求方更多的要从处理者去考虑,要去把握他们需要什么,再从中去设计定义内容。
2.需要多人协作完成的工作
对于此种工作流来说,其目的主要是为了让某个角色更加专注的去进行某项工作。类似于流水线工作,在系统中所体现的就是到了哪一个步骤就将该工作流程流转到某个角色,完成后再流转到下一个角色,将所有的角色的工作流程串接起来,就是某项工作完整的工作流程。
比如电商后台中WMS的库存盘点。此功能的工作必然要涉及到核对采购单,核对销售单,入库盘点,差异登记,库存更新等这一些列的操作,而这些操作则可以简单分为盘点前,盘点中,盘点后。

二、工作流的设计要点
那么,在了解什么是工作流后,要设计好一个工作流,应该要考虑以下几个设计要点。
1. 工作流内容的生产,处理,消费
对于流程审批类的工作流来说,工作流内容的生产端一般来说角色等级都比较低,仅仅作为数据的记录者而没有任何的处理权限。所以在设计的时候,任何可以在生产端直接进行数据处理的操作都要慎重考虑。
比如,是否允许数据基本的录入者直接进行删改的权限?
某些对于数据状态的变更是否可由其进行变更。而进行到了数据的处理阶段,最终要对该项功能所填写的数据进行产出,而在处理阶段的操作,可以分为两种情况:
只做流转操作,其流程节点可以理解为一个高级筛选功能,目的只是为了决定是否让此条数据流转到下一节点。
流转的同时需要进行数据的修改或者补充。
这两种流程角色的不同,定义着其在整个流程中的操作不同,一个只做通过驳回挂起等流转性操作,一个却可以进行信息的补充,删改,以及其他内容的添加。
在设计工作的时候,要理清处理阶段的角色工作模式,才能将工作流设计好。
对于多人协作的工作流来说,其每一个角色都是数据的生成者,每一个角色也都是数据的处理者。这个时候,类似于流程审批类的处理权限控制就没有必要设计了。
因为每一个流程操作的内容划分的都很明确,流程与流程之间的操作并没有重叠之处,上一个流程的操作只是作为一个流程的前置支撑而已。所以在这个时候,要处理好的是角色之间的功能拆分,确保每一个角色每一个流程所进行的操作都是在流程下的充分必要条件。
关于数据的消费,指的是数据产生后是为了做什么。对于不同的角色来说数据的产生有着不同的功能,在设计工作流的时候,也要适当的把这些考虑进去。因为我们设计的时候往往只关注数据的生成,而不去关注生成之后他要去做什么。
比如我最近在做的一套商管系统,签订合同完成后是为了生成店铺,进行店铺的操作,所以数据审批完成后就应该抄送一份给店铺管理的角色。
比如某些采购单审批通过了 ,可能消费数据的并不是采购货物的人员,还有财务人员需要进行入账处理,所以数据应该也给财务一份。所以我们在设计工作流的时候,不仅仅要考虑到数据在整个工作流中的直接消费者,其间接消费者也应当进行考虑设计。
2. 不同情况的工作流状态
一般来说,一个审批类工作流的状态只从流程上来说的话大致可以分为这几个阶段:未审批–审批中–审批结束。不同的阶段又可以拆分成不同的情况。
比如在未审批的情况下,可能会有已经填写但是未提交到工作流的情况,也可能会有已经提交到工作流但是发现提交内容出错无法撤回的情况。
所以在审批的情况下,视情况可以添加保存的操作(对应的工作流状态可为未提交);紧急撤回的操作(对应的工作流状态可为已撤回)。
在审批中,除了正常的一个节点一个节点的审核外,可能会遇到的情况还会有该条工作流流转到这里时已经废弃了,此时可以加上废弃的操作(对应的工作流状态可为已废弃);还有可能流转到这里时发现整个流程有问题或者由于其他原因对于整个工作流有异议,但是可能该节点还有其他角色可以进行操作,所以需要将工作流暂时冻结,待确定后再重新激活,所以此时工作流应该加冻结/挂起的操作(对应的工作流可为已冻结),以及对应的重新激活的操作(对应的工作流状态展示即回到原有工作流的状态)。
同时,在审批中可能因为会有多个工作流的操作,但是这条操作比较着急,所以在数据的生产者端可以加上加急处理的操作,此时在处理者中看到的此条记录应当为置顶状态。
但是由于加急处理的权重比较高,所以并不是每一个角色都赋予这个操作权限。
最后,应该给审批中设置一个审批时效,超时后是应当进行超时作废还是超时退回也应该有明确的目标。
最后,是审批结束,其也分为两种情况:
一种是审批通过,一种是审批不通过。
对于审批通过,即为该条记录生成完成,可进行消费者的抄送等等操作,审批不通过,一般可以为驳回状态。对于驳回状态,设计者需要考虑的是完全驳回还是驳回到上一个节点。

三、工作流程的制订及角色的划分
这一点只针对审批类的工作流进行阐述。
传统的工作流程来说大致可以分为这样几种情况:自由/半自由流程、固定流程、分支流程、并发流程与执行、并发流程或执行。
自由流程指的是从生产者到处理者每一个流程节点都可以由上个节点的操作者指定角色,半自由流程指的是指定角色的时候限定一定的范围。固定流程指的是流程是所有的流程即角色都是固定好的,不能修改。
这种情况的优点和缺点都极度的明显:优点即操作简单,逻辑简单,开发难度小。缺点为实用性较小,较为死板,不够灵活。
分支流程指的是当流程满足某一个跳转条件时即进行流程的跳转执行子流程,当流程执行完毕后再跳回到主流程进行接下来的流程操作。
比如某次采购单的采购,当采购金额小于100万时需要采购经理即可进行审批,当大于100万时需要副总级别的人物进行审批后才可以进行。
并发流程与执行指的是多个流程共同执行,所有流角色程都执行完毕后才流转到下一个节点,比如某次项目的开始需要招商部,企划部,工程部共同完成。只有当这些角色都审批完成了才能开始。
并发流程或执行指的是多个流程共同开始,只要有一个角色进行审批了,则流转到下一个节点。
在一般涉及到工作流的后台中,这几种情况大致就可以满足,这些称之为标准工作流,即后台给予固定的模板,相关配置人员进行配置即可。


回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|learun开发社区 - 力软.net/java快速开发平台官方论坛 ( 沪ICP备14034717号 )

GMT+8, 2022-6-28 06:01 , Processed in 0.130943 second(s), 19 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表