# 审批表单
审批表单主要以下几点:
- 表单权限配置
- 节点表单授权
- 流程表单TAB权限
- 流程配置多个表单实现数据拷贝
- 业务模型数据设置:5.1 表单初始化/保存脚本的编写,5.2 字段设置的取值类型
# 功能描述
用于流程审批和填单的表单,同时可设置某个节点的表单权限。
表单支持方式:1.在线表单,2.url表单
数据保存方式:
- 实例表: 表单的数据存放到BPM_FORM_INST表中。
- 业务表: 表单数据存储到生成都物理表中
- 两者:两者进行存储。
# 操作步骤
切换【审批表单】
单个节点如果需要绑定表单
配置业务模型:当需要使用到在线表单,就需要配置业务模型,业务模型支持一个或多个。
表单类型: 全局表单,开始表单,明细表单,节点表单
查找表单规则:
- 在启动流程时:先查找启动节点的开始表单,找不到再查找全局表单
- 在审批流程时:先查找节点设置的表单,找不到再查找全局表单。
- 在查看流程实例时:先查找配置的明细表单,找不到则找全局表单。
手机表单:当配置了手机表单时,就可以在移动端填单和审批。
# 表单权限配置
# 功能描述
在流程审批过程中,流程表单支持一个或多个,有的情况下,某个节点需要根据权限,显示审批人或发起人有权限的表单。
# 操作步骤
选择两个业务模型
在全局表单只配置一个表单
设置开始表单,也就是发起表单,这里配置两个表单
点击【添加】给表单设置权限,意思是在发起时,费用报销单所有人发起流程都会显示,而审批意见只有朱芸芸发起时才会显示
权限的介绍:
全部 :这个表单所有人都可见。
含审批人:这个表单之前批过的人可见。
含发起人:如果是流程发起 ,那么当前人可见这个表单,如果是审批,当前人就是发起人,这个表单可见。
用户:指的组织架构里的用户,如果当前登录人在这个选择的人员中,那么这个表单可见。
用户组:指的组织架构里的用户组,如果当前登录人属于授权的用户组,那么这个表单可见。
超管登录查看审批表单
使用朱芸芸登录
# 表单字段授权配置
选择某个节点
点击【添加】添加表单,点击【表单授权】进入字段权限页面,设置后点击【保存】
页面关闭后,再点击【确定】
再点击【保存】
# 节点表单授权
# 流程表单TAB权限
# 功能描述
tab权限指的当表单有tab的情况,我们可以在某个节点上设置tab的权限,即那些tab可以访问,那些tab不可以访问。
# 操作步骤
配置好表单后,点击红框按钮,当然表单需要有tab才能配置。
配置权限
这个权限配置说明可以参考:《流程表单TAB权限》
# 流程配置多个表单实现数据拷贝
# 功能描述
有些情况下在流程配置多个表单的情况下,我们需要实现将一个表单的数据copy到另外一个表单,这时我们可以使用如下方式进行实现。
# 在设计表单中添加如下脚本
var copyConfig=[{from:{form:"cp1",field:"name"},to:
{form:"cp2",field:"name"},single:true,nodeId:"N1"},{from:
{form:"cp1",field:"user"},to:{form:"cp2",field:"user"},single:false,nodeId:"N2"}];在表单设计页面添加如下脚本
copyConfig 这时配置的变量名称,这个必须固定
{from:{form:"cp1",field:"name"},to:{form:"cp2",field:"name"},single:true,nodeId:"N1"}
这个是表示copy一个字段:
from:表示从哪里进行拷贝 to:表示拷贝的目标字段 form:表示拷贝的表单 field:表示字段 single:表示字段是否是单值字段 (像用户,用户组都是双值字段) nodeId: 这个表示在某个节点上执行拷贝,如果不配置,会忽略节点,在所有的节点都有效。这个节点可以配置多个,使用逗号分隔。
# 效果
在编辑时,在表单cp1 中添加脚本如下:
这里是在第二个节点拷贝 user控件的内容。
在发起时设置一个表单。
填写值
在审批时 第一个表单的值
第二个表单的情况,这里将用户字段做了拷贝。
# 业务模型数据设置
# 功能描述
在流程执行的过程中,我们会有些时候希望在某个节点,对某个表单字段进行赋值,或者在表单保存时,对表单字段进行赋值。
比如:我们执行到经理审批节点,希望系统能够带出经理的姓名出来,不用用户手工填写。下面就介绍一下系统能实现功能点。
# 操作步骤
切换到【审批表单】 点击箭头标注的图标,进入节点模型数据设置界面
这里需要注意的是:这个配置的查找规则和查询表单的规则不一致,只获取配置节点的配置。
这里有两种设置分别为:
- 初始化设定:这个指的是表单显示时,可以对表单字段设置值。
在初始化一栏,选择某个字段,点击【设置】
根据业务需求设置取值类型,设置值,点击【确定】
取值类型分别为:
常量:在系统中,经常会用到比如当前登录人的ID,登录人姓名等等数据,这些我们在系统中定义为常量。
脚本:脚本指指的是用户通过开发脚本获取字段的值,在脚本中用户可以通过[字段名]的方式获取字段的值。
比如表单有个 name的字段。脚本就可以编写为 :return "[name]";
需要注意的是,这个name 是这个字段的同一行数据,要么是主表,要么是子表中同一行的数据。
固定值:这个就没什么好说,这个字段为填写的值。
审批意见: 我们说一个场景,我们在设计表单的时候,经常有需要在表单上,有需要某某审批的字样。系统支持 我们设计一个字段,这个字段实际是整个表的一部分,我们通过
对这个字段设置审批意见,那他的意思就是,我们在审批时填写的意见,就会存入到这个字段。
因此需要注意的是:这个字段是主表字段,这个字段在保存时设置为审批意见,应为只有在保存时,会把填写的意见存入这个字段。
效果:
- 保存设定:这个指的是在表单数据保存时,数据优先保存设定的值。
选择某个节点,在保存设置一栏,给电话字段设置了一个固定值,点击【设置】,根据业务需求设置取值类型,设置值,点击【确定】
启动页面电话不填写
N2节点审批完,走的N3节点,电话字段赋予了设置的固定值
# 表单初始化/保存脚本的编写
# 功能描述
在系统中,一般可以对字段进行设置,比如常量,固定值,脚本,审批意见等,这样设置比较容易,但是业务场景不合适。
比如一次性需要初始化多个字段,比如我们根据用户Id获取 用户的,姓名,地址,邮件,电话,那我们就需要编写4个脚本,可能需要访问4次数据库。
这个效率有有些低,因此我们可以通过脚本,直接更改表单脚本。因此我们需要知道脚本改怎么写,上下文的表单数据是怎样的。
# 实现方法
代码执行参考
com.redxun.bpm.core.manager.impl.DataSettingHandler;
上下文变量:
boDefId:当前操作那个 BO定义
jsonData:表单JSON数据 结构示例{xm:"",nl:""}
我们编写一个脚本案例来说明问题:
jsonData.sx="无限极项目";
jsonData.dh="18456789087";
配置在开始节点点击初始化设置
启动流程,通过脚本赋予的值可在表单上呈现