I want to assign a portfolio Team to a card based on the Jira project. For example:
In my listener, if the issue being created is in Project "KSB" then the Portfolio Team field should be set to <team of my choice>
My problem: I am currently unable to set the Portfolio Team field's value using a string or an integer. What can I pass into the updateValue method as the updated value for the portfolioTeamField?
import com.atlassian.jira.component.ComponentAccessor
import com.atlassian.jira.issue.MutableIssue
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
import com.atlassian.jira.issue.index.IssueIndexingService
import org.apache.log4j.Logger
import org.apache.log4j.Level
def issue = event.issue as Issue
def customFieldManager = ComponentAccessor.getCustomFieldManager()
def portfolioTeamField = ComponentAccessor.getCustomFieldManager().getCustomFieldObjectsByName("Team")[0]
def changeHolder = new DefaultIssueChangeHolder()
def issueIndexManager = ComponentAccessor.getComponent(IssueIndexingService)
def PTFValue = issue.getCustomFieldValue(portfolioTeamField)
if (issue.projectObject.key == "KSB"){
//I NEED TO SET THE TEAM FIELD VALUE BELOW, BUT GET A TYPECAST ERROR, what replaces <portfolio team of my choice>
//portfolioTeamField.updateValue(null, issue, new ModifiedValue(issue.getCustomFieldValue(portfolioTeamField), <portfolio team of my choice>),changeHolder)
}
issueIndexManager.reIndex(issue)
If I try to set that field using a string I get the typecast err below:
2020-05-13 14:20:18,725 ERROR [runner.AbstractScriptListener]: *************************************************************************************
2020-05-13 14:20:18,726 ERROR [runner.AbstractScriptListener]: Script function failed on event: com.atlassian.jira.event.issue.IssueEvent, file: null
java.lang.ClassCastException: java.lang.String cannot be cast to com.atlassian.rm.teams.api.team.Team
at com.atlassian.rm.teams.customfields.team.TeamCustomFieldType.createValue(TeamCustomFieldType.java:22)
at com.atlassian.jira.issue.fields.ImmutableCustomField.createValue(ImmutableCustomField.java:693)
at com.atlassian.jira.issue.fields.ImmutableCustomField.updateValue(ImmutableCustomField.java:410)
at com.atlassian.jira.issue.fields.ImmutableCustomField.updateValue(ImmutableCustomField.java:396)
at com.atlassian.jira.issue.fields.OrderableField$updateValue.call(Unknown Source)
at Script128.run(Script128.groovy:28)
If I manually set the field via the GUI and then log it's value this is what I get:
2020-05-13 14:31:58,687 DEBUG [runner.AbstractScriptRunner]: PorfolitoTeamField =Team
2020-05-13 14:31:58,687 DEBUG [runner.AbstractScriptRunner]: PTFValue =5
2020-05-13 14:31:58,687 DEBUG [runner.AbstractScriptRunner]: PTFValue Title = Profiles
2020-05-13 14:31:58,687 DEBUG [runner.AbstractScriptRunner]: PTFValue Description = com.atlassian.rm.teams.api.team.data.DefaultTeamDescription@6ce8214c
But back to my original question I can't simply set the value to "Profiles" as a string, I am stuck please help!