四、属性编辑说明
1. 流程整体的基本属性
流程标志必须添加,而且要和模块属性名小写一致;
2. 启动事件的基本属性
3. 顺序流的基本属性
新版本与老版本不同的地方在于,无需设置顺序流的属性,系统会自动判断同意或者不同意。PS:如果你是通过导入流程按钮导入了以前画的老流程,其中有设置这个的话,需要去掉,要不然执行流程时会报错。
4. 人员审批(UserTask)的基本属性
1、主要设置属性:分配用户。共分为两种设值方式,一种是身份存储,一种是固定值。
① 身份存储:设值方式比较死板,只能填入角色名和登录名,不能填入其他的值。但此种方式有输入提示,只需输入一个相关字符,便能查询出相应的值。
PS: `assignee`、 `candidateUsers`、 `candidateGroups`具体用法可以查看旧版流程的相关描述。
② 固定值:此种方法就与旧版的有点相似了,无智能提示。
相对于身份存储设值方式的死板,固定值填值的方式就比较多样化了。可以跟身份存储的填值方式一样,只填入角色名或者登录名。也可以填入系统自带的函数来获取相应的审批人,这里提供三种通过系统自带的函数来获取审批人的方法。
a. 第一种方法的值需要填入候选组中(PS:此处需要用到业务流程设计中的规则),作用是通过表单中的某个字段去查询出相应的审批人。表达式:$$引用规则key,例如: $$baojiadan.cxzg
。
规则设置如下(PS:规则中sql语句需要注意的是最外层select查询出来的值只能是 sys_user
表中的ID,不能是其他的值,否则无效;传入的参数只能是id,其他的无效(传入的参数id是流程所在表单的主表ID,在流程启动时,系统自动传入的)。):
流程中设置如下:
b. 第二种方法的值需要填入分配中(PS:此处需要用到业务流程设计中的规则),作用也是通过表单中的某个字段去查询出相应的审批人(PS: a,b两种都是通过表单中的某个字段查询出相应的审批人,但是不同点在于a是获取多审批人的用法,b是获取单审批人的用法)。
表达式: ${flowCondition.getStringValueByParam(execution,引用规则key,"")}
,
例如: ${flowCondition.getStringValueByParam(execution,"baojiadan.cxblr","")}
规则设置如下(PS:规则中sql语句需要注意的是最外层select查询出来的值只能是 sys_user
表中的 LOGIN_NAME
,不能是其他的值,否则无效;传入的参数只能是id,其他的无效(传入的参数id是流程所在表单的主表ID,在流程启动时,系统自动传入的)。):
流程中设置如下:
c. 第三种方法的值需要填入候选组,作用是通过当前用户所在组织拥有销售经理角色的用户(PS:当前用户指的是当前操作的用户或者说是启动流程的用户)。表达式: $角色名
,例如: $主管
。
流程设置如下:
PS:对于驳回环节的处理,新版与旧版不同的地方在于,旧版驳回环节需要画好驳回流程,并自己手动设置办理人,但是新版是不需要的,新版流程是不需要画驳回环节的,这些都是系统自动判断并处理的。
2、动态表单属性:
可添加的属性如下:
again
该属性表示该环节为驳回给流程发起人的环节,并且修改单据数据(如果只是为了修改单据可以使用modify属性)rpt
该属性表示设置审批环节中打开哪些报表可见(如果不设置该属性则显示默认的报表)。PS:名称为:none|none时表示不现实报表modify
该属性表示该环节可以修改单据数据,name设置为 1 (则显示当前流程的单据) ;
(如果name为指定自定义表的名称,则显示自定义表单。其实填写的就是自定义表单的属性名,但必须要小写,例如:qingxiujiazhubiao
)roles
该属性表示该环节可以设置指定角色,选择指定的用户为下推数据的创建人approve_title
该属性表示设置默认“同意”按钮的新名称reject_title
该属性表示设置默认“不同意”按钮的新名称button
该属性表示设置自定义审批动态按钮
5. 任务监听(Task Listener)的基本属性
目前任务监听处理类为SendMessage.Java这个类主要用于处理完成任务时,发送信息通知,单据查询通知,下推新生成的单据查看的通知等等功能;
主要方法有:
sendRemind(ActivityExecution execution,String title,String roleName,String rptName)
例: ${sendMessage.sendRemind(execution,"采购计划","采购","报表key|报表名")}
title
---通知标题,roleName
---通知角色范围,rptName
---报表key|报表名(不填的话,只显示报表),roleName
为" "或null值,表示默认给流程发起者;
功能:表示发送通知给拥有指定角色的用户,来查看相应的流程历史信息
sendRemindByTaskName(ActivityExecution execution,String title,String taskName,String rptName)
例: ${sendMessage. sendRemindByTaskName(execution,"采购计划","采购经理审批","报表名")}
title
---通知标题,taskName
---历史审批任务名称,rptName
---报表名
功能:表示发送通知给历史办理该名称任务的用户,来查看相应的流程历史信息
sendBusinessRemind(ActivityExecution execution,String title,String roleName, String entityName)
例: ${sendMessage.sendBusinessRemind (execution,"采购单变更业务提醒","","com.MainTable")}
title
---通知标题,roleName
---角色名字,entityName
---模块实体名:规则为”模块名(小写).主表名”sendOrder(ActivityExecution execution,String title,String roleName)
例: ${sendMessage.sendOrder(execution,"采购计划","采购")}
title
---通知标题,roleName
---通知角色范围,roleName
为" "或null值,表示默认给流程发起者;
功能:表示发送通知给拥有指定角色的用户,来查看相应的单据数据
sendOrderByTaskName(ActivityExecution execution,String title,String taskName)
例: ${sendMessage.sendOrder(execution,"采购计划","采购经理审批")}
title
---通知标题,taskName
---历史审批任务名称
功能:表示发送通知给历史办理该名称任务的用户,来查看相应的单据数据。
${dataDeal.callProcForMysql(ActivityExecution execution, String proc)}
例: $ {dataDeal.callProcForMysql(execution, "p_biang_geng_ke_hu_ywy_zy")}
Proc
——数据库中的存过名称
功能:调用数据库中的存过。注:此存过必须带如下两个参数:IN inId BIGINT,IN inHandleUserId
bigint。