流程表单节点初始化

用于在某个节点打开表单、提交表单的时候对业务数据进行赋值
初始化动作不会判断是否已经存在值,均会对字段进行赋值,如果已存在值不希望二次赋值,则需要自行判断!

初始化节点

必填字段,指定业务数据初始化执行的节点
如果选择“开始节点”则表示在流程启动时执行初始化动作

脚本描述

用于描述该初始化配置,推荐尽量使用简洁语言描述清晰该条配置的功能以及影响

展示前脚本

流程打开表单前执行,如果表单多次打开、则会多次执行,常用于当前用户信息的赋值,
可以使用插件变量( 但是 不支持 variableScope 变量操作)

如: 对当前用户ID、名字赋值、对当前用户的当前组织 字段进行赋值

Demo业务对象为例
//展示前初始化一些字段信息
import com.dstz.sys.util.ContextUtil;

Demo.put('bm',sysScript.getCurrentGroupName());
Demo.put('bmId',ContextUtil.getCurrentGroupId());

保存后脚本

流程提交表单后执行,保存草稿,提交任务均会执行,所以在某些场景需要判断是否已经存在值,然后再执行赋值动作
如配置在流程开始节点,初始化订单编号的脚本:

import com.dstz.base.core.util.StringUtil;
// 后置初始化,可以减少流水号的损失
if(StringUtil.isEmpty(Demo.get('zd2'))){
Demo.put('zd2',sysScript.getNextSerialNo("dayNo"));
}

提示

提示

展示前置脚本与保存后置脚本 是 Groovy 脚本
如果涉及比较多字段的赋值、建议抽出业务脚本来做初始化处理,尽量避免写太多Groovy脚本
这样可以借助IDE的语法检查,也有利于业务逻辑归纳管理