首页 > 解决方案 > 使用 ScriptRunner 在 Jira 中进行条目格式验证

问题描述

我需要使用 ScriptRunner 验证用户在 Jira 中为“我的字段”输入的数据格式。

用户条目应由前缀(始终为“ABCD”)和后缀(数字)组成,例如 ABCD12345。

我的代码有问题:

  1. 如果用户输入任何少于 9 个字符的字符串,则不会发生验证;它必须是 9 个字符或更多。

  2. 用户输入什么前缀无关紧要 - 根本没有前缀验证。

  3. 对于等于或多于 9 个字符的字符串,仅验证后缀(从 5 到 9 的字符)。

    import com.onresolve.scriptrunner.runner.util.UserMessageUtil
    import com.opensymphony.workflow.InvalidInputException
    
    String field = getFieldByName("My Example Field").getValue()
    
    String prefix = field.substring(0, 4);
    String suffix = field.substring(4, 9);
    
    if (!prefix == "ABCD"){
        getFieldByName("My Example Field").setError("Incorrect prefix: " + prefix)
    }
    else if (!suffix.isInteger()){
        getFieldByName("My Example Field").setError("Incorrect suffix: " + suffix)
    }
    else {
        getFieldByName("My Example Field").clearError()
    }
    

标签: groovyjira

解决方案


关于提出的3个问题

  1. 添加验证检查field. 如果它小于 9 并且您期望否则,抛出一个错误。
  2. 不确定您使用的语法,如果您对这种情况不特别了解,那么!"ABCD".equalsIgnoreCase(prefix)可能会起作用,如果您愿意,那么可能prefix != "ABCD"
  3. 根据您的“我的字段”长度要求,当您 substring 时suffix,不要硬编码 9 而是使用字段长度。这应该有助于验证第 4 个字符之后的字符是否是长度为 1 到 x 的整数。如果字段长度为 4,我会添加一个检查,这意味着您的数字后缀没有空间。

推荐阅读