Проверка формата записи в Jira с использованием ScriptRunner - PullRequest
0 голосов
/ 20 декабря 2018

Мне нужно проверить формат данных, введенных пользователем для «Моего поля» в Jira, используя ScriptRunner.

Ввод пользователя должен состоять из префикса (всегда «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()
    }
    

1 Ответ

0 голосов
/ 20 декабря 2018

Относительно 3 возникших проблем

  1. Добавить проверку, проверяющую длину field.Если оно меньше 9, и вы ожидаете иного, выведите ошибку.
  2. Не уверен насчет используемого вами синтаксиса, если вы не знакомы с регистром, то !"ABCD".equalsIgnoreCase(prefix) может сработать, если вы, то возможноprefix != "ABCD"
  3. В зависимости от вашего требования к длине «Моего поля», когда вы вводите подстроку suffix, не задавайте жестко 9 и используйте вместо этого длину поля.Это должно помочь проверить, являются ли символы после 4-го числа целыми числами от 1 до x.Я бы добавил проверку, если длина поля равна 4, то есть нет места для вашего числового суффикса.
...