Time Sheet functionality in Microsoft Dynamics NAV

Microsoft Dynamics NAV 2017 includes time sheet functionality. It`s been in NAV since 2013, with some adjustments and changes. I will review on main features pointing out pros and cons. Main point of focus will be how this is linked to Jobs.

Microsoft Dynamics NAV 2017 includes time sheet functionality. It`s been in NAV since 2013, with some adjustments and changes. I will review on main features pointing out pros and cons. Main point of focus will be how this is linked to Jobs.
Let`s assume that our company provides training services. Our employees are trainers that are traveling to customers and running training courses. We expect them to fill time sheets on a weekly basis, which are then approved by a project manager.

Quick Glance at Setup
First things first, we will go through some setup before we can move on with the process. In resource setup, there are 3 statuses connected to time sheets (Never, Machine Only, Always). The last one is the most interesting in this case.

When Time Sheet by Job Approval is set to Always this means that:

  • Time Sheet lines connected to the job are then approved by the Person Responsible specified on the Job Card
  • Time Sheet lines connected to absence (and other non-related to Jobs) are approved by Time Sheet Approver set in Resource Card

In this case we have 2 persons responsible for managing sales and training process Bill and Phil. They are approving Job related Time Sheet lines. Vicky is responsible for general management and is approving all other Time Sheets. Also, she is responsible for creating and archiving time sheets on a weekly basis. In the User Setup table, Vicky is set as Time Sheet Administrator. This means she is able to create, change and delete Time Sheets.

Finally, there is Mike the trainer. He is filling the Time Sheets on a weekly basis. Mike is setup as a Resource in the following way:

  • Use Time Sheet is set to YES (checkbox), Mike is allowed to fill in time sheets
  • Time Sheet Owner User ID is set to Mike`s login
  • Time Sheet Approve User ID is set to Vicky`s login

Mike is also setup as employee, and in the Employee card he is linked to the Resource:

Data management & preparation
Bill is creating Job for training in the first week of march 2019. Bill sets himself up as a Person Responsible. This states who is approving Time Sheets for this project. Three tasks are created for this job:
– Preparation – the time that Mike will spend to prepare for the trainings
– Trainings – training time
– QA & Closing & Invoice – verify customer satisfaction and create invoice

For these tasks, Bill is creating the following Job Planning lines. Please mind that he is planning Mikes time for every date and assigning number of hours (2019-03-04 – 2019-03-07).

Mike is able to use this as a base for filling the Time Sheet for that week.
Phil is creating mirror job for commencing week. As a result, Mike`s time is planned for 2 weeks.
Vicky creates time sheets for employees for the whole month. She is using Create Time Sheets jobs, specifying starting date and number of periods (weeks). She creates Time Sheets for Mike for March 2019:

As result 4 Time Sheets are created for every week, and Mike is able to fill in the Time Sheets.

Time Sheets
It`s Thursday, 09th March. Mike is filling Time Sheet for the whole week. He picks the Time Sheet from the list (created by Vicky). Mind that Mike can access only Time Sheets created for his User.

Finally, Mike is using “Create lines from job planning” function. Great things about this feature are:

  • It is creating lines for you automatically
  • It fills Type, Job No, Job Task No and Description

This is a huge time saver and also it reduces risk of picking incorrect job or incorrect task. However, number of hours for each day is not filled:

This can be a pro or a con, depending on particular business, company, internal process. I believe it makes perfect sense the way it has been designed. There can be cases when it would be good to have hours copied as well. Anyway, Mike is filling hours manually. Additionally, he is adding 2 new lines:

  • Travel time – Mike spent 2 hours driving to customer site. He will add 2 hours for every training day. Mike links the line to job (filling Type, Job No, Job Task No manually), selects Work Type Code TRAVEL and marks the line as not chargeable
  • Absence – Having worked very hard the whole week Mike agreed with Vicky to have a day off on Friday. He selects Type – Absence and Cause of Absence Day Off

Mike will submit the following Time Sheet:

Line status is changed to submitted and Mike has no possibility to adjust existing lines. In case of any issues he can use Reopen function to make corrections. This is possible until the Time Sheet is approved

Time Sheets Approval
Bill is approving Time Sheets connected to his project. After opening Manage Time Sheet by Job window Bill has access to all Time Sheets submitted to his Jobs. Now he can approve or reject particular lines.

Approving & rejecting works very smoothly. Each person approving has access to his Jobs only. There are 2 small things that could be improved:

  • There is no visibility of Resource/user who submitted Time Sheet. Imagine the case where you approve Time Sheets for 30 people and this could be confusing.
  • There is no info if any comments exist. In the Time Sheet view, there is a Fact Box showing info about comments, similar solution could be useful here.

Again, these are really nice to have features, that can be delivered quickly by a skilled developer. Time Sheets by Job works very well.
Finally, Bill has to create and post Job journal lines. Without doing so he will have no update in his Job. Bill enters Job journal, runs Suggest Lines from Time Sheet functions, specify start and ending date. After pressing OK, lines are created.

Small remark here – Bill is not able to filter his project, using Person Responsible assigned in Job. Still he can use job number for filtering which is an acceptable solution. Some may consider this step not necessary and say it could be automated. Again, this depends on particular company, business and process.
It`s Vicky`s time to approve Mike`s absence. Vicky opens Manage Time Sheets window. She has a nice overview who filled in time sheets, who submitted hours, etc. Using NAV filtering features you can quickly get info that you want. For example, check who did not submit time sheet for the previous week. Vicky opens Mike`s time sheet, where she can see that only one line is not approved. She approves the line:

Once Time Sheet is registered, info about absence is created in Human Resources, which is absolutely brilliant. Other nice thing is permission control. Vicky is not able to approve, reject or reopen any time sheets that are related to Jobs.

Moving Time Sheets to Archive
Once Time Sheet is approved and job journal is posted, it can be moved to archive. This has the following impact:

  • Mike cannot see it in his Time sheet lists (has to go to archive)
  • Vicky and Bill cannot see it as well (have to go to archive)
  • No changes are possible to the time sheet

Vicky runs Move Time Sheet to Archive Job. She selects week starting date, and clicks OK.

If there are any not approved time sheets, error message will appear.

Closing Comments
Time Sheet process is really well designed, efficient and user friendly. Administration is very straightforward, setup is crystal clear. For many businesses, this can be an efficient tool for registering time and staff control. It also works well via web, so this could be used by non-office employees. Have in mind phone and tablet apps as well. Implementing time sheets is not a huge challenge as well. Depending on organization, it should be up and running within a few weeks.
In Dynamics Development Center we have prepared an advanced Time Sheet functionality that helps us run our consultancy business. It is based on Jobs module described above and allowed us to accumulate significant knowledge about this area of the system.
In case of any questions get in touch with us.