工作流系统实例演练
有了工作流引擎,工作流设计器,工作流管理平台,自定义表单,然后业务流程确定之后,就可以快速的做好能运行的流程了。
首先业务要确定,包括业务细节部分。以一个 问题跟踪流程为例,实战演练一下,如何快速的搭建一个可以运行的业务流程。
业务需求:
用户在使用 我们公司的产品时,经常会遇到一些问题,有的是不会使用的问题,有的是误解,有的是bug,也有的是对产品的建议等等。
我们拟收集这些用户遇到的问题以及处理过程,所以设计如下流程:
流程如上面过程,具体的细节要求:
1、相关人员审核问题,通过则发送到技术人员解决问题,拒绝,则表示问题描述不够,打回原填写人继续填写。
2、原填写人收到打回的问题,可以继续完善,再次发送给审核,也可以直接作废问题,结束这次问题描述。
3、技术人员解决问题,有个锁定问题的过程,即谁先锁定了问题,就由谁解决。
4、解决的问题反馈给用户,用户查看处理结果,无异议则结束流程,也可以继续提出疑问,和技术人员继续沟通解决。
分析需求:
根据上面的需求描述,设计问题跟踪表如下:
根据业务过程和表,得出,至少需要设计三张表单:
用户提出问题表单
技术人员处理问题表单
反馈给用户时的,用户查看和继续提出疑问的表单
流程设计过程:
根据上面的业务流程:
用户提出问题《-》审核部门审核问题-》技术解决问题《-》反馈给用户-》结束
可以看出整个业务流程分为,4个环节,提出问题-》审核-》解决问题-》反馈
所以用eworkflow的流程设计器,新建一流程,流程属性页设置
业务标签页面填写 问题跟踪表名 和主键字段名...
然后画出,初始化动作。和4个步骤,每个步骤均带上动作。用连线连接好。流程的雏形就画好了,可以先保存一下。
再根据流程的细节要求,细化每个节点的属性,业务流程如下:
细化的过程:
节点名称的修改
拒绝后打回的动作结果连线,此连线为有条件结果,条件为业务表单中传来的通过还是拒绝的选项。因为表单还未制作,自定义条件中,可以先设置false,如这样设置<arg name="script">false</arg>
打回后的问题,可以直接作废的动作有条件结果连线,条件为业务表单中传来的 是否作废的 选择。表单未制作,自定义条件中,先设置成<arg name="script">false</arg>
设置任务信息:提出问题步骤,设置直接指派的任务;
审核步骤:设置直接指派任务,任务参与人为相关的审核部门人员。
解决问题步骤:设置竞争型任务,任务执行人为技术部门的人员。
问题反馈步骤:设置直接指派任务,任务执行人为问题的填写人。
注意:步骤动作设置完任务节点,再在步骤的动作中,选择相对应的动作条件。即:
直接指派型任务 --- 选择 判断直接指派任务的执行人
竞争型任务 --- 选择 判断竞争型任务的签收人
动态会签型任务 --- 选择 动态会签任务的可执行人判断条件
平均分配型任务 --- 选择 判断平均分配型任务的签收人
问题反馈步骤,继续提出问题,返回的有条件结果连线的设置,以及条件脚本的设置。先设置成false,待表单制作好后,再将条件填上。
审核步骤拒绝时,打回原填写人继续填写的设置,
问题反馈步骤,返回给问题的提出人查看处理结果。
业务流程设计完成。
业务表单的设计:
将业务表建立。新建业务表单,拉下数据集,拉下grid控件。在数据集中添加好业务字段。
拉下label控件,text控件,combox控件,将数据集中的字段,绑定到这些控件。
业务表单的属性页中,设置好表单名称,引入工作流工具条。
保存。则问题填写表单制作完成。
细节的设置,因为审核步骤用的表单,和填写 是同一张表单,所以,审核 是否通过等信息,需要设置控件权限,在填写步骤不可见;
审核的结果,作为条件送到流程中使用,则数据集中 审核结果字段,需要选择 流程用。
是否作废的结果,作为条件送到流程中使用,数据集上问题状态 字段,设置为 流程用。
问题处理表单的设计:
将表单挂接到流程节点上:
打开流程:在相应动作节点属性页上,设置业务表单。
再次设置条件结果,打开流程,在相应的动作有条件结果上修改条件。
保存。
整个流程设计完成,流程就可以运行了,当然之前的保存的业务流程也能运行,只是有些细节没有体现。
在工作流管理平台,登录,找到流程,启动流程,就可以跑这个完整的业务流程了。
启动一个流程实例,
做一个登记,
查看一下此流程运行的轨迹,运行到 审核步骤了。
换成 审核部门的人员登录,从我的待办任务中,找到任务连接,审核通过,则提交到技术部门。技术部门处理问题,反馈给用户,直到问题关闭,结束一个流程实例。
......
对流程设计器,eform表单熟悉的话,业务流程细节又很确定,最多2小时,就能完成这样一个能运行的业务流程了。
当然需求是不断变化的,我们利用eworkflow+eform的设计也可以是不断变化的。
在测试运行阶段,随时可以调整流程,随时可以调整业务表单;
在正式运行后,可以通过流程版本的控制,随时调整需求,随时调整流程,随时随地的调整业务表单。