1 新建流程表单

1.1新增流程表单

必须包含字段proc_ins_id. 注意:主键必须是uuid,不能使用自增。

1.2设置页面

1.3生成代码

1.4获取表单地址

如下:

  • 发起表单:/test/activiti/oALeave/form/add
  • 修改表单:/test/activiti/oALeave/form/edit
  • 审核表单:/test/activiti/oALeave/form/audit

2新建流程模型

新建一个请假模型,然后点击在线设计,进入设计流程。 设计如下流程图

2.1设置流程属性

  • 流程名称:流程定义KEY,对应procDefKey,用来标识一个流程
  • 名称:流程定义名称
  • 描述:流程定义描述
  • 目标命名空间:流程命名空间。

2.2流程发起人流程变量

在开始节点的属性中设置“发起人”变量名:如:applyUserId

2.3给开始节点挂接表单地址

  • 全局表单:新建流程时或活动元素上未设置表单标识时调用的表单,位于开始事件属性中“表自定义表单”字段,指定表单访问地址。
  • 活动表单:当前步骤使用的表单,使用活动节点属性“自定义表单”字段。 将1.4步骤中,生成的发起表单:/test/activiti/oALeave/form/add地址,输入红框中。

2.4用户任务设置

选择部门领导审批,在活动节点属性中设置”表单地址", 输入1.4步骤中生成的表单地址审核表单:/test/activiti/oALeave/form/audit, 如下图所示:

在活动节点属性中找到“代理”属性,点击“…”弹出如下窗口

  • 代理人:任务执行人,设置系统中的“登录名”(loginName)。
  • 候选人:任务执行人,多个用逗号“,”隔开。
  • 候选组:任务执行组,多个用逗号“,”隔开,设置系统中的“角色英文名(enname)”。
  • 代理人和候选人的区别是:代理人不需要签收任务,直接可执行任务;候选人和候选组为竞争方式分配任务,被指定人待办中都有一条任务,谁先签收谁就获得任务的执行权。
  • 参与者可指定流程变量(EL表达式),动态指定参与者,如:${processer}

2.5设置流转条件

在流转线的属性中找流转条件同意和不同意,这里,写EL表达式,返回true或false,如下:${pass}和${!pass},这个pass变量和代码生成器生成的流程代码中使用的变量相同(代码生成器默认生成的流转变量为pass)。

  • 同意:${pass}
  • 不同意:${!pass}

2.6 调整申请设置

人事审批的设置和部门领导审批设置方式相同,跳过。进入调整申请任务设置。

  • 代理人:既流程发起人,applyUserId。
  • 自定义表单:输入1.4中获取的流程表单地址,既修改表单:/test/activiti/oALeave/form/edit。

2.7 设置流转条件

在流转线的属性中找流转条件重新申请和结束流程,这里,写EL表达式,返回true或false,如下:${reapply}和${!reapply},这个reapply变量和代码生成器生成的流程代码中使用的变量相同(代码生成器默认生成的流转变量为reapply)。

  • 重新申请:${reapply}
  • 结束流程:${!reapply}

2.8设置结束节点

2.9保存流程设计图

工具栏上点击“保存”按钮 填写名称和描述,点击“保存”按钮。 此时可点击浏览器上的“叉号”关闭流程设计窗口。

2.10注意事项

  • 所有编号,如:模型编号、流程编号、活动节点编号,都不允许以数字开头。

3部署流程

回到模型管理界面,点击[部署按钮]

  • 同一标识流程,部署多次,版本号自动加1
  • 正在运行的流程,再次部署新流程后,正在运行的流程还按照原来流程设置走,再次新建的流程使用新流程走。

4测试执行

工作流程个人办公发起流程启动【请假流程】 系统自动调用流程设计时设置的开始节点中的“表单标识”地址 这事待办人的待办中出现一条待办项,点击进入任务办理,下方显示流转信息:

流程跟踪图: 在待办中点击“环节名称”,进入流程跟踪图界面