The challenge for this Timesheet Management was to provide a customizable way to do it.
By defining an Issue Type in reserved project, we are able to use a dedicated Workflow.
Default Workflow Edit, due to latest retained change, provided by Jira (Jira ~7.x) is no more able to edit such Workflow using OS Workflow features.
All the business logic is defined in the Workflow Timesheet :
- to manage Worklog Status
- to manage Timesheet Status depending on Worklog Status
- to notify each actor in case of change
- to manage permission in each action
Timesheet Scenario
See below, step by step, how the Timesheet is managed ...
- Some work is logged in a project configured to be manage by Timesheet.
As 1st worklog created in the period, a Timesheet Issue is created ... the Timesheet is Opened (Status Timesheet Initiated) - The user decides that all its work is logged for the period, he can Submit the Timesheet.
The Timesheet reaches the Workflow Step Validation in Progress (Status Timesheet Submitted)
The user with Approver Role is notified by email and can access the timesheet through the Timesheet Gadget. - During the validation process, the Approver will be able to perform Worklog Transitions (Validate or Request Revision).
These Transitions are Recursive Transition and only affect the status of Worklogs. - As soon as the Approver requests a revision, the Timesheet is passed automatically to Needs Revision (Auto-Transition Worklog Revision required).
The Timesheet Owner is notified by email. - The Timesheet can Re-Submit (Step Transition) the Timesheet or Re-Submit (Recursive Transition) Worklog set by Worklog Set.
- When there is no more Worklogs requiring a revision, the Timesheet is passed to Validation in Progress by the Auto-Transition Worklog Revision done.
- As soon as all Worklog have been validated by the Approver, the Timesheet ias automatically passed to Validated by the Auto-Transition All Worklog Validated.
- For already submitted Timesheet (Validation in Progress or Validated), any new created or updated worklog, concerning the period of the Timesheet, passes the Timesheet to Open (Auto-Execute Transitions New Worklog Created and New Worklog Created (for Closed Timesheet) )
- The Approver can explicitly Reopen a Timesheet (Useful in future, when the Log Work wil be closed depending on the Timesheet status)
- Ask for Closure is an Recursive Auto-Transition that will be passed depending on Timesheet date in order to invite Actor to do their job (Submit, Validate or Revise Worklog ... The required configuration is not yet completed! )