Scriptrunner Behaviours:如何在屏幕加载时仅设置一次自定义字段值
Jira Behaviours v5.5.9:仅首次加载设置字段默认值方案
问题痛点
- 用字段服务器端脚本设置默认值:用户手动清空字段后,脚本会再次触发并重置默认值,导致用户无法选择其他值
- 用初始化脚本替代:必填字段未填写导致验证失败后,页面重新加载时脚本会再次设置默认值,冲掉用户之前的修改
解决思路
核心是精准识别页面首次加载的场景,避开后续的字段变更、验证回显等操作。利用Behaviours内置的isFirstLoad()方法判断是否是首次打开页面,同时只在字段无值时设置默认值,保证用户后续的修改不会被覆盖。
最终Groovy脚本
import com.atlassian.jira.component.ComponentAccessor import com.onresolve.jira.groovy.user.FieldBehaviours import groovy.transform.BaseScript @BaseScript FieldBehaviours fieldBehaviours // 目标屏幕名称 final String targetScreenName = 'test' // 仅在目标屏幕且为首次加载时执行逻辑 if (fieldScreen.name == targetScreenName && isFirstLoad()) { def targetField = getFieldById(getFieldChanged()) // 字段无值时才设置默认值 if (!targetField.getValue()) { targetField.setFormValue("default") } }
关键细节
isFirstLoad():Behaviours原生方法,专门用来判断当前请求是否是页面首次加载,能准确排除后续的字段变更、验证失败刷新等场景- 多层校验:先锁定目标屏幕,再判断首次加载,最后检查字段无值才设置默认值,完全避免了用户修改后被强制重置的问题
内容的提问来源于stack exchange,提问作者nahebatoq
相关产品推荐
相关产品推荐

