直接跳到内容
本页目录

作者:侯金霞
更新于:7/24/2023

节点初始化插件

简介

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

配置

img.png

TIP

  • 流程插件中只有节点初始化插件才能更新业务对象的数据,其他时机的修改赋值都是无效的。

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

  1. 描述

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

  2. 初始化节点

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

  3. 展示前脚本

    流程打开表单前执行,如果表单多次打开、则会多次执行,常用于当前用户信息的赋值, 可以使用以下插件变量

    • task 任务对象(任务节点才有)
    • instance 实例对象(启动时没有)

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

    java
     Demo业务对象为例
     //展示前初始化一些字段信息(更多方法参考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()
     }
    
    
  4. 保存后脚本 流程提交表单后执行,保存草稿、提交任务均会执行,所以在某些场景需要判断提交的动作,或者是否已经存在值(比如启动时不存在bpmTask 可以通过isTask判断),然后再执行赋值动作。

    • 后置脚本可以使用 插件变量( 但是 不支持 variableScope 变量操作)

      如配置在流程开始节点,初始化订单编号的脚本:

    java
         // 后置初始化,可以减少流水号的损失
         if(StrUtil.isEmpty(Demo.get('zd2'))){
           Demo.put('zd2',sysScript.getNextSerialNo("dayNo"));
         }
    
    • 某节点,点击同意按钮,更新业务对象某业务字段
    java
        if("agree" == actionCmd.getActionName()) {
            SchoolStudent.put('type','审批通过')
        }else{
            SchoolStudent.put('type','审批不通过')
        }
    
节点初始化插件 has loaded