Skip to main content

流程应用启动流程

在请假申请案例的基础上,采用业务单据实例-流程应用启动流程。

案例下载

1. 介绍

info

往下学习之前,比须熟悉【案例-请假申请】的配置过程,约30分钟。

以【案例-请假申请】为例,在该案例的基础上,采用业务单据实例-流程应用启动流程,指用户通过“业务框架按钮”,调用API去启动流程应用的流程配置。

img

下面,在案例-请假申请的基础上,主要针对新功能部分进行配置讲解

2. 开发平台的配置

开发平台配置,主要新增两个知识点:

  • 业务单据实例:通过业务动作按钮保存业务数据和提交流程、设置业务框架状态属性等。
  • 流程应用:通过配置流程应用启动流程的方式,使用流程应用配置流程(相对于流程定义启动流程)功能范围更广,可以满足多种业务场景的需求。

2.1 添加引用

本案例,需要添加的引用:

添加引用作用
vbase_prd_workflow(vbase_产品化流程管理)必须添加,配置流程应用启动时需要使用。
例如:通过执行API_WorkFlowOpenStartApplicationWindow(打开启动流程应用窗体)方法启动流程,该方法在vbase_prd_workflow(vbase_产品化流程管理)构件中。
LoginComp(登录构件)主要用于获取当前登录用户信息赋值给表相关系统和业务字段
userName:用户名称
userId:用户Id
orgName:机构名称
orgId:机构Id

在本案例中,新增vbase_organization_facadeVBase_组织机构vbase_prd_workflow(vbase_产品化流程管理)引用。

img

引用构件的方法使用,以及窗体使用,可以查看:流程常用方法-方法信息

2.2 创建表

在案例-请假申请的基础上,请假申请(leave)表设计不变。

命名规范:

表编码表名称
leave请假申请

表设计如下:

img

2.3 创建业务动作

在本构件中,选择【业务动作】菜单,按开发规范定义业务动作【保存】、【提交】。

命名规范:

业务动作编码业务动作
action_submit提交
ep_action_submit提交(业务动作扩展实现)
action_save保存
ep_action_save保存(业务动作扩展实现)

img

2.4 【请假申请】窗体

在案例-请假申请的基础上,主要更新页面设计,导入业务动作,然后重新定义方法。

对比案例-请假申请的配置,在本案例中新增多一个窗体输入。

私有编码名称类型初始值描述
bizId流程业务Id文本流程字段。
主要在流程定义时,设置业务关联配置,将业务表id映射给流程变量bizId,
那么在流程任务对应的待办、已办任务打开流程框架时,加载对应的业务数据。
mainId主表Id文本主要用于主页面编辑、查看数据时打开编辑窗体进行传参。
parentWindowInstanceCode来源窗体实例编码文本用于执行来源窗体方法。
本案例中,主要是保存数据时执行主窗体的方法,用于判断参数,刷新主窗体数据。

2.5 业务单据实例

在本案例中,由于使用打开业务框架,通过业务动作按钮启动流程,因此需要定义业务单据实例。

在【请假申请列表】窗体中,通过“新增”或“业务单号”打开业务框架,进行业务单提交、编辑、查看。业务单据实例概念说明,请参考业务单据实例

img

2.6 【请假申请列表】窗体

1. 窗体输入

由于本案例,在编辑窗体保存数据时 ,不直接配置退出窗体规则,若直接关闭窗体,则需要根据保存情况刷新主页面数据。

因此,在【请假申请列表】窗体中,需要定义相关窗体输入和方法设置保存状态。

私有编码名称类型初始值描述
currentWindowInstanceCode当前窗体实例编码文本当其他窗体需要执行当前窗体方法时,传递给目标窗体。
isEditData编辑数据标识文本Flase用于判断编辑窗体是否编辑了数据,主页面根据返回值为true刷新数据

2. 方法定义

在案例-请假申请的基础上,修改以下几点:

  • 窗体加载事件:获取currentWindowInstanceCode(当前窗体实例编码)
  • 更改“新增”单击事件:设置打开业务框架,而不是打开窗体。
  • 更改“业务单号”链接事件:设置打开业务框架,而不是打开窗体。
  • 新增setEditInfo设置修改信息(编辑窗体调用)自定义方法:主要由【请假申请】窗体保存时执行,给窗体输入isEditData(编辑数据标识)赋值True,新增和编辑场景根据窗体输入isEditData(编辑数据标识)为True则刷新数据。

