simple script validation

arild marthinussen October 24, 2013

Hi, I would like to add a simple script validator - to my Jira project

As a maintainer for the system IVH, when issues are tagged with system=IVH and status is open. When starting transition 'start progress' the custom fields 'IVH Architect' and 'IVH developer' must have a value. If not - an errormsg sholud promt "the fields IVH Arcitect' and 'IVH developer' must have a value before starting progress when system is IVH

Any idea's on how this could be done ?

2 answers

0 votes
Bharadwaj Jannu
Rising Star
Rising Star
Rising Stars are recognized for providing high-quality answers to other users. Rising Stars receive a certificate of achievement and are on the path to becoming Community Leaders.
October 24, 2013

you can write workflow validator plugin see the below

https://developer.atlassian.com/display/JIRADEV/Workflow+Plugin+Modules#WorkflowPluginModules-Validators

http://www.j-tricks.com/1/post/2010/08/workflow-validator.html

in that you can write a code like

CustomFieldManager cfm=ComponentAccessor.getCustomFieldManager(); 

InvalidInputException e= new InvalidInputException();

Set<Label> labels=issue.getLabels();{assuming issue tagging adding labels to it}

if(labels.size()==1)

{

String label=labels.getLabel();

if(label.equals("system=IVH") && issue.getStatusObject().getName().equals("Open"))

{

Object iVHArchitect=issue.getCustomFieldValue(cfm.getCustomFieldObjectByName("IVH Architect"));

Object iVHDeveloper=issue.getCustomFieldValue(cfm.getCustomFieldObjectByName("IVH developer"));

if(iVHArchitect ==null || iVHDeveloper==null)
{
 e.addError("the fields IVH Arcitect' and 'IVH developer' must have a value before starting progress when system is IVH");
 throw e;
}
}

}

Object system=issue.getCustomFieldValue(cfm.getCustomFieldObjectByName("system"));{assuming if system is a customfield}
if(system!=null && system.toString().equals("IVH"))
{

String label=labels.getLabel();

if(label.equals("system=IVH") && issue.getStatusObject().getName().equals("Open"))

{

Object iVHArchitect=issue.getCustomFieldValue(cfm.getCustomFieldObjectByName("IVH Architect"));

Object iVHDeveloper=issue.getCustomFieldValue(cfm.getCustomFieldObjectByName("IVH developer"));

if(iVHArchitect ==null || iVHDeveloper==null)
{
 e.addError("the fields IVH Arcitect' and 'IVH developer' must have a value before starting progress when system is IVH");
 throw e;
}
}

}

Bharadwaj Jannu
Rising Star
Rising Star
Rising Stars are recognized for providing high-quality answers to other users. Rising Stars receive a certificate of achievement and are on the path to becoming Community Leaders.
October 24, 2013

if you need built-in plugin go through Script Runner plugin.

0 votes
Christian Czaia _Decadis AG_
Rising Star
Rising Star
Rising Stars are recognized for providing high-quality answers to other users. Rising Stars receive a certificate of achievement and are on the path to becoming Community Leaders.
October 24, 2013

You could check the following plugin. It has a "field has a value" condition built-in.

https://marketplace.atlassian.com/plugins/com.innovalog.jmwe.jira-misc-workflow-extensions

Other than that I'd go for Jamies behaviours or script runner plugin to script my way through...

https://marketplace.atlassian.com/plugins/com.onresolve.jira.plugin.Behaviours

https://marketplace.atlassian.com/plugins/com.onresolve.jira.groovy.groovyrunner

Others can probably provide you with a script...

Cheers Christian

Suggest an answer

Log in or Sign up to answer