To learn more about Tempo products, please visit our Help Center. For support, see our Support Portal.
Summing worklogs of an Account
The script snippet is summing worklogs for a Tempo Account using the Java API. The method used here is getWorklogsByAccount
which needs two parameters. The date as a pair of tuple and the Tempo Account ID.
import com.onresolve.scriptrunner.runner.customisers.PluginModule
import com.onresolve.scriptrunner.runner.customisers.WithPlugin
import com.onresolve.scriptrunner.runner.ScriptRunnerImpl
import org.apache.log4j.Level
import org.apache.log4j.Logger
import org.apache.commons.lang3.tuple.Pair
import org.apache.commons.lang3.tuple.ImmutablePair
import org.joda.time.Days
import org.joda.time.LocalDate
import org.joda.time.Weeks
import com.tempoplugin.folio.model.time.Period
import java.io.Serializable
import com.atlassian.jira.issue.worklog.Worklog
import com.atlassian.jira.component.ComponentAccessor
import is.origo.jira.plugin.common.TempoWorklogManager
import com.tempoplugin.worklog.v4.model.IssueExpandParams
import com.tempoplugin.worklog.v4.model.TempoWorklog
import com.tempoplugin.worklog.v4.model.WorklogSearchParams
import com.tempoplugin.worklog.v4.services.TempoWorklogV4BeanFactory
import com.tempoplugin.worklog.v4.services.search.WorklogSearchService
import com.tempoplugin.worklog.*
def myLog = Logger.getLogger("com.onresolve.jira.groovy")
myLog.setLevel(Level.DEBUG)
@WithPlugin('com.tempoplugin.tempo-plan-core')
def startdate= new LocalDate(2020, 1, 1)
def enddate= new LocalDate(2020, 12, 31)
def timeperiod = new Period(startdate,enddate)
def duration = ImmutablePair.of(startdate, enddate)
@WithPlugin("is.origo.jira.tempo-plugin")
@PluginModule
def TempoWorklogService tempoworklogservice
def accountID = 2
def accountworklogs = tempoworklogservice.getWorklogsByAccount(duration,accountID).getReturnedValue()
accountworklogs.sum { Worklog worklog ->worklog.timeSpent} as Long