由外部指定执行人
在请假申请案例的基础上,设置审批人为外部指定人员。
1. 介绍
往下学习之前,比须熟悉【案例-请假申请】的配置过程,约30分钟。
以【案例-请假申请】为例,在该案例的基础上,更改案例需求(案例流程不变)和【总经理审批】人工环节的执行人类型,以及在审批过程中保存业务表信息。
本案例需求:
- 申请人发起请假申请,由部门经理审批后,当请假天数小于等于3天时,直接结束流程;
- 当请假天数大于3天时,经部门经理审批后,由部门经理指定总经理,经部门经理审批后,结束流程。
下面,在案例-请假申请的基础上,主要针对新功能部分进行配置讲解。
2. 开发平台的配置
开发平台配置,几乎与案例-请假申请的配置一样,主要新增两个内容:
- 新增总经理相关表字段,并且获取相关用户信息赋值给业务表字段,用户信息一般通过
VBase_组织机构
构件获取,因此需要引入该构件; - 通过在审批环节保存业务表单,因此需要新增方法扩展实现
EP_流程管理_业务关联_获取业务单数据
,该扩展实现在vbase_workflow(VBase_流程管理)_API
中,因此需要引入该构件。
因此,引入的流程管理构件有所不同。
本案例,需要添加的引用:
添加引用 | 作用 |
---|---|
vbase_workflow_facade(VBase_流程管理) | 必须添加,配置流程启动时需要使用。 例如:打开 "流程启动" 窗体启动流程,该窗体在 vbase_workflow_facade(VBase_流程管理) 构件中。 |
LoginComp(登录构件) | 主要用于获取当前登录用户信息赋值给表相关系统和业务字段userName:用户名称 userId:用户Id orgName:机构名称 orgId :机构Id |
vbase_organization_facade(VBase_组织机构) | 主要用于获取人员赋值给表对应的总经理字段。 |
vbase_workflow(VBase流程管理_API) | 在审批环节保存业务表单时,需要实现方法扩展实现,那么流程业务操作菜单(任务提交)才会调用扩展实现,保存业务表数据。 |
在案例-请假申请的基础上,新增vbase_organization_facadeVBase_组织机构
、vbase_workflow(VBase流程管理_API)
引用。
引用构件的方法使用,以及窗体使用,可以查看:流程常用方法-方法信息。
- 1. 实体定义
- 2. 界面设计
- 3. 方法定义
根据更新的
请假申请(leave)
表,重新定义实体。在案例-请假申请的基础上,主要更新页面设计。
在本示例中,“业务单号、申请人、申请机构、申请日期”控件设置只读,“总经理”控件,设置默认不显示。
在案例-请假申请的基础上,更新窗体加载事件、新增总经理获取事件和方法扩展实现。
1. 窗体加载事件
在本案例中,增加【总经理】控件在窗体加载数据时的显示、只读控制逻辑。
(1)IF:[leave].[applyDays]>3
根据本案例需求,总经理控件默认不显示,在审批环节根据天数大于3天时才显示,同时根据总经理控件是否为空设置使能。
(2)控件属性设置【总经理显示、只读】
2. 总经理链接事件
定义方法输入(实体):主要用于接收返回人员信息。
规则链:
(1)打开窗体并返回数据【机构人员选择】
选择窗体:
设置返回参数:
(2)IF:!BR_OUT.BR_OpenComponentReturnData1.isConfirmSelectionOnClose
中断规则:退出业务组件Flase,则中断当前规则链。
(3)给界面实体/控件/变量赋值:将变量实体赋值给对应的实体字段总经理。
3. 方法扩展实现
在本示例中,只需在审批环节当请假天数>3天时,由部门经理选择总经理,作为总经理审批节点的审批人,并且保存业务表单数据,因此需要在"EP流程管理业务关联_获取业务单数据"方法扩展实现中配置保存逻辑。
IF:总经理控件显示:在窗体加载事件中,根据条件设置总经理控件是否显示。
① 必填项检查:检查总经理控件,总经理Id为空,则流程无法获取下一步执行人,不能流转任务。
② 中断规则:必填不通过,则中断所有规则链——由于方法扩展实现,在【任务提交】的流程框架菜单中执行,因此需要中断所有规则链,否则仅中断当前,依然会执行提交逻辑。
③ 保存实体到数据库:启动流程时保存数据,在审批环节修改总经理数据后,同样要保存数据。
在窗体方法配置中,如果添加流程管理的方法扩展实现,则需勾选构件服务映射作,否则执行方法时会报错。
其中,窗体若直接选择方法扩展实现,会自动匹配勾选服务映射。若该窗体通过拷贝,或方法扩展实现通过拷贝的方式,则不会自动勾选,需要自行勾选。
3. 执行平台的配置
执行平台配置,几乎与案例-请假申请的配置一样,主要新增总经理Id流程变量,以及更改了【总经理审批】人工环节的执行人选择为“由外部指定执行人”。