Hi,
I am able to get the value of a profiled in script console. But the same script fails to work in script runner behaviour section.
Script that I am using in script console:
import com.onresolve.scriptrunner.runner.customisers.WithPlugin
import com.deiser.jira.profields.api.field.FieldService
import com.deiser.jira.profields.api.field.Field
import com.deiser.jira.profields.api.field.list.ListField
import com.deiser.jira.profields.api.field.list.multiple.ListMultipleField
import com.deiser.jira.profields.api.value.ValueService
import com.atlassian.jira.component.ComponentAccessor
import com.atlassian.jira.issue.Issue
import com.atlassian.jira.project.Project
Project project = ComponentAccessor.projectManager.getProjectByCurrentKey("ROPS")
@WithPlugin("com.deiser.jira.profields")
def valueService = ComponentAccessor.getOSGiComponentInstanceOfType(ValueService.class)
def fieldService = ComponentAccessor.getOSGiComponentInstanceOfType(FieldService.class)
def CustomerFieldID = 2;
Field myListField = fieldService.get(CustomerFieldID);
//return myListField
def ClientFieldValueStr = valueService.getValue(project,(ListField) myListField).toString();
Script that I am using in script runner behaviour
import com.onresolve.scriptrunner.runner.customisers.WithPlugin
import com.deiser.jira.profields.api.field.FieldService
import com.deiser.jira.profields.api.field.Field
import com.deiser.jira.profields.api.field.list.ListField
import com.deiser.jira.profields.api.field.list.multiple.ListMultipleField
import com.deiser.jira.profields.api.value.ValueService
import com.atlassian.jira.component.ComponentAccessor
import com.atlassian.jira.issue.Issue
import com.atlassian.jira.project.Project
Project project = ComponentAccessor.projectManager.getProjectByCurrentKey("ROPS")
@WithPlugin("com.deiser.jira.profields")
def valueService = ComponentAccessor.getOSGiComponentInstanceOfType(ValueService.class)
def fieldService = ComponentAccessor.getOSGiComponentInstanceOfType(FieldService.class)
def CustomerFieldID = 2;
Field myListField = fieldService.get(CustomerFieldID);
//return myListField
def ClientFieldValueStr = valueService.getValue(project,(ListField) myListField).toString();
//Defining Audience custom field object
def businessvalue = getFieldById("customfield_10005");
businessvalue.setHelpText('ClientFieldValueStr')
Please let know why it doesn't work in behaviour.
Here is the error that gets logged when I try to open the Issue Create Screen where the behaviour supposed to work.
{code}
2019-08-23 07:13:08,881 http-nio-8080-exec-24 ERROR nnallusamy 433x25630x3 yztdhz 172.28.122.240 /rest/scriptrunner/behaviours/latest/runvalidator.json [c.a.p.r.c.error.jersey.ThrowableExceptionMapper] Uncaught exception thrown by REST service: startup failed: Script1.groovy: 6: unable to resolve class com.deiser.jira.profields.api.field.FieldService @ line 6, column 1. import com.deiser.jira.profields.api.field.FieldService ^ Script1.groovy: 7: unable to resolve class com.deiser.jira.profields.api.field.Field @ line 7, column 1. import com.deiser.jira.profields.api.field.Field ^ Script1.groovy: 9: unable to resolve class com.deiser.jira.profields.api.field.list.multiple.ListMultipleField @ line 9, column 1. import com.deiser.jira.profields.api.field.list.multiple.ListMultipleField ^ Script1.groovy: 8: unable to resolve class com.deiser.jira.profields.api.field.list.ListField @ line 8, column 1. import com.deiser.jira.profields.api.field.list.ListField ^ Script1.groovy: 10: unable to resolve class com.deiser.jira.profields.api.value.ValueService @ line 10, column 1. import com.deiser.jira.profields.api.value.ValueService ^ 5 errors org.codehaus.groovy.control.MultipleCompilationErrorsException: startup failed: Script1.groovy: 6: unable to resolve class com.deiser.jira.profields.api.field.FieldService @ line 6, column 1. import com.deiser.jira.profields.api.field.FieldService ^ Script1.groovy: 7: unable to resolve class com.deiser.jira.profields.api.field.Field @ line 7, column 1. import com.deiser.jira.profields.api.field.Field ^ Script1.groovy: 9: unable to resolve class com.deiser.jira.profields.api.field.list.multiple.ListMultipleField @ line 9, column 1. import com.deiser.jira.profields.api.field.list.multiple.ListMultipleField ^ Script1.groovy: 8: unable to resolve class com.deiser.jira.profields.api.field.list.ListField @ line 8, column 1. import com.deiser.jira.profields.api.field.list.ListField ^ Script1.groovy: 10: unable to resolve class com.deiser.jira.profields.api.value.ValueService @ line 10, column 1. import com.deiser.jira.profields.api.value.ValueService ^ 5 errors at org.codehaus.groovy.control.ErrorCollector.failIfErrors(ErrorCollector.java:310) at org.codehaus.groovy.control.CompilationUnit.applyToSourceUnits(CompilationUnit.java:981) at org.codehaus.groovy.control.CompilationUnit.doPhaseOperation(CompilationUnit.java:626) at org.codehaus.groovy.control.CompilationUnit.compile(CompilationUnit.java:575) at groovy.lang.GroovyClassLoader.doParseClass(GroovyClassLoader.java:323) at groovy.lang.GroovyClassLoader.parseClass(GroovyClassLoader.java:293) at groovy.lang.GroovyShell.parseClass(GroovyShell.java:677) at groovy.lang.GroovyShell.parse(GroovyShell.java:689) at groovy.lang.GroovyShell.parse(GroovyShell.java:725) at groovy.lang.GroovyShell.parse(GroovyShell.java:716) at groovy.lang.GroovyShell$parse.call(Unknown Source) at com.onresolve.jira.behaviours.GroovyScriptLoader.getScriptFromString(GroovyScriptLoader.groovy:45) at com.onresolve.jira.behaviours.GroovyScriptLoader$getScriptFromString.call(Unknown Source) at com.onresolve.jira.behaviours.BehaviourManagerImpl$_runValidator_closure9.doCall(BehaviourManagerImpl.groovy:193) ... 2 filtered at java.lang.reflect.Method.invoke(Method.java:498) at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:98) at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:325) at org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeMethod(ClosureMetaClass.java:264) at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1034) at groovy.lang.Closure.call(Closure.java:418) at groovy.lang.Closure.call(Closure.java:434) at org.codehaus.groovy.runtime.DefaultGroovyMethods.each(DefaultGroovyMethods.java:2125) at org.codehaus.groovy.runtime.DefaultGroovyMethods.each(DefaultGroovyMethods.java:2110) at org.codehaus.groovy.runtime.DefaultGroovyMethods.each(DefaultGroovyMethods.java:2151) at org.codehaus.groovy.runtime.dgm$163.invoke(Unknown Source) at org.codehaus.groovy.runtime.callsite.PojoMetaMethodSite$PojoMetaMethodSiteNoUnwrapNoCoerce.invoke(PojoMetaMethodSite.java:274) at org.codehaus.groovy.runtime.callsite.PojoMetaMethodSite.call(PojoMetaMethodSite.java:56) at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:128) at com.onresolve.jira.behaviours.BehaviourManagerImpl.runValidator(BehaviourManagerImpl.groovy:185) ... 2 filtered at java.lang.reflect.Method.invoke(Method.java:498) at org.codehaus.groovy.runtime.callsite.PogoMetaMethodSite$PogoCachedMethodSite.invoke(PogoMetaMethodSite.java:169) at org.codehaus.groovy.runtime.callsite.PogoMetaMethodSite.callCurrent(PogoMetaMethodSite.java:59) at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:185) at com.onresolve.jira.behaviours.BehaviourManagerImpl.runValidator(BehaviourManagerImpl.groovy:119) at com.onresolve.jira.behaviours.restservice.BehavioursEndpoint.runValidator(BehavioursEndpoint.groovy:156) ... 2 filtered at java.lang.reflect.Method.invoke(Method.java:498) ... 19 filtered at com.atlassian.plugins.rest.module.RestDelegatingServletFilter$JerseyOsgiServletContainer.doFilter(RestDelegatingServletFilter.java:154) ... 1 filtered at com.atlassian.plugins.rest.module.RestDelegatingServletFilter.doFilter(RestDelegatingServletFilter.java:68) ... 32 filtered at com.atlassian.servicedesk.internal.web.ExternalCustomerLockoutFilter.doFilter(ExternalCustomerLockoutFilter.java:56) ... 13 filtered at com.atlassian.web.servlet.plugin.request.RedirectInterceptingFilter.doFilter(RedirectInterceptingFilter.java:21) ... 53 filtered at com.atlassian.jira.security.JiraSecurityFilter.lambda$doFilter$0(JiraSecurityFilter.java:66) ... 1 filtered at com.atlassian.jira.security.JiraSecurityFilter.doFilter(JiraSecurityFilter.java:64) ... 16 filtered at com.atlassian.plugins.rest.module.servlet.RestSeraphFilter.doFilter(RestSeraphFilter.java:37) ... 19 filtered at com.atlassian.jira.servermetrics.CorrelationIdPopulatorFilter.doFilter(CorrelationIdPopulatorFilter.java:30) ... 5 filtered at com.idalko.jira.plugins.igrid.servicedesk.ServletRequestContextFilter.doFilter(ServletRequestContextFilter.java:23) ... 3 filtered at com.atlassian.servicedesk.internal.web.CustomerContextSettingFilter.lambda$invokeFilterChain$0(CustomerContextSettingFilter.java:181) at com.atlassian.servicedesk.internal.api.util.context.ReentrantThreadLocalBasedCodeContext.rteInvoke(ReentrantThreadLocalBasedCodeContext.java:137) at com.atlassian.servicedesk.internal.api.util.context.ReentrantThreadLocalBasedCodeContext.runOutOfContext(ReentrantThreadLocalBasedCodeContext.java:90) at com.atlassian.servicedesk.internal.utils.context.CustomerContextServiceImpl.runOutOfCustomerContext(CustomerContextServiceImpl.java:47) at com.atlassian.servicedesk.internal.web.CustomerContextSettingFilter.outOfCustomerContext(CustomerContextSettingFilter.java:174) at com.atlassian.servicedesk.internal.web.CustomerContextSettingFilter.doFilterImpl(CustomerContextSettingFilter.java:130) at com.atlassian.servicedesk.internal.web.CustomerContextSettingFilter.doFilter(CustomerContextSettingFilter.java:121) ... 9 filtered at com.atlassian.jwt.internal.servlet.JwtAuthFilter.doFilter(JwtAuthFilter.java:32) ... 3 filtered at com.atlassian.web.servlet.plugin.request.RedirectInterceptingFilter.doFilter(RedirectInterceptingFilter.java:21) ... 4 filtered at com.atlassian.web.servlet.plugin.LocationCleanerFilter.doFilter(LocationCleanerFilter.java:36) ... 26 filtered at com.atlassian.jira.servermetrics.MetricsCollectorFilter.doFilter(MetricsCollectorFilter.java:25) ... 24 filtered at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) at java.lang.Thread.run(Thread.java:748)
{code}
I think maybe the @WithPlugin notation is not supported with behavior.
I found this other post that lists a workaround. I haven't tried it.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.