How can i implement CannedScript interface and have all the necessary files resolved in eclipse

Jayashree Shetty
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.
July 9, 2014

I need to change my existing script to support the CannedScript interface. I could not find any jar files to support this . Can anyone please tel me the location of this to download the jar files. Right now when i try in eclipse i get cannot resolve error.i have gone through many atlassian answers bu t i m still not clear. Step by step instructions would be helpful

2 answers

1 accepted

1 vote
Answer accepted
JamieA
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.
July 10, 2014

The jar file you need is script-runner.jar, which is what you can download from marketplace. If you have that on the classpath in your IDE it should work fine.

Jayashree Shetty
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.
July 10, 2014

Awesome. Thank you Jamie

Jayashree Shetty
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.
July 10, 2014

There's 2 more question to this. I have seen some of your existing scripts for eg 'Transition parent to resolve when all subtasks are resolved" . I have understood the script. But when i click that script i get some options to choose the transition state - dropdown & also to choose the resolution. How can this be achieved if i am suppose to write a script . I mean i need to get these options. Now i have written the script in the eclipse IDE and i choose "Script PostFunction' option and provide the link to the script in the file system. In order to get the options to cofnigure the states what am i supposed to do?

2nd-i have 5.2 version of jira so i have installed the groovyrunner 2.1.15 version. But when i try coding in eclipse i get to see some namespaces arent getting resolved.

import com.onresolve.jira.groovy.canned.utils.CannedScriptUtils

import com.onresolve.jira.groovy.canned.utils.ConditionUtils

import com.onresolve.jira.groovy.canned.utils.WorkflowUtils

I have added the jar successfully and i can see some other namespace related to cannedscript. How am i supposed to resolve this?

JamieA
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.
July 12, 2014

1. That's just the getParams method.

2. You'll probably find that they are not compiled to class files. Add the jar as ources as well as classes. I don't know how to do this in eclipse, I know nothing about eclipse.

Jayashree Shetty
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.
July 13, 2014

Regarding 1. you mean to say that if we have listed our params in the List getparams we should be able to get the options is it? But i am still not getting. To test it i have copied the same script "Transition parent to resolve when subtask resolve" and i have saved this script and placed in a path. I have then selected "script post-function" and then i have chosen custom script option. I have given this path. i have then published the workflow. but i am still not getting options from where i can select which resolution or workflow action i can choose the way you have written it.. I mean i dnt get this configurable Parent action and Resolution list as shown below. How can i do this? i also got this error when i tried resolving a subtask

/secure/CommentAssignIssue.jspa [scriptrunner.jira.workflow.ScriptWorkflowFunction] Script function failed on issue: PROJ-30, actionId: 5, file: D:\MyGadget\target\jira\home\scripts\state.groovy

groovy.lang.MissingMethodException: No signature of method: com.state.main() is applicable for argument types: ([Ljava.lang.String;) values: [[]]

JamieA
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.
July 14, 2014

I think you are not actually implementing CannedScript. If you do that, it will show up with the other canned scripts.

If you just want to run a file, don't implement CannedScript.

Why don't you post your whole code.

Jayashree Shetty
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.
July 14, 2014

Actually as i mentioned before i have used your code only Jamie. I just wanted to see how does the cannedscript works.

I can tell you what i did. I am bit new to this scripting please bare with me .Here are the steps:

1) i have created a groovy file in eclipse

2) i have then copied your groovy code of "Transition parent to resolve when all subtasks are resolved" into the file.

3) I have then added this in post function "Script Post Function - Custom Script"

Its the same code. I can still post it again.

Unfortunately i cudnt copy paste the same code here since it says the script lines is more to fit in this place.

I have the starting lines of the code here..

class State implements CannedScript
{
	Category log = Category.getInstance(Sbi_Pbi_State.class)
	def projectManager = ComponentAccessor.getProjectManager()
	public final static String FIELD_PARENTACTION = "FIELD_PARENTACTION"
	public final static String FIELD_RESOLUTION_ID = "FIELD_RESOLUTION_ID"
	
	
	@Override
	public String getName()
	{
		return "SBI PBI Active Transition"
	}

	@Override
	public String getDescription()
	{
		return "when any of the SBI's is moved to active state, PBI is moved to planned state provided the last state is active"
	}
	
	@Override
	public List getCategories()
	{
		return ["Function"]
	}
......................................
Jayashree Shetty
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.
July 14, 2014

Hi Jamie, can you please mention the steps of how can we implement this cannedscript.

JamieA
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.
July 14, 2014

OK, so that all looks fine. Now do you see the script when you view the script workflow functions?

Jayashree Shetty
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.
July 14, 2014

i am sorry Jamie. Where is this script workflow functions?

JamieA
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.
July 15, 2014

Sorry, I don;t have time to go through this at this level of details. If I can a moment I will write a tutorial on how to write your own canned scripts.

Jayashree Shetty
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.
July 15, 2014

ok Jamie please let me know abt it

0 votes
Jayashree Shetty
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 11, 2014

Hi Jamie. I could write my custom canned scripts. This is what i did to get script runner running in JIRA instance.

I had actually 6.0 version of jira so the place where i had to deploy my scripts was wrong which didnt load the scripts.

For those who are using jira 5.2 version drop your canned scripts in

- if groovyrunner 2.1.5 version is used

C:\Program Files\Atlassian\JIRA\atlassian-jira\WEB-INF\classes\com\onresolve\jira\groovy\canned\workflow\postfunctions

and for 6.0 version - if groovyrunner 3.0 version is used

C:\Program Files\Atlassian\JIRA\atlassian-jira\WEB-INF\classes\com\onresolve\scriptrunner\canned\jira\workflow\postfunctions

Install the jar in the JIRA and you can see script console where in one can try out their code. In case we use eclipse IDE for coding install the jar so that you can use the inbuilt methods and also the script can implement the canned script.

Once everything is working fine we can deploy this as a postfunction or listener. To check your canned script try adding a postfunction "Script postfunction" and see if the canned script written by you is appearing in the list. If not check the log for errors.

Suggest an answer

Log in or Sign up to answer
TAGS
AUG Leaders

Atlassian Community Events