I can't seem to find any good documentation on Script Runner or any examples for doing this online. The one link I found that seemed promising doesn't work, and I can't find documentation to figure out what's wrong. Does anyone have any examples of updating a select list custom field in a post function on a transition? Also, is there a good resource for Script Runner out there? Script runner seems very powerful, but it's lacking heavily in documentation. I love jira-python and am really productive with it even though I don't know python just because the documentation is so good. It seems like you really could do anything with Script Runner if it had decent docs/examples.
Here's what I have...
/* IF issue has the 'Assigned QA' field populated, set 'QA % Complete' value to 100 when issue is closed */ import com.atlassian.jira.component.ComponentAccessor import com.atlassian.jira.issue.MutableIssue import com.atlassian.jira.ComponentManager; import com.atlassian.jira.issue.fields.CustomField; import com.atlassian.jira.issue.CustomFieldManager; MutableIssue issue = issue def customFieldManager = ComponentAccessor.getCustomFieldManager() def qaResourceCf = customFieldManager.getCustomFieldObjectByName("Assigned QA") def qaResource = issue.getCustomFieldValue(qaResourceCf) def CustomFieldManager cFM_QAPercent = ComponentManager.getInstance().getCustomFieldManager() def CustomField qaPercent = cFM_QAPercent.getCustomFieldObjectByName("QA % Complete") def Options options = WebAppsCf.getOptions(null, qaPercent.getRelevantConfig(issue), null); def Option newOption = options.getOptionById(10840); ModifiedValue mVal = new ModifiedValue(issue.getCustomFieldValue(qaPercent), newOption ); if (qaResource) { customField.updateValue(null, issue, mVal, new DefaultIssueChangeHolder()); }
Here are the errors I get:
Caused by: org.codehaus.groovy.control.MultipleCompilationErrorsException: startup failed: Script1.groovy: 16: unable to resolve class Options @ line 16, column 13. def Options options = WebAppsCf.getOptions(null, qaPercent.getRelevantConfig(issue), null); ^ @ line 17, column 12. def Option newOption = options.getOptionById(10840); ^ Script1.groovy: 19: unable to resolve class ModifiedValue @ line 19, column 15. ModifiedValue mVal = new ModifiedValue(issue.getCustomFieldValue(qaPercent), newOption ); ^ Script1.groovy: 19: unable to resolve class ModifiedValue @ line 19, column 22. ModifiedValue mVal = new ModifiedValue(issue.getCustomFieldValue(qaPercent), newOption ); ^ Script1.groovy: 22: unable to resolve class DefaultIssueChangeHolder @ line 22, column 48. pdateValue(null, issue, mVal, new Defaul ^ 5 errors at org.codehaus.groovy.control.ErrorCollector.failIfErrors(ErrorCollector.java:302) at org.codehaus.groovy.control.CompilationUnit.applyToSourceUnits(CompilationUnit.java:858) at org.codehaus.groovy.control.CompilationUnit.doPhaseOperation(CompilationUnit.java:548) at org.codehaus.groovy.control.CompilationUnit.compile(CompilationUnit.java:497) at groovy.lang.GroovyClassLoader.doParseClass(GroovyClassLoader.java:306) at groovy.lang.GroovyClassLoader.parseClass(GroovyClassLoader.java:287) at groovy.lang.GroovyClassLoader.parseClass(GroovyClassLoader.java:267) at groovy.lang.GroovyClassLoader.parseClass(GroovyClassLoader.java:214) at org.codehaus.groovy.jsr223.GroovyScriptEngineImpl.getScriptClass(GroovyScriptEngineImpl.java:337) at org.codehaus.groovy.jsr223.GroovyScriptEngineImpl.eval(GroovyScriptEngineImpl.java:109) ... 186 more
You're trying to use ModifiedValue but you haven't imported it!
https://docs.atlassian.com/jira/latest/com/atlassian/jira/issue/ModifiedValue.html
import com.atlassian.jira.issue.ModifiedValue
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.