To learn more about Tempo products, please visit our Help Center. For support, see our Support Portal.
Timesheet Approval Event listener
With the script listener you can catch events related to Timesheet approvals. Timesheet approval events are “submit, approve, reject”.
import com.onresolve.scriptrunner.runner.customisers.WithPlugin
import com.atlassian.event.api.EventListener
import com.atlassian.event.api.EventPublisher
import com.tempoplugin.timesheet.approval.api.Approval
import com.tempoplugin.timesheet.approval.api.event.ApprovalEvent
import com.tempoplugin.timesheet.approval.api.event.ApprovalCreatedEvent
import com.tempoplugin.platform.api.event.Event
import org.apache.log4j.Level
import org.apache.log4j.Logger
def myLog = Logger.getLogger("com.onresolve.jira.groovy")
myLog.setLevel(Level.DEBUG)
@WithPlugin("is.origo.jira.tempo-plugin")
ApprovalEvent tempoapprovalevent = event
myLog.info("${tempoapprovalevent} detected")
if(tempoapprovalevent.approval.action) {
myLog.info("Eventtype: ${tempoapprovalevent.approval.action} detected")
// submit, approve, reject
switch(tempoapprovalevent.approval.action){
case "submit":
myLog.info("Timesheet of ${tempoapprovalevent.approval.actorKey} has been submitted!")
break
case "approve":
myLog.info("Timesheet of ${tempoapprovalevent.approval.actorKey} has been approved!")
break
case "reject":
myLog.info("Timesheet of ${tempoapprovalevent.approval.actorKey} has been rejected!")
break
}
}
The timesheet approval event casts an object with the following parameters
{
id=108,
userKey=beverly,
actorKey=john,
reviewerKey=john,
status=approved,
period=0121,
dateFrom=2021-01-01,
dateTo=2021-01-31,
periodType=BILLING,
periodView=PERIOD,
reason=Great job!,
workedTime=0,
submittedTime=0,
requiredTime=576000,
action=approve
}