Create
cancel
Showing results for 
Search instead for 
Did you mean: 
Sign up Log in

Unable get Profiled value in Script Runner behaviour

nallu August 23, 2019 edited

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}

 

 

1 answer

0 votes
PD Sheehan
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.
August 23, 2019

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.

https://community.atlassian.com/t5/Adaptavist-questions/Using-a-plugin-in-Behaviour-Script/qaq-p/610853

Suggest an answer

Log in or Sign up to answer
TAGS
AUG Leaders

Upcoming Apps & Integrations Events