The script snippets show you how to get the value of the Team custom field of an issue and how to write a Tempo team into a Jira issue.

With the version 8 of Tempo Teams (included in Tempo Planner Version 8, Tempo Budgets Version 14 and Tempo Timesheets Version 11) the Tempo Team field has been converted into an object. Previously (Tempo Teams 6 and older) the Tempo Team field was returned with an ID of the Tempo team.

In all cases you should import the following dependencies and you can access the Tempo custom field on an issue as follows:

import com.atlassian.jira.component.ComponentAccessor
import com.atlassian.jira.issue.fields.CustomField
import com.onresolve.scriptrunner.runner.customisers.PluginModule
import com.onresolve.scriptrunner.runner.customisers.WithPlugin
import com.atlassian.jira.issue.MutableIssue

import org.apache.log4j.Level
import org.apache.log4j.Logger

import com.tempoplugin.team.service.TeamImpl
import com.tempoplugin.team.api.Team
import com.tempoplugin.team.api.TeamImpl
import com.tempoplugin.team.api.TeamManager
import com.tempoplugin.team.api.TeamService
import groovy.transform.Field
import com.onresolve.scriptrunner.runner.ScriptRunnerImpl
import com.atlassian.jira.event.type.EventDispatchOption

@WithPlugin("com.tempoplugin.tempo-teams")
@PluginModule
TeamService teamService

def myLog = Logger.getLogger("com.onresolve.jira.groovy")
myLog.setLevel(Level.DEBUG)

def IssueManager = ComponentAccessor.getIssueManager()
MutableIssue issue = IssueManager.getIssueObject("WIKK-20")

def customFieldManager = ComponentAccessor.customFieldManager
def teamField = customFieldManager.getCustomFieldObjects(issue).find { it.name == "Team" }
if (!teamField) return;

def team = issue.getCustomFieldValue(teamField)

Now you can output the Tempo Team field

myLog.info("Team: " + team)

For Tempo Teams 7 and below this will return the Team ID. If you want to display e.g. the Team Name you will need to do

def tempoteamobject = teamService.getTeam(team.toInteger()).getReturnedValue()
myLog.info("Tempo Team name: " + tempoteamobject.name)

To update an issue with a new Tempo Team you will need to

def newteam = "GreenCloud Tango"
issue.setCustomFieldValue(teamField, newteam)
ComponentAccessor.issueManager.updateIssue(ComponentAccessor.jiraAuthenticationContext.getLoggedInUser(), issue, EventDispatchOption.ISSUE_UPDATED, false)    

WIth the version of Tempo Teams 8 and above the behaviour of the Tempo Team custom field changes. Now will

myLog.info("Team: " + team)

return the Team custom field name and the following will now throw an error:

def tempoteamobject = teamService.getTeam(team.toInteger()).getReturnedValue()
myLog.info("Tempo Team name: " + tempoteamobject.name)

You will now be able to access the Tempo Team information with:

myLog.info("Tempo Team name: " + team.name + " with an ID: " + team.id)

To update the Tempo team on an Jira issue you will need to declare/pass the Tempo team as an object. This can be done with:

def newteam = teamService.getTeamByName("Custom Web Development").getReturnedValue()
issue.setCustomFieldValue(teamField, newteam)
ComponentAccessor.issueManager.updateIssue(ComponentAccessor.jiraAuthenticationContext.getLoggedInUser(), issue, EventDispatchOption.ISSUE_UPDATED, false)