外观
节点初始化插件
简介
用于在某个节点打开表单、提交表单的时候对业务数据进行赋值。初始化动作不会判断是否已经存在值,均会对字段进行赋值,如果已存在值不希望二次赋值,则需要自行判断!
配置
TIP
流程插件中只有节点初始化插件才能更新业务对象的数据,其他时机的修改赋值都是无效的。
展示前置脚本与保存后置脚本 是 Groovy 脚本,如果涉及比较多字段的赋值、建议抽出业务脚本来做初始化处理,尽量避免写太多Groovy脚本,这样可以借助IDE的语法检查,也有利于业务逻辑归纳管理
描述
用于描述该初始化配置,推荐尽量使用简洁语言描述清晰该条配置的功能以及影响
初始化节点
必填字段,指定业务数据初始化执行的节点 如果选择“开始节点”则表示在流程启动时执行初始化动作
展示前脚本
流程打开表单前执行,如果表单多次打开、则会多次执行,常用于当前用户信息的赋值, 可以使用以下插件变量
task
任务对象(任务节点才有)instance
实例对象(启动时没有)
如: 对当前用户ID、名字赋值、对当前用户的当前组织 字段进行赋值
javaDemo业务对象为例 //展示前初始化一些字段信息(更多方法参考ContextUtil API) import com.dstz.base.common.utils.UserContextUtils; Demo.put('bm',sysScript.getCurrentGroupName()); // 所属部门名字 Demo.put('bmId',UserContextUtils.getGroupId());// 所属部门ID Demo.put('sqrq',new Date()); // 申请时间 import import com.dstz.org.api.model.IGroup; // 获取当前部门上级中组织类型 =1(公司)的部门 IGroup compnay = orgScript.getSpecificSuperOrg(null,1); if(compnay != null){ compnay.getGroupId() compnay.getGroupName() }
保存后脚本 流程提交表单后执行,保存草稿、提交任务均会执行,所以在某些场景需要判断提交的动作,或者是否已经存在值(比如启动时不存在bpmTask 可以通过isTask判断),然后再执行赋值动作。
后置脚本可以使用 插件变量( 但是 不支持 variableScope 变量操作)
如配置在流程开始节点,初始化订单编号的脚本:
java// 后置初始化,可以减少流水号的损失 if(StrUtil.isEmpty(Demo.get('zd2'))){ Demo.put('zd2',sysScript.getNextSerialNo("dayNo")); }
- 某节点,点击同意按钮,更新业务对象某业务字段
javaif("agree" == actionCmd.getActionName()) { SchoolStudent.put('type','审批通过') }else{ SchoolStudent.put('type','审批不通过') }