1. 窗体加载事件

img

2. 新增事件

img

① 打开业务框架

img

② IF:@isEditData==True

在业务框架【请假申请】中,保存逻辑将执行本窗体自定义的setEditInfo设置修改信息(编辑窗体调用)方法,设置窗体输入isEditData编辑数据标识为True。

则刷新数据,执行执行方法_loadData(加载数据)

3. 业务单号链接事件

与新增事件类似,只是编辑或查看场景,需要传递业务表id数据。

img

① 打开业务框架

img

② IF:@isEditData==True

执行方法:执行方法_loadData(加载数据)。

4. setEditInfo设置修改信息(编辑窗体调用)事件

主要由【请假申请】窗体保存时执行,给窗体输入isEditData(编辑数据标识)赋值True,新增和编辑场景根据窗体输入isEditData(编辑数据标识)为True则刷新数据。

(1)方法输入

编码名称类型默认值描述
isEnable是否可编辑布尔False

(2)规则

img

img

2.7 构件服务映射

添加了业务动作的扩展实现,需要勾选(默认会勾选,若拷贝的窗体则需手动勾选)。

img

3. 执行平台的配置

使用超级管理员(账号sa)身份登录控制台,或者将【流程管理】菜单授权给系统管理员登录配置中心,进行流程管理的配置。

往下学习之前,须熟悉V-AppBase前几节课程的知识,以及一些数据的准备:

在案例-请假申请的基础上,主要讲解通过流程应用配置流程的过程。

img

3.1 流程定义-流程定义

在案例-请假申请的基础上,同样使用请假申请(leave)流程定义。

img

3.2 流程定义-流程图定义

在本案例中,只需要设计流程图,相关流程活动节点属性,无需设置,主要通过流程应用设置。

info
  • 若在流程图定义中,设置了活动节点相关属性,也会同步到流程应用中。
  • 同样,在流程应用中修改活动节点后,也会同步至流程图定义中。

img

3.3 流程定义-流程变量

在本案例中,结合开发平台中表单窗体对应的【提交】按钮,定义的流程变量一致。

区别:
  • 在流程框架/非流程框架中,流程变量一般通过业务关联配置变量映射,使得流程变量和对应的字段编码一致。
  • 在业务框架-流程应用配置流程的过程中,无需配置业务关联配置,因此流程变量需要通过自定义(一般也是定义和对应的字段编码一致)。

img

3.4 待选构件方法管理

在本案例中,需要在流程启动后、流程结束后相关事件中,设置业务单据状态,因此需要选入在开发平台中定义的构件方法,作为流程应用配置时的待选数据。

img

3.5 流程应用-流程表单管理

在本案例中,需要在流程应用中关联表单窗体,因此需要选入对应的流程表单,并且设置表信息,作为流程应用配置时的待选数据。

img

3.6 流程应用-流程应用

(1)目录管理

img

(2)新增流程应用

新增流程应用,关联流程定义。

img

(3)流程应用设置

img

① 基础设置

  • 可启用流程
  • 启动操作菜单设置,一般保留默认,不设置
  • 默认启动和开始环节表单才可编辑,其他环节不可编辑,可按需勾选
  • 默认流程办结不须填写审批意见,可按需勾选
  • 根据本案例需求,需要设置流程启动后、流程结束后事件

img

流程启动后:

img

img

流程结束后:

img

② 关联表单

img

③ 环节设置

img

【员工申请(流程开始)】:环节属性设置环节名称。

【部门经理审批】:环节属性设置环节名称,执行人设置选择对应的岗位。

img

【总经理审批】:环节属性设置环节名称,执行人设置选择对应的岗位,输入线条件(请假天数 > 3天)。

  • 执行人选择

img

  • 输入线条件

img

img

【结束】:设置输入线条件(请假天数 <= 3天)。

3.7 功能演示

一般用户登录,进行“请假申请”启动流程。

本案例请假申请天数小于等于3,流程审批顺序:员工申请(开始)→ 部门经理审批 → 结束。

本案例请假申请天数大于3,流程审批顺序:员工申请(开始)→ 部门经理审批 → 总经理审批 → 结束。

若用户“赵六”提交请假申请4天,则用户“王五”作为部门经理审批人,用户“张三”作为总经理审批人,依次审批任务。