登录系统后(登录成功界面参考图 4),点击左上角“功能列表”页签,进入功能列表页面,如下图所示:
选择点击“系统管理”版块中的“流程定义”后,打开系统定义的流程列表页面,如下图所示:
点击上图(图 31)列表页左上角“加号”按钮,弹出节点列表页如下:
填写好流程名称后,选择该流程定义的有效时间范围,当前是否有效,为该流程定义一个有意义的小图标, 之后,点击右下角“确认”按钮,即可保存全新的流程定义。流程定义之后,需要继续定义该流程的每一个节点 以及每一个节点中所包含的动作,以及动作具体要执行的 SQL 语句脚本,请一一参考后续章节。
添加好新流程之后,点击上图(图 31)列表页右侧对应的“编辑”按钮,弹出如下界面:
选择第二个页签,“高级”页签,选择一张已经存在的业务表,点击右下角“确定”按钮,即可显示流程和功 能的绑定。
添加新流程后,点击上图(图 31)列表页右侧对应的“作废”按钮,即可作废该流程定义,反之点“生效” 按钮,则生效。流程定义的作废和生效并不影响已经启动的流程示例,而是对新启用流程的动作产生作用。
添加新流程后,点击上图(图 31)列表页右侧对应的“节点”按钮,打开节点列表页签,如下图所示:
点击上图(图 34)左上角“加号”按钮,弹出节点添加窗口,如下图所示:
填写节点名称,选择“流程节点”或者“功能节点”,流程节点表示该处于该节点的待办任务,会出现在统一 待办列表中,而“功能节点”为功能性的,需要开发独立的功能列表页面来处理该节点的待办任务,不会显示在 统一待办任务列表中。开始节点和结束节点是不需要添加的,系统会默认给出。添加完所有节点之后,返回节 点列表页,页面显示的数据如下图所示:
上图以实体店销售流程为例,将销售分成:下单、交易成功和归档三个正常流程节点,需要考虑退货和退 款的业务,在正常的流程中增加一个“撤单后货款确认”的异常流程节点,共四个节点,包含了下单以及中途撤 单两个业务。具体的动作,需要在配置逐个节点的路由。
点击上图(图 34)列表页右侧“作废”按钮,即可作废该节点,点击“启用”按钮即可启用该节点。启用后的 节点才可以被流程实例所执行到。流程节点的启用以及作废,不会影响到已经执行完毕的流程实例,只会影响 新启动的流程实例。
流程节点路由是流程节点之间相互扭转的路径,例如:提交到下一个节点、打回到之前的节点、跳转到任 意指定的节点...等等,由节点和目标节点形成一条路径,提供给节点参与人选择,并同时执行预定的动作。 点击上图(图 34)列表页右侧节点数据对应的“路由”按钮,打开该节点的路由列表页面,如下图所示:
点击上图(图 37)左上角“加号”按钮,弹出添加路由窗口,如下图所示:
填写“路由名称”以及选择要跳转到哪个“目标节点”后,点击“确认”按钮,列表页面自动刷新,显示刚刚添 加的路由数据,如下图所示:
请依据实际的业务需求以及设计流程图,依次设定好每一个节点的路由。如果要使某一路由失效,请点击 上图(图 39)“作废”按钮,修改路由名称或者目标节点,请点击“编辑”按钮,再次修改。
当流程节点配置受理候选人之后,流程实例提交到该节点时,才可以从候选人列表种选择参与人受理该业 务,或者由受理候选人竞选受理该笔业务,这是由节点的类型和路由的类型决定的,如果某一节点没有任何可 供候选的受理人,则该笔业务无法继续提交。定义流程节点参与角色请点击图 36 中对应节点数据右侧的“授权” 按钮,弹出角色授予界面如下图所示:
上图角色授予界面勾选中“销售专员”角色,其它角色均未勾选,确定无误点击右上角“保存”按钮,即可实 现流程节点候选人的确定。以上操作形成最终的结果就是:”只有销售专员有下单的权限”。当然,这些具体的 业务规则是可以有特定权限的账号任意修改的。
流程实例的每一次路由都会有很多业务表中的业务数据需要关联其它业务进行同步处理。
例如:已付款订单确认时,要根据订单商品数量消减库存。
又例如:确认退货退款时,要根据退款订单商品数量增加库存。 等等...非常多的业务规则。
在了解业务库的基础上,首先需要找到该路由的 ID,点击路由列表页(图 39)对应路由数据右侧的“编辑” 按钮,打开路由信息,如下图所示:
上图“不可修改数据”页签最后一项“路由 ID”为 127,记住这个数字,使用数据库管理工具打开业务库(库 名:windowdb),找到 wf_def_node_route_checkscript 和 wf_def_node_route_actionscript 两张表。 以下将分别做简单介绍。
1,wf_def_node_route_checkscript 的其作用是在流程发生动作之前或者之后,校验业务数据,该表 字段:b_a 表示检查数据的时机 b 是 befor 表示路由扭转之前,a 表示 after 表示路由发生跳转之后。该表 sql 列的值存储一条 SQL 查询语句,只返回 1 行记录,并且最多返回 1 列,如果返回 null 或者空字符串,表示验 证通过,如果返回一段描述文字,表示该路由不能通过。在 sql 中可以使用如下占位符:
序号 | 占位符 | 中文描述 |
1 | ${my.id} | 当前登录人的 ID,可以和业务库 user 相关表产生关联 |
2 | ${routeId} | 路由 ID,可以和业务库流程节点路由表产生关联查询 |
3 | ${ins_id} | 流程实例 ID,可以和业务库流程实例表产生关联查询 |
4 | ${task_insert_time} | 流程实例任务创建时间(格式 yyyy-MM-dd HH:mm:ss) |
5 | ${wf_def_id} | 流程定义 ID,可以和业务库流程定义表产生业务关联 |
6 | ${from_node_id} | 来源于流程的哪个节点(节点 ID),关联流程节点定义 |
7 | ${from_node_index} | 来源节点的索引号,同流程节点定义表中的 index |
8 | ${from_node_timeliness} | 受理时效(几个小时后超时),同流程节点定义表中的时效 |
9 | ${from_node_type} | 来源节点的类型,同流程节点定义表中的节点类型 |
10 | ${to_node_id} | 去往目标节点(节点 ID),同流程节点表 ID |
11 | ${to_node_type} | 目标节点的类型,同业务库流程节点表类型 |
2,wf_def_node_route_actionscript 的作用是在流程提交或者发生动作时,执行 SQL 语句,用于同 步业务库数据,该 sql 语句也可以使用占位符来替换运行时的关键业务变量,请参考上述列表(表 2)。
登录系统后(登录成功界面参考图 4),点击左上角“功能列表”页签,进入功能列表页面,如下图所示:
选择点击“系统管理”版块中的“流程实例管理”后,打开当前运行的流程实例管理列表页面,如下图所示:
该列表中列出当前系统正在运行的以及已经运行结束的所有流程实例。
每一个实例默认提供三个功能:
1、作废/恢复:也就是终止该笔业务和恢复该笔业务。
2、历史轨迹:可以查看当前流程处于哪个历史节点。
3、当前受理人:可以为当前流程实例增加或者更换业务受理人。
以上三个功能,分别对应图43列表右侧三个功能按钮。