Forums

Articles
Create
cancel
Showing results for 
Search instead for 
Did you mean: 

How to apply script groovy listener in script runner

Alexander
Contributor
November 6, 2018

Hi Community!
After my question was ignored (https://community.atlassian.com/t5/Portfolio-for-Jira-questions/How-to-display-the-team-field-from-the-portfolio-plugin-in-a-pie/qaq-p/902737). I decided to customize this solution by copying the fields.
Now I need to use this script in a listener script Runner (Events = issueUpdate):

import com.atlassian.jira.component.ComponentAccessor
import com.atlassian.jira.issue.MutableIssue
import com.atlassian.rm.teams.core.team.data.DefaultTeam

 

MutableIssue issue = issue

//Получаем поля\значения ("Команда"\"Team_Tempo_filed")
def customFieldManager = ComponentAccessor.getCustomFieldManager()
def CFportfolioTeam = ComponentAccessor.getCustomFieldManager().getCustomFieldObjectByName("Team")
def select_singlechoice_field = ComponentAccessor.getCustomFieldManager().getCustomFieldObjectByName("Команда")
def team_value = issue.getCustomFieldValue (CFportfolioTeam)
def grp =(DefaultTeam) issue.getCustomFieldValue(CFportfolioTeam)
def teamPortfolio = grp.getDescription().getTitle()

// Получаем значение опций каждой команды из Customfield "Команда"
def fieldConfig1 = select_singlechoice_field.getRelevantConfig(issue)
def Options_1 = ComponentAccessor.optionsManager.getOptions(fieldConfig1)?.find { it.toString() == "PO" }

def fieldConfig2 = select_singlechoice_field.getRelevantConfig(issue)
def Options_2 = ComponentAccessor.optionsManager.getOptions(fieldConfig1)?.find { it.toString() == "MT" }

def fieldConfig3 = select_singlechoice_field.getRelevantConfig(issue)
def Options_3 = ComponentAccessor.optionsManager.getOptions(fieldConfig1)?.find { it.toString() == "ORM-Tomsk" }

def fieldConfig4 = select_singlechoice_field.getRelevantConfig(issue)
def Options_4 = ComponentAccessor.optionsManager.getOptions(fieldConfig1)?.find { it.toString() == "UAdmin" }

def fieldConfig5 = select_singlechoice_field.getRelevantConfig(issue)
def Options_5 = ComponentAccessor.optionsManager.getOptions(fieldConfig1)?.find { it.toString() == "UI" }

def fieldConfig6 = select_singlechoice_field.getRelevantConfig(issue)
def Options_6 = ComponentAccessor.optionsManager.getOptions(fieldConfig1)?.find { it.toString() == "PDT" }

def fieldConfig7 = select_singlechoice_field.getRelevantConfig(issue)
def Options_7 = ComponentAccessor.optionsManager.getOptions(fieldConfig1)?.find { it.toString() == "PDT_1" }

def fieldConfig8 = select_singlechoice_field.getRelevantConfig(issue)
def Options_8 = ComponentAccessor.optionsManager.getOptions(fieldConfig1)?.find { it.toString() == "PDT_2" }

def fieldConfig9 = select_singlechoice_field.getRelevantConfig(issue)
def Options_9 = ComponentAccessor.optionsManager.getOptions(fieldConfig1)?.find { it.toString() == "PDT_AR" }

 

//Присваиваем значение полей исходя из условий

if (teamPortfolio == "Core-PO")
 {
issue.setCustomFieldValue(select_singlechoice_field, Options_1)
 }

else if (teamPortfolio == "Core-ORM-MT")
 {
issue.setCustomFieldValue(select_singlechoice_field, Options_2)
 }

else if (teamPortfolio == "Core-ORM-Tomsk")
 {
issue.setCustomFieldValue(select_singlechoice_field, Options_3)
 }

else if (teamPortfolio == "Core-ORM-UAdmin")
 {
issue.setCustomFieldValue(select_singlechoice_field, Options_4)    
 }

else if (teamPortfolio == "Core-UI")
 {
issue.setCustomFieldValue(select_singlechoice_field, Options_5)
}

else if (teamPortfolio == "Core-PDT")
 {
issue.setCustomFieldValue(select_singlechoice_field, Options_6)
}

else if (teamPortfolio == "Core-PDT-1")
 {
issue.setCustomFieldValue(select_singlechoice_field, Options_7)
}

else if (teamPortfolio == "Core-PDT-2")
 {
issue.setCustomFieldValue(select_singlechoice_field, Options_8)
}

else if (teamPortfolio == "Core-PDT-AR")
 {
issue.setCustomFieldValue(select_singlechoice_field, Options_9)
}

But after insert in listener it's script don't work. The log does not contain errors, the script does not work :(

I tried change my script like so:

import com.atlassian.jira.component.ComponentAccessor
import com.atlassian.jira.issue.MutableIssue
import com.atlassian.rm.teams.core.team.data.DefaultTeam
import com.atlassian.jira.issue.IssueManager
import com.atlassian.jira.issue.CustomFieldManager
import com.atlassian.jira.issue.Issue
import com.atlassian.jira.issue.util.DefaultIssueChangeHolder
import com.atlassian.jira.issue.ModifiedValue

def issue = event.issue as Issue

//Получаем поля\значения ("Команда"\"Team_Tempo_filed")
def customFieldManager = ComponentAccessor.getCustomFieldManager()
def CFportfolioTeam = ComponentAccessor.getCustomFieldManager().getCustomFieldObjectByName("Team")
def select_singlechoice_field = ComponentAccessor.getCustomFieldManager().getCustomFieldObjectByName("Команда")
def team_value = issue.getCustomFieldValue (CFportfolioTeam)
def grp =(DefaultTeam) issue.getCustomFieldValue(CFportfolioTeam)
def teamPortfolio = grp.getDescription().getTitle()

// Получаем значение опций каждой команды из Customfield "Команда"
def fieldConfig1 = select_singlechoice_field.getRelevantConfig(issue)
def Options_1 = ComponentAccessor.optionsManager.getOptions(fieldConfig1)?.find { it.toString() == "PO" }

def fieldConfig2 = select_singlechoice_field.getRelevantConfig(issue)
def Options_2 = ComponentAccessor.optionsManager.getOptions(fieldConfig1)?.find { it.toString() == "MT" }

def fieldConfig3 = select_singlechoice_field.getRelevantConfig(issue)
def Options_3 = ComponentAccessor.optionsManager.getOptions(fieldConfig1)?.find { it.toString() == "ORM-Tomsk" }

def fieldConfig4 = select_singlechoice_field.getRelevantConfig(issue)
def Options_4 = ComponentAccessor.optionsManager.getOptions(fieldConfig1)?.find { it.toString() == "UAdmin" }

def fieldConfig5 = select_singlechoice_field.getRelevantConfig(issue)
def Options_5 = ComponentAccessor.optionsManager.getOptions(fieldConfig1)?.find { it.toString() == "UI" }

def fieldConfig6 = select_singlechoice_field.getRelevantConfig(issue)
def Options_6 = ComponentAccessor.optionsManager.getOptions(fieldConfig1)?.find { it.toString() == "PDT" }

def fieldConfig7 = select_singlechoice_field.getRelevantConfig(issue)
def Options_7 = ComponentAccessor.optionsManager.getOptions(fieldConfig1)?.find { it.toString() == "PDT_1" }

def fieldConfig8 = select_singlechoice_field.getRelevantConfig(issue)
def Options_8 = ComponentAccessor.optionsManager.getOptions(fieldConfig1)?.find { it.toString() == "PDT_2" }

def fieldConfig9 = select_singlechoice_field.getRelevantConfig(issue)
def Options_9 = ComponentAccessor.optionsManager.getOptions(fieldConfig1)?.find { it.toString() == "PDT_AR" }

def changeHolder = new DefaultIssueChangeHolder()


//Присваиваем значение полей исходя из условий

if (teamPortfolio == "Core-PO")
 {
select_singlechoice_field.updateValue(null, issue, new ModifiedValue(issue.getCustomFieldValue(select_singlechoice_field), Options_1),changeHolder)
 }

else if (teamPortfolio == "Core-ORM-MT")
 {
select_singlechoice_field.updateValue(null, issue, new ModifiedValue(issue.getCustomFieldValue(select_singlechoice_field), Options_2),changeHolder)
 }

else if (teamPortfolio == "Core-ORM-Tomsk")
 {
select_singlechoice_field.updateValue(null, issue, new ModifiedValue(issue.getCustomFieldValue(select_singlechoice_field), Options_3),changeHolder)
 }

else if (teamPortfolio == "Core-ORM-UAdmin")
 {
select_singlechoice_field.updateValue(null, issue, new ModifiedValue(issue.getCustomFieldValue(select_singlechoice_field), Options_4),changeHolder)   
 }

else if (teamPortfolio == "Core-UI")
 {
select_singlechoice_field.updateValue(null, issue, new ModifiedValue(issue.getCustomFieldValue(select_singlechoice_field), Options_5),changeHolder)
}

else if (teamPortfolio == "Core-PDT")
 {
select_singlechoice_field.updateValue(null, issue, new ModifiedValue(issue.getCustomFieldValue(select_singlechoice_field), Options_6),changeHolder)
}

else if (teamPortfolio == "Core-PDT-1")
 {
select_singlechoice_field.updateValue(null, issue, new ModifiedValue(issue.getCustomFieldValue(select_singlechoice_field), Options_7),changeHolder)
}

else if (teamPortfolio == "Core-PDT-2")
 {
select_singlechoice_field.updateValue(null, issue, new ModifiedValue(issue.getCustomFieldValue(select_singlechoice_field), Options_8),changeHolder)
}

else if (teamPortfolio == "Core-PDT-AR")
 {
select_singlechoice_field.updateValue(null, issue, new ModifiedValue(issue.getCustomFieldValue(select_singlechoice_field), Options_9),changeHolder)
}

But it did not help...
What i do incorrect?
Help please make the script working!

Jira version: 7.3.7
ScriptRunner version: 5.4.12

3 answers

0 votes
Alexander
Contributor
November 8, 2018

 Can @Thanos Batagiannis [Adaptavist], @JamieA or some of the other Adaptavist guys please help solve the problem?

0 votes
Davin Studer
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.
November 7, 2018

You could put in some log points to pinpoint down where the script is failing.

log.debug("Point 1")

... Some code ...

log.debug("Point 2")

... Some more code ...

log.debug("Point 3")
Alexander
Contributor
November 7, 2018

Hi @Davin Studer

history: "Has not run yet"
It does not start :(

Davin Studer
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.
November 8, 2018

Are you sure you are tying into the correct events? It sounds like you tied into issue updated. Do you want issue created as well? If you are not triggering the event it won't run.

Capture.PNG

Davin Studer
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.
November 8, 2018

I did a bit of searching and it looks like the com.atlassian.rm.teams.core.team.data.DefaultTeam import is/was related to Portfolio. However, I have Software and Portfolio on my system and it cannot resolve the import on my system. It errors on that line for me. Does it not error in your system?

Capture01.PNG

Alexander
Contributor
November 8, 2018

Hi @Davin Studer
I want to create a listener who will listen to Update issue.
I need this package (DefaultTeam) because we need take value in plugin field.
I have no mistakes:

Снимок.PNG

0 votes
Kimberly Deal _Columbus ACE_
Community Champion
November 6, 2018

Hi @Alexander!

I don't think anyone is actively ignoring you, but these are pretty specific questions about specific plugins and apps.  Remember for plugins, you can also directly contact the vender of that plugin for support.

 

Support contacts are found on the Marketplace page of that plugin.

https://marketplace.atlassian.com/apps/6820/scriptrunner-for-jira?hosting=cloud&tab=support

 

That said, I hope some Community memebers, way more knowledgeable about Scriptrunner, can help you out with your questions soon.

Alexander
Contributor
November 6, 2018

Hi @Kimberly Deal _Columbus ACE_
Thanks! I will wait...

Suggest an answer

Log in or Sign up to answer