1 工作流简介
1.1 为什么需要工作流
工作流可以将工作分解成定义良好的任务或角色,按照一定的规则和过程来执行这些任务并对其进行监控,达到提高工作效率、更好的控制过程、增强对客户的服务、有效管理业务流程等目的。
1.2 平台工作流的特点
- 灵活的工作流设置提供标准接口规范,适用于各业务系统的审批管理;
- 可根据不用业务类型设置多个审批流程;
- 对于一个流程可配置多个审批方案;
- 审批过程中可征询其它非流程用户意见或委派给其它非流程用户进行审批;
- 支持假期规则设置;
- 提供流程监控功能,可随时监控流程流转情况以及流程排错;
- 支持规避提交人审批策略等多种人性化服务与配置。
2 工作流的定义
工作流是集成开发平台的核⼼模块,括业务实体维护、流程绘制、运行监控、流程测试以及待办任务的管理。工作流提供公用流程与自定义流程两种类型,以授权的方式进行流程权限的隔离。只有管理员可对流程进行新增、修改和授权操作,其他授权用户只能对授权流程进行修改操作。
2.1 表单维护
工作流中表单分为电脑表单、手机表单、平板表单。
表单维护路径:工作流管理→流程关联表单
流程关联表单中,管理员在授权应用下可建立表单、修改表单信息。绘制流程图时,配置流程属性和节点属性中静态表单或路由表单时可调用。
2.2 实体管理
应用和实体是流程定义的前提,每⼀个流程都有对应的实体,每⼀个实体都有对应的应⽤。所以,用户要在绘制流程图中定义一个流程,必须在应用管理中有相关应用的授权,然后实体管理中选择应用,在应用下建立实体,最后在绘制流程图相关实体下建立流程。
实体是一类流程业务的集合,⽐如费⽤报销实体、项目管理实体、采购审批实体等,由于平台采⽤的是流程业务与实体分离的设计,所以注册实体时不需要关联具体的视图或表,流程中需要使⽤到的业务数据都需要通过传值给⼯作流才能处理。
(1)实体维护
在“工作流管理→实体管理”中维护应用下实体,管理员在授权应用下新增、编辑、删除实体。
回调函数:实现工作流调用演示中订单审批状态的显示;
回调函数配置方式参考:http://xip.xzsoft.cc/?p=473#121
(2)实体属性:主要用于绘制流程图配置变量时调用。
操作示范:
实体下新增属性,
在绘制流程图插入变量时可以选择,
(3)业务状态属性:主要用于在绘制流程图配置流程属性、节点属性和连线中的业务状态时调用,如撤回业务状态、回退业务状态、驳回业务状态。
操作示范:
新建业务状态,
在流程图中流程属性、节点属性、连线属性中配置业务状态,
2.3 流程图相关属性
2.3.1 流程属性
流程名称:新增时定义的流程名词,可以修改
流程编码:新增时定义的流程编码,后续不可以修改,可以使⽤该编码启动流程
流程表单:指定流程审批时嵌⼊的业务表单,可以分别指定电脑端、平板端和⼿机端,分为静态表单、路由表单、变量表单三种类型,静态表单来源于流程表单管理注册的表单,路由表单是按照条件指定具体的表单,操作时,左边指定表单,右边指定使⽤该表单的条件,变量表单来源于实体属性注册的变量。
规避策略:分为审批⼈规避策略和提交⼈规避策略两⼤类,审批⼈规避是指在流程审批中,如果在不同的审批阶段有都有确定的唯⼀的审批⼈,审批⼀次后,第⼆次再次审批则⾃动通过,审批⼈规避策略分为相邻节点和流程内部,如果两个节点中间夹杂着判断、抄送、功能
也算是相邻节点,流程内部指的是整个流程内相邻或不相邻的节点,实际上也包含了前⼀种类型,但是两种类型只能指定⼀个;提交⼈规避策略是指审批⼈和提交⼈是相同的⼈的时候,需要规避审批设置,如果实际业务上提交⼈并不是业务发⽣⼈,可以指定提交⼈变量进⾏替换。
绑定条件:⼯作流可以按实体启动,也可以按流程启动,绑定条件⼀般⽤于按实体启动的情况,设置好相应的条件后,启动流程时根据条件来过滤或者确定使⽤实体下的哪⼀个流程。
撤回事件:为流程指定撤回时撤回时间的类型
撤回业务函数:指定撤回时间时执⾏的具体的函数
撤回业务状态:指定流程撤回后的业务状态,该业务状态来源于实体管理下实体的业务状态
流程描述:对于流程的说明
2.3.2 通知节点
通知节点适用于多位审批人抢单审批。抢单实际上是⼀种特殊类型的通知,审批⼈都会收到待办通知,其中任意⼀⼈处理后流程就根据该审批的操作往下流转。
节点编码:拖拽后⾃动⽣成的编码,可以修改编码 ;
节点名称:默认为节点类型,需要改成实际的审批节点名称 ;
客户化待办:勾选后直接替换待办打开的审批⻚⾯ ;
流程表单:与流程属性上的⼀致 ;
待办标题:定义该节点的审批⼈收到的待办通知标题,可以插⼊变量 ;
执⾏⼈类型:分为静态⽤户、静态岗位、路由⽤户、路由岗位、授权类型、变量类型、过程类型、SQL 类型、WEB 服务。
静态⽤户直接选取平台的有效⽤户,如果是组织流程,则会过滤为该组织下的⽤户;
静态岗位选取平台部⻔维护下维护的有效的岗位,如果是组织流程,则会过滤为该组织下的岗位;
路由⽤户和路由岗位只是按条件设置⽤户和岗位,维护时,左边选择对应的⽤户或岗位,右边选择使⽤该⽤户或岗位的条件;
授权类型为⼀种特殊的执⾏⼈类型,选择授权类型后,需要到节点执⾏⼈授权的功能界⾯为该节点指定执⾏⼈,选择授权类型后下⽅会出现是否按部⻔隔离的选项,勾选后,在实际的业务中,如果有传递部⻔的 ID ,则会对授权的⽤户进⾏部⻔隔离;
变量类型可以选择配置在实体属性的变量;
过程类型主要是配置 Oracle 的存储过程来获取⽤户;
SQL 类型为直接⾃定义 SQL 来获取⽤户;
WEB 服务类型是通过WEB 服务来获取⽤户;
实际的使⽤中可以根据具体的业务需求来选择所需要的执⾏⼈类型,除了授权类型外,其他类型⼀旦流程启动后在修改流程图均不会改变审批⼈,因为流程图属于流程定义,⽽流程启动后实际上是重新创建了⼀个流程实例,流程上所有的配置信息均会复制到流程实例⾥,如确实需要修改执⾏⼈,需要到流程运⾏监控进⾏调整。
节点执行人:选择执行人类型后配置节点执行人,节点的执⾏⼈就是该节点的审批⼈,执⾏⼈最终均为平台的⽤户。
手动选⼈:勾选后流程提交时会弹出选⼈的界⾯,不勾选则不出现选⼈界⾯,如果通知节点配置的岗位类型、授权类型、SQL 类型、过程类型、WEB 服务类型、变量类型出现多个执⾏⼈时,也会强制弹出选⼈界⾯。
参与规避:勾选后该节点参与审批⼈规避策略和提交⼈规避策略。
征询:勾选后会在待办审批界⾯会多出⼀个征询按钮,征询主要⽤于审批⼈在审批时需要咨询其他⼈意⻅,征询的对象是选择系统所有的⽤户中的⼀个,征询需要等待被征询⼈的意⻅才能继续往下流转,否则需要撤销征询,才能往下流转。待办信息⾥具有所有者和执⾏⼈两
个概念,征询实际上改变的是流程的所有者。
委派:勾选后会在待办审批⻚⾯多出⼀个委派按钮,委派主要是讲审批权限授权给其他⼈,委派的对象是是选择系统所有的⽤户中的⼀个,发出委派后,被委派⼈和委派⼈均可以进⾏审批,流程军可以往下流转。委派实际上改变的是待办的执⾏者。
转发:节点执行人可将待办转发给该节点其他无代办的执行人。
允许回退:勾选后会在待办的审批⻚⾯多出⼀个回退按钮,回退是指讲流程回退到其中某个审批阶段,具体由审批⼈⾃⼰选择决定。
回退业务状态:定义流程回退后的业务状态,需要配合实体上的回调函数使⽤。
驳回:勾选后会在待办的审批⻚⾯多出⼀个驳回的按钮,驳回是指讲流程驳回到发起⼈。
驳回按钮名称:定义驳回按钮名称,如果需要修改。
驳回业务状态:定义驳回后的业务状态,需要配合实体上的回调函数使⽤。
允许撤办:该配置实际上是针对发起⼈的,意思是到该审批节点,发起⼈可以将流程撤回。
是否提醒:⼯作流的提醒接⼝,该待办处理后可以发出右键、短信、系统的提醒。
超时天数:定义该节点的多久未处理算是超时。
超时执⾏线:定义超时发⽣后流程的流转⽅向,选择的线为该节点的其中⼀条迁出线。
执⾏前事件类型:定义执⾏操作时需要执⾏的函数的类型,分为过程类型和 WEB 服务。
执⾏前时间函数:定义执⾏操作是需要执⾏的函数。
执⾏后事件类型:定义执⾏操作时需要执⾏的函数的类型,分为过程类型和 WEB 服务。
执⾏后时间函数:定义执⾏操作是需要执⾏的函数。
描述:定义该节点的说明信息。
2.3.3 会签节点
会签节点是指多⼈参与审批的流程的节点,流程的⾛向由会签规则决定,会签规则有⼀票通过、⼀票否决、⽐例通过、⽐例否决、抢单,由会签规则来看,会签必须有两条线,⼀条为通过线、⼀条为否决线,会签规则只能选择⼀种。当会签的连线只有⼀条时,默认为是,
如果不定义否的连线,则否决线默认执⾏驳回到发起⼈。
⼀票通过:是指多⼈在进⾏审批,其中⼀⼈通过,则流程就往通过线流转;
⼀票否决:是指多⼈在审批时其中⼀个审批⼈否决了,则按照否决线流转;
⽐例通过:是指审批⼈的通过率达到设定的⽐例后则按照通过线流转;
⽐例否决:是指审批⼈的否决率达到设定的⽐例后则按照否决线流转;
其他属性与通知节点属性一致。
实际业务中需要根据具体的业务场景设定会签的规则。
2.3.4 判断节点
判定节点主要是⽤于流程中的判断,条件的结果分为真假,所以条件具有两条迁出线。条件主要是实体属性的值的⽐较,也可以是实体属性值与另外的属性只想⽐较,可以将多个表达式进⾏或与连接。
2.3.5 功能节点
功能节点主要⽤于在流程中执⾏功能操作,可以是⼀个存储过程,也可以是⼀个 WEB 服务。
2.3.6 抄送节点
抄送节点主要⽤于某个节点执⾏完毕后,需要讲处理的信息抄送给其他⼈,被抄送的⼈不参与流程的审批,只能查看。
2.3.7 连线
连线是⽤于连接各个节点的线。
连线编码:拖动后⾃动⽣成。
连线名称:需要⾃定义,连线的名称会在待办⻚⾯的审批上形成⼀个按钮。
程序类型:定义通过该连线时执⾏的程序类型,分为存储过程和 WEB 服务。
函数名:定义通过该连线执⾏的函数。
连线类型:分为是和否,通知节点必须要有⼀条为是的线。
绘制流程图的流程属性和节点属性都较多,但是并不是每⼀个属性都需要设置,⼀般来说只需要设置好通知标题、节点执⾏⼈、以及表单即可,连线需要设置连线的名称。⼀个流程只能有⼀个开始节点,⾄少⼀个结束节点。
2.3.8 流程维护
2.3.8.1 创建流程图
要绘制流程图,需要先在顶部指定具体的应⽤,然后在点击左边实体⽂件夹前⾯的+号,再定位到下⾯的⽂件夹。平台的流程分为公共流程和组织流程,均会显⽰为实体下的⽂件夹,要绘制组织流程,需要先对⽤户进⾏组织授权才可以看到组织的⽂件夹,公共流程主要适⽤于⽆组织的流程或者跨组织的流程,组织流程⼀般⽤于具体的 某个组织下。选中公共流程或者组织⽂件夹,点击顶部的新增图标,填写流程的编码和名词即可完成创建⼀个空⽩的流程图。
创建完成后,双击该流程即可以进⼊流程绘制界⾯,流程绘制的界⾯左边是节点区域,中间是流程绘制区域,右边是流程或节点属性区域。
2.3.8.2 绘制流程
绘制流程的节点有开始、结束、通知、会签、判断、功能、抄送,以及连接各个节点的连线。
绘制流程图的⽅法是:⿏标点击左边的节点,该类型的即可选中并粘滞在⿏标上,如果要取消,点击该区域的下⽅空⽩区域即可,然后在中间的流程绘制区域单击⿏标即可将选中的流程节点放置到⿏标所在的位置,如果要改变位置,⿏标选中该节点拖动即可改变位置;⿏标点击中间绘制流程图的空⽩区域,右边则会显⽰流程的属性,选中某个节点或连线右边显示的是该节点或连线的属性。如果要删除节点或者连线,选择后,按键盘上的 delete 键即可 、删除。
绘制规则:
- 一个流程只能有一个开始节点,可以有多个结束节点;
- 每个节点必须有一条连接类型为“是”的牵出线;
- 通知、会签、抄送节点的待办标题和节点执行人必填;
- 每条连线必须填写连线名称;
绘制流程图完成后,点击“保存”按钮,如有错误会弹出详细提示,可根据提示进行修改。
2.3.8.3 流程复制
选中要复制的流程,点击顶部的复制按钮,在弹出的界⾯选择复制到公共流程下还是组织流程下,输⼊新的流程编码和流程名称即可。流程复制只能在同⼀个实体下进⾏,不可跨实体复制。
2.3.8.4 流程导入导出
点击“导出”,会弹出可导出的流程窗口,选择要导出的流程后,点击窗口右下角的“导出”按钮即可。
点击“导入”按钮,弹出文件选择提示框,选择要导入的流程文件(文件格式为 .XML)即可。注意:导入的xml流程所属的应用、实体、组织的编码必须同要导入的平台一致,如果要导入的平台没有与该流程所属应用、实体、组织的编码相同的应用、实体、组织,则流程导入不成功,导入后不会显示。导入流程支持跨平台、跨环境。
2.3.8.5 流程测试
流程绘制完成后,点击“流程测试”,弹出流程测试窗口,选择组织和部门后,点击窗口右下角的“测试”按钮,即可查看流程测试运行结果。
2.3.8.6 流程禁用
选择流程,点击“流程禁用”按钮后,在工作流调用演示中启动流程时自动过滤该流程。点击“流程启用”按钮,可再次启动流程时选择该流程。
3 工作流运行
工作流运行详解请参考:http://xip.xzsoft.cc/?p=935
3.1 启动流程
平台提供两种启动流程的方式:
(1) 启动+提交
首先在列表中选择要启动的流程,然后点击“按实体编码启动”或“按流程编码启动”按钮,提示创建实例成功后,点击“提交流程”按钮即可。
(2)启动并提交
在列表中选择要启动的流程后,直接点击“启动并提交流程”按钮,选择符合订单条件的流程后即可。
3.2 待办处理
用户在首页待办列表点击待办进入审批页面,执行审批操作。
3.3 运行监控和变更流程
3.3.1 运行监控
流程启动、提交、运行后,管理员可通过两种方式监控流程:
(1)工作流管理→工作流调用演示中,选择流程,点击“流程监控”,可查看审批历史记录和流程监控,了解审批人操作,确定目前流程运行状态;
(2)工作流管理→流程运行监控中,通过查询条件筛选流程,选择流程点击“监控处理”可查看流程运行状态;
3.3.2 变更流程
对于运行中的流程,需要及时更改未通过节点的信息,可在流程运行监控中变更流程。
选取运行中流程,点击“监控处理”按钮弹出详情界面,在左侧流程图中选中要修改的节点(已走过环节不可修改),在右侧实例信息中修改节点相关属性。生效范围区域下拉选择修改范围:当前实例、全部实例、选择实例,点击确定按钮修改完成。当生效范围下拉选择“选择实例”时,点击确定按钮弹出选择实例窗口,选择要修改的实例,点击确定即可修改。点击实例信息中生效范围区域“查看审批人”按钮弹出窗口可查看选中节点执行人情况;点击生效范围“修改审批人”按钮弹出窗口中列表可修改待办所有者和待办执行者,点击“应用当前实例”、“应用全部实例”、“选择实例”按钮可选择修改范围。
3.4 假期规则
适用于审批人在某个时间段内无法处理工作流审批任务的场景,通过假期规则将审批权限授权给代理人,由代理人人全权审批,委托人的所有待办自动转至代理人的待办列表。
3.5 征询和委派
征询:适用于审批⼈在审批时需要咨询其他⼈意⻅的场景。
审批人在审批页面点击“征询”按钮,选择用户后,该条待办在审批人首页列表变为“挂起”状态,征询需要等待被征询⼈的意⻅反馈才能继续往下流转,否则需要撤销征询,才能往下流转。
委派:适用于审批⼈将审批权限给予他人可代为审批的场景。
委派是将审批权限授权给其他⼈发出委派后,被委派⼈和委派⼈均可以进⾏审批,流程均可以往下流转。
二者的主要区别在于:委派下原待办所有者仍可审批,而征询不可。
3.6 审批中事件的执行
根据实际业务需要,用户在审批前后会执行不同的事件。
配置过程:绘制流程图时在通知节点和会签节点属性中配置执行前事件和执行后事件,选择函数类型,输入函数名。
3.7 抄送
流程运行中,通过抄送节点时,平台会向抄送节点执行人发送一条通知,用户可在“首页→通知”页签下查看通知,点击通知进入跳转页面可查看业务信息,抄送节点执行人无任何审批权限。
3.8 待办提醒
工作流待办提醒是指在工作流引擎生成待办后,给待办处理人发出审批处理提醒。
待办提醒模式包括两种:即时提醒和汇总提醒,对于同一套系统内二者只能任选其一。
待办提醒渠道包括三种:微信提醒、邮件提醒和短信提醒,对于同一套系统内三者可以同时启用。
即时提醒处理模式为在流程引擎生成待办后,即刻启动提醒线程将当前待办信息发送待办处理人已启用的提醒渠道内。
汇总提醒处理模式为平台系统在设定提醒频率下将某人未处理的待办信息发送到处理人已启用的提醒渠道内。
在“平台设置→参数管理”中,管理员通过启用相关参数开通提醒功能,具体参数如下;
(1)提醒模式
参数编码 | 参数名称 | 参数类型 | 参数描述 |
NOTICE_MODE | 待办提醒模式 | S | 待办提醒模式 |
(2)邮件提醒
根据员工管理中员工信息配置的邮箱发送邮件。
参数编码 | 参数名称 | 参数类型 | 参数描述 |
MAIL_PASSWORD | 发件人的账号密码 | S | 发件人的账号密码 |
MAIL_SERVER_AUTH | 是否需要身份验证 | S | 是否需要身份验证 |
MAIL_SERVER_HOST | 邮件发送服务器 | S | 邮件发送服务器IP |
MAIL_SERVER_PORT | 邮件发送服务器端口 | S | 邮件发送服务器端口 |
MAIL_USER | 发件人的账号 | S | 发件人的账号 |
NOTICE_EMAIL | 是否启用邮件提醒 | S | 是否启用邮件提醒 |
(3)短信提醒
根据员工管理中员工信息配置的手机号发送短信。
参数编码 | 参数名称 | 参数类型 | 参数描述 |
NOTICE_NOTE | 是否启用短信提醒 | S | 是否启用短信提醒 |
(4)微信提醒
首先在平台系统文件配置界面config.jsp中配置微信公众号相关属性,
然后再参数管理中启用相关参数
参数编码 | 参数名称 | 参数类型 | 参数描述 |
NOTICE_WEIXIN | 是否启用微信提醒 | S | 是否启用微信提醒 |
4 工作流归档
4.1 归档的操作
在“平台设置→参数管理”中,启用归档相关参数即可使用归档功能,参数如下:
参数编码 | 参数名称 | 参数类型 | 参数描述 |
IS_ENABLE_ARCH | 是否启用流程实例归档 | 系统 | 在流程实例结束后是否启用归档处理 |
流程实例启动、提交、运行后,流程中各节点执行人审批后,待办暂时保存在“首页→已办”页签列表中。该流程实例正常结束后,所有节点执行人的已办自动转存至“首页→归档”页签列表中。
4.2 归档的作用
待办归档可及时将节点执行人审批的业务单据保存管理,方便审批人查询、阅读历史业务单据。
4.3 归档的查询
用户可在“首页→归档”页签下,通过查询条件,筛选历史数据。