Forums

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

How can we allow for multiple approvers of time in something integrated with JIRA?

Chris Steiner
June 10, 2019

Hello all!  I have a question that is very similar to one that has been asked (and in some cases answered) on this forum, but hopefully my question is different enough to get a different answer. 

We are considering trying to move all of our company’s timekeeping into JIRA to simplify our current process in which employees are required to enter their time into two different systems separately, which is very prone to errors and therefore discrepancies between the systems. 

One of the major obstacles we are encountering is our time approval process.  Our current process requires a matrix of approvals for any given time sheet:

  • Any work done on a billable project has to be approved by that project’s manager, and any given developer could be working on several different billable projects in a single week.
  • Any work done by a contractor has to be approved. Billable work is approved as mentioned in the bullet above.  Non-billable work is approved by the supervisor or the owner of the non-billable project, depending on how the project is set up.

In our current timekeeping system we also have the ability to assign individuals to projects to control who can post time to a given project, though this is less important to our process than the ability to have multiple approvers for a single time period.

Along with researching this on this forum and elsewhere online, we have also reached out to three vendors of timesheet add-ons (WorklogPro, AIO Reporting & Timesheets, & Tempo Timesheets) to determine if their product has this ability.  Unfortunately none of these supports this, and we have been unable so far to find any kind of a workaround for this.

So, my question to the group is this:  Do you know of any add-on, group of add-ons, or other workaround for having multiple approvers for a single timesheet (based on the scenarios above) in JIRA?  Have you, your company, or someone you know solved this or found a workaround?

We’re also open to solutions that integrate with JIRA that are not add-ons, if anyone has any suggestions for that.

6 answers

0 votes
JamieA
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 Champions.
December 9, 2016

Can you describe what you're trying to do here? Is it notify when an issue is added or removed from the active sprint?

0 votes
John John
December 8, 2016

I worked around the problem in my script listener by avoiding use of event.  In my case, I wanted to listen to updates to see if issues were added or removed from a specific sprint.  I hard-coded the sprint id.  If someone can show me how to get the active sprint for a board, that would be great.

 

/*
 * Determines if the last change added or removed the item from the active sprint
 */
import org.apache.log4j.Logger
import org.apache.log4j.Level
 
def log = Logger.getLogger("com.xyz")
log.info("Condition Evaluation ...")
def ACTIVE_SPRINT = "194" //Hard code active sprint ID


// Get the last change ...
def changeHistoryManager = com.atlassian.jira.component.ComponentAccessor.getChangeHistoryManager()
def changeHistories = changeHistoryManager.getChangeHistories(issue);
def changeHistory = changeHistories.get(changeHistories.size()-1)
log.info("  changeHistory="+changeHistory)


// See if the last change contained a change to or from the active sprint
def changeItems =  changeHistory.getChangeItemBeans()
def added = false;
def removed = false;
changeItems.each() { com.atlassian.jira.issue.history.ChangeItemBean chgItem ->
    log.info("chgItem="+chgItem);
    def field = chgItem.getField()
	log.info("  field = " +field)
    if (field && field.equalsIgnoreCase("Sprint")) {
        log.info("    getFrom="+chgItem.getFrom());
        log.info("    getTo="+chgItem.getTo());
		removed =  chgItem.getFrom()==ACTIVE_SPRINT 
		added =  chgItem.getTo()==ACTIVE_SPRINT 
	}
}
log.info("Added?"+added+" or Removed?"+removed)

 

 

0 votes
Marco Di Benedetto
November 9, 2016
0 votes
John John
October 20, 2016

I have the same problem on 4.1.3.17.  I do not see the problem on an old system that is at 3.1.4.

0 votes
Sebastian_Aurin
I'm New Here
I'm New Here
Those new to the Atlassian Community have posted less than three times. Give them a warm welcome!
September 8, 2016

Thx, but this is also not the problem

we tested it on a other JIRA version

Jira: v7.1.7

ScriptRunner: 4.3.3
same error
0 votes
JamieA
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 Champions.
September 8, 2016

you could try upgrading it and see if that fixes it, you're on a very old version...

Suggest an answer

Log in or Sign up to answer
TAGS
AUG Leaders

Atlassian Community Events