流程事件
使用场景
当涉及到的业务需要多人协同参与审核和确认的时候,类似于各种传统的纸质审批工作,就可以使用流程事件了。
操作步骤
我们可以按照以下步骤一键派生出流程事件:
本文档将用以下的请假流程为例,介绍流程事件的操作步骤。
员工可以发起请假,如果请假时长小于8小时,则可以自己审批,否则需要通过管理员审批。
准备工作:完成实体建模
在开始流程事件之前,需要先完成实体建模,包括人员实体、请假实体等。
如下图所示,建立了一个 请假实体
,包含 请假人员
和 请假时长
两个属性。其中请假人员和人员是聚合关系。
步骤一: 新增流程事件
- 在事件层上点击
编辑
按钮,点击新增事件向导
,进入流程事件初始化面板:
- 设置流程事件的相关信息
配置项 | 说明 | 默认值 |
---|---|---|
主体类 | 流程事件是以哪个实体为主体展开的 | |
管理类型 | 这里选择 流程管理 | |
流程影响 | 创建 、更新 、注销 | 创建 |
流程模板 | 审批 、注册 、下发 、上报 、自定义 | 审批 |
名称 | 流程事件的名称 |
步骤二: 完善配置
基本配置
主要用于配置事件的名称、结构和参与节点等信息。
- 名称:事件的名称,用于标识事件。
- 管理类型:事件类型,基础事件或流程事件(只读不可编辑)。
- 管理结构:参与事件的实体的结构,从主实体(必选)出发,按照关联关系选择参与的实体。
- 参与节点:参与事件的其他节点(无法通过主实体的关联关系找到的其他实体)。
操作配置 操作配置中列出了流程事件相关的查询、查看和管理操作,点击相应链接即可进入相应的操作配置进入页面。
- 查询操作: 用于配置查询当前流程实例列表页的信息,和 基础事件-查询操作 配置一致。
- 查看操作: 用于配置查询当前流程实例查看页,和 基础事件-查看操作 配置一致。
- 管理操作: 流程事件的核心配置,在流程设计详细展开。
- 发起权限: 用于配置流程事件的发起权限,只有配置了权限的用户才可以发起该流程事件。需要首先在实体-权限配置中配置相应的权限。
- 跳转操作: 用于实现在当前流程页面,跳转或者弹窗展示到其他的页面。和 基础事件-跳转操作 配置一致
步骤三: 执行SQL脚本
当完成流程事件的配置后,需要执行SQL脚本,生成流程事件的表结构。
/**首先执行所有流程环节字典初始化脚本 */
/concept-platform/demo/src/main/resources/sql/data/dict/[流程字典].sql
/**再依次执行所有流程事件初始化脚本 */
/concept-platform/demo/src/main/resources/sql/data/workflow/[流程].sql
至此,一个基本的流程事件已经配置完成了。
运行系统即可看到该流程事件,参考流程管理。
流程概念
工作流模型
工作流模型是整个平台中的一部分。它和平台中的组织权限和表单产生联系。和平台以紧耦合方式结合,平台中的对象及应用流程模型都可以访问。
平台中的工作流程功能分为两部分,一部分为结构部分,一部分为实例部分。结构部分中为定义流程的主体,平台会提供可视化的流程设计器来对流程本身进行 增加
、修改
、删除
操作。一旦一个流程被 启动
后那么即为这个流程创建了一个实例。
同样,如果需要对流程进行某些修改操作,需要对流程进行 停用
操作后才能进行。
流程
流程指流程模型,其中记录一个流程的全部信息。
每个流程必须拥有版本号,每个流程默认的版本号为v0。因为每个流程都会产生实例,所以针对流程做 修改
操作会引起不必要的麻烦。流程模型中不提倡对于流程使用修改操作,而是利用新增+版本号+创建时间+创建人的方法,来解决流程修改的问题。
流程中的环节必须有开始环节和结束环节,开始环节可以有多个,结束环节也可以有多个。
流程实例
指在一个流程中流转的数据及流程运行的过程,一个流程可以被 启动
多次,每次启动流程都会创建一条针对于该流程的实例。
只有启动流程产生流程实例后,才可以处理流程。在平台中提供流程启动的方法,该方法既可以绑定到一个按钮上,通过点击按钮来触发,也可以通过程序来自动执行。
流程实例中包括若干个环节实例,每个环节实例中又包含了该环节的表单实例。
流程变量
流程变量指事先在流程中定义好的变量。在定义完成后,在每个环节中都可以通过规则中的赋值表达式对其赋值和取值。
流程实例在运行的过程中,使用定义的流程变量就会产生 流程变量实例
,同时初始化了流程变量实例。流程变量实例可以提供给在服务层 Java 代码中使用的变量。
环节
是各种类型环节的超类,其中保存了环节的基本属性。定义每个环节的通用属性,后续的各种类型环节全部继承于该环节产生。
具体的环节类型有:开始环节
、结束环节
、活动环节
和 决策环节
等。
更加详细的环节信息,参考流程设计中的 流程环节
部分。
业务活动
启动
启动是针对具体流程的操作。当用户需要办理一项业务时,他需要启动对应的业务流程,用户启动流程的过程,称为启动流程。
每启动一次流程即产生一个该流程的实例。如张三需要请假,就需要启动请假流程,启动请假流程后会产生一个请假流程实例。
签收
签收动作是针对个人任务的操作。当在一个业务活动环节产生任务后,任务办理人需要签收该任务后再进行办理,办理人签收任务后任务状态变为在办,签收前任务状态为待办。
提交
提交动作是针对个人任务的操作。当用户接收到了一个业务流程产生的任务时,可以执行提交操作,提交操作代表同意办理,使流程往下一环节方向运行。
退回
退回动作是针对个人任务的操作。当用户接收到了一个业务流程产生的任务时,可以执行退回操作,退回操作代表不同意退回,使流程往上一环节方向运行。
撤回
撤回动作是针对个人任务的操作。撤回只有在任务办理完成后才可以触发,指把已经办理的任务撤回来重新办理。
如张三填写了请假单并提交给领导审批,但是在提交后发现请假天数填写错了,这时张三就可以执行撤回操作把已经办理的任务撤回来重新填写。需要注意,撤回的前提是在下一环节办理人没有签收的情况下才能执行。
委办
委办动作是针对个人任务的操作。指个人任务可以由办理人委托给其他人处理。如当组长李四出差时,可以委托王五来审批张三的请假单。
删除
删除动作是针对流程实例的操作。如当张三发起请假流程,产生了一个请假流程实例后,此时张三发现不需要请假了,可以执行删除操作来删除该流程实例,同时会删除相关环节实例、任务实例。需要注意,删除操作一般只能由流程发起人执行。
流程环节
流程环节是流程的基本组成部分,可以组合配置不同的流程节点来实现业务需求。
开始环节
代表流程的开始,绝大部分的流程都有且只有一个开始环节,代表从这个环节开始流程。
在有些业务场景中,可能存在多起点流程,例如同样一个请假流程,员工和主管填写的请假表单甚至流程走向都不尽相同。
结束环节
结束环节代表流程的结束,一个流程中可以有多个结束环节,代表流程可以从多个分支结束。结束环节可以有多个流入流向。
活动环节
指工作流程中的一个基本的业务活动环节,需要用户办理,继承自办理环节,所以拥有办理人这个属性。同时它也拥有一些表示流程处理逻辑的特别属性。
针对于每个不同环节的页面可能会有不同的配置,如页面是否可查看,是否可办理,是否可审批等。页面中具体的控件受制于页面本身的状态,如对于只读状态的页面,那么其内控件的状态也只能在只读、隐藏中选择,而不能选择编辑。
决策环节
决策环节的出现代表后续的环节需要判断流程走向,并且这个判断只会有一个条件成立,即流程只会选择后续一个分支走向运行。
决策类型分为 手动决策
和 自动决策
。
自动决策为流程引擎根据流向上设定的条件自动判断流程的运行方向,目前决策环节是支持多条件满足的,即从决策环节出发可能会存在多个并行的环节实例。
手动决策则不由流向上条件来判断流程走向,而通过手动指定下一环节(可以指定多个环节)来确定流程的走向。设定为手动决策后,在流程运行至此决策环节时会弹出以窗口让其手动指定。
流程设置
流程设计器
工具上的设置是一种 配置时设计
侧重于系统配置业务人员或开发人员使用高级高能,如 变量赋值
、 条件判断
、操作状态
等对流程进行深层次的控制。
由
事件层
->操作配置
->管理流程
进入:
提示
通过 配置时设计
修改后,需要重新生成代码并重新执行脚本。
流程设置
整体设置
进入流程设计器,点击整体设置。
配置项 | 说明 |
---|---|
流程名称 | 设置流程的名称 |
编码 | 设置流程编码(唯一) |
转换流程字典 | 系统会自动派生流程及环节所需字典,点击可以跳转查看 |
流程变量 | 设置流程变量,包括 文本型 和 对象型 |
提示
流程变量设置可定义流程变量并设置变量名和变量初始值。 如可以设置请假时长(文本)和请假人员(对象)。
在随后的环节设置和流向设置上可对流程变量进行赋值和取值。以及使用支持在sql中使用流程变量 [WF:流程变量code]
select create_by from t_rygl_ry where id = [WF:QJRY]
活动环节设置
通过 配置时设计
进入流程设计器,点击活动环节节点,出现活动环节配置页面
名称
设置活动环节的名称。
转换字典项
系统会自动派生环节所需字典,点击可以跳转查看。
流程标题
可以通过表达式设置当前流程环节的标题,不同于名称,标题设置会影响流程显示的标题栏和待办、已办任务的列表的标题。
办理类型
按照业务设计,选择是 提交
还是 审批
。一般来说是先有 提交
,后有 审批
。
办理操作
点击链接即可进入办理操作配置页面。分为 办理结构
和 办理功能
两个部分。
办理结构
办理结构主要配置了活动环节的流程表单,可以设置用户可以看到哪些 表单项信息
,是否可以编辑,以及数据处理配置等。 办理结构的部分和基础事件管理的基础事件-创建操作 配置基本一致。
办理功能
配置项 | 说明 | 备注 |
---|---|---|
自定义初值逻辑 | 设置的流程的初值 | 逻辑编排 |
启用提交 | 是否启用提交功能 | 提交节点 |
自定义提交逻辑 | 逻辑编排 | |
启用删除 | 是否启用删除流程 | |
自定义删除逻辑 | 逻辑编排 | |
启用撤回 | 是否启用撤回功能 | 提交节点 |
自定义撤回逻辑 | 逻辑编排 | |
启用签收 | 是否启用签收功能,启用后,办理时需先签收 | |
启用审批 | 是否启用审批功能 | 审批节点 |
自定义审批逻辑 | 逻辑编排 | |
启用撤回 | 是否启用撤回功能 | 审批节点 |
自定义撤回逻辑 | 逻辑编排 | |
启用保存草稿 | 是否启用保存草稿功能 | |
是否启用办理轨迹 | 启用后可以查看办理轨迹 | |
是否查看流程图 | 启用后可以查看流程图 |
变量赋值
点击 新增项
,左侧选择在 整体配置
中设置的变量,右侧通过输入框或者表达式输入,可以给设置的变量赋值。
决策环节设置
通过 配置时设计
进入流程设计器,点击决策环节节点,出现决策环节配置页面。
决策环节分为 自动决策
和 手动决策
。
自动决策
自动决策为流程引擎根据流向上设定的条件自动判断流程的运行方向,目前决策环节是支持多条件满足的,即从决策环节出发可能会存在多个并行的环节实例。
自动决策的条件是在连线设置中配置的。
手动决策
手动决策则不由流向上条件来判断流程走向,而通过手动指定下一环节(可以指定多个环节)来确定流程的走向。设定为手动决策后,在流程运行至此决策环节时会弹出以窗口让其手动指定。
连线设置
点击环节之间的连线,即可进行连线设置。连线设置主要实现两个功能: 环节流向
和 流向条件
。
对于普通连线,通过直接连线的方式,可以设置环节的流向
对于开始环节,直接流向其他环节,不能由其他环节流入。
对于结束环节,只能由其他环节流入,不能流向其他环节。
对于自动决策环节流向下一个环节的连线,点击连线,可以通过表达式设置 自动决策的条件
,如*请假时长>8小时
运行时配置
对于创建的流程,在运行时可以根据业务灵活调整,如调整办理人、调整会签参数、调整后置处理等。
详细说明查看流程管理。