A few months ago we released a build of TimeControl 5.1 that corrected some difficulties some clients were experiencing with a missing cursor when TimeControl was used in SharePoint. The fix was actually quite challenging and, as a result, we ended up reworking a whole range of code that included grids (that’s in a lot of TimeControl). It wasn’t immediately apparent but over the last couple of months reviews of the basic performance of TimeControl in certain situations resulted in some users experiencing much slower times doing fundamental operations. In some cases, the degraded performance was noticeable.
Using Generic Resources with TimeControl
During a sales presentation of a project management software solution, the vendor typically speaks about resource management and resource assignments on an individual basis. In this scenario, the resource pool is comprised of individual, named people. In some cases the individuals have additional attributes such as a specific skill or be part of a larger resource group. For example, Bob may be an engineer and may be part of the Engineering resource pool. Kevin may be a designer and part of the Design pool. The intent is that Bob would be assigned to a task that requires Engineering and Kevin assigned to tasks involving design. TimeControl is very happy to work in the manor if desired. Each person making a time sheet within TimeControl has the option of being “related” back to a resource code in the supporting project management system. During the transfer between TimeControl and the PM system, resource information, including assignments is part of the data being shared. Once the timesheet has been completed, hours that Bob has entered for his Engineering tasks get transferred back to the PM software as actual resource hours for the Engineer / Bob code. In this scenario, the resource codes in the PM software represent an individual and match the TimeControl employees on a one to one basis as per the example shown in this screen capture.
In this example, and hours entered by the employee Sally Thompson resolves back to the individual resource code Sally Thompson in the schedule.
Recently I have spoken to several companies who are using their PM software with generic resources and wish to transfer the hours worked by an employee, from TimeControl back to the generic resources. Using generic resources is a very common project management practice in involves doing the planning at a group level such as Engineers, planners, programmers or similar. The resource pool in the PM software is comprised of group codes, and may or may not have individual codes. The project manager assigns tasks to the group code and the line supervisor decides who will actually do the work. The employee who works on the task enters their hours in TimeControl and that data is ultimately returned to the schedule as progress. If an employee in TimeControl is linked to a group resource code (also known as a resource pool code) the total hours for all of the employees who are linked to that resource code will be transferred back to the schedule as progress. An example of this type of reference is shown it this screen capture.
In this example hours worked by Tom Logan are resolved to the resource pool code Analyst in the schedule. In the case where an employee worked on a task and is a member of a resource group that was not originally assigned to the task, TimeControl can be set to create the resource assignment in the schedule as a part of the transfer process.
TimeControl can be used with employee specific resources or with generic resources or a combination of the two, depending on the requirement of the Project Office.
By: Ken Edwards
Importing legacy timesheet data into TimeControl
Some organizations have had timesheets for years and, when they implement TimeControl, they ask if they can import legacy timesheet data from their older systems into their new timesheet software.
The answer is yes. TimeControl is designed with an Import Timesheet feature that is described in the Reference guide. Unlike the imports for all the TimeControl tables, the Import Timesheet function is a fixed format of import. Several fields are required in a particular order. The TimeControl Import Timesheet function takes a Comma Separated Values (CSV) file which can be created in Excel to bring in the data.
The fields required are:
Field as described in the import tool |
Database Field name |
Example Value |
Week Ending Date |
TSH_WEDATE |
20080321 |
Timesheet Header Type |
TSH_TYPE |
NORM |
Timesheet Header Employee |
EMP_CODE |
GJ018 |
Timesheet Header Owner |
USR_CODE |
ADMIN |
Project Name |
TSD_PRJ_NAME |
DATA |
Charge Code |
TSD_CHR_CD |
Data.2.3 |
Rate Code |
TSD_RAT_CD |
STANDARD |
Hours Monday |
TSD_CMON |
8 |
Hours Tuesday |
TSD_CTUE |
8 |
Hours Wednesday |
TSD_CWED |
8 |
Hours Thursday |
TSD_CTHU |
8 |
Hours Friday |
TSD_CFRI |
8 |
Hours Saturday |
TSD_CSAT |
0 |
Hours Sunday |
TSD_CSUN |
0 |
There are a few constraints to be aware of:
- First of all each of the values that are being used to create new Timesheet Headers and Timesheet Details must already exist in the system. So if you are creating a timesheet for Employee code GJ018 then that employee code must already be in the Employee table. Same goes for the User, the Rate code, the Project name and the Charge code.
- “NORM” is a normal timesheet. That’s distinct from a DBCR (Debit/Credit) entry that TimeControl might store internally.
- The ANSI date type is year/month/day in the format 20080321 which is March 21, 2008.
- Once the import is complete, you’ll need to check the log to make sure everything you were trying to import arrived.
- The timesheets, once created, will be in draft status and owned by the “Timesheet Header Owner” listed in the import record. In the example above that’s user “ADMIN”.
For those who are keen to get started, the HMS Technical Support department (Thanks James!) has made a spreadsheet available as a template. To use the spreadsheet, first download the Excel file called tcimporttimesheets.xlsx from the TimeControl website. You’ll find the same data as is displayed in the table above. Enter your data into the appropriate columns then delete the first column and the first three rows which include descriptive header data and the one example record that is listed above.
Happy importing!
Dilbert and timesheets
All-new TimeControl Online Training Center
It seems we’ve been talking about it forever, but over the holidays we have finally launched the TimeControl Online Training Center. This mini-training area lets users or prospective users see how to perform TimeControl functions through mini-lessons that are only 3 to 7 minutes long. Best of all, access to the TimeControl Online Training Center is absolutely free.
The Training Center includes a number of basic and advanced lessons to cover basic functionality. Lesson include:
- Entering a timesheet
- Adding a new user
- Running TimeControl reports
- Linking to a project management system
- Adding a project
- and more…
The TimeControl Training Center will be of interest to those using the TimeControl Hosted Evaluation site as well as being a good resource for existing users. Videos are displayed through a web browser using Flash technology. The data in the TimeControl Training Center lessons is the same as that found in the Hosted Evaluation site as well as the Hosted Trial sites that are made available from time to time to prospective users who are evaluating TimeControl.
Stop by the new training center at www.timecontrol.com/resources/lessons.
TimeControl’s new Timesheet AutoFill
TimeControl 5.1.5 has a new feature that we think will be a hit with Human Resources Departments. We all know about TimeControl’s strength as a task-based timesheet system and its links to project management but not all personnel in an organization are project personnel. Many organizations use TimeControl to track the entire staff including those employees who only need their time and attendance tracked. For these users we are often asked if timesheets can be added only “by exception”.
By exception timesheet entry means entering a timesheet only when your weekly timesheet won’t be a complete week of working as per your salaried schedule. So, if you have vacation, sick leave, personal time off or some other exception, you’ll enter only those hours. But what about the rest of the hours that make up your complete week? That’s what AutoFill is for.
TimeControl’s Timesheet AutoFill allows an administrator to create or fill-up timesheets for a selected group of employees. It’s not for all staff. The project personnel should be filling out their timesheets with all their hours per task. Timesheet AutoFill is for those people who only need to track time and attendance.
The Timesheet AutoFill command is in the Tools menu and, when selected, lets the Administrator decide whether to Create timesheets, add to existing unposted timesheets or to already posted timesheets. The Administrator uses the options that are appropriate to their timesheet process.
Then they can determine what to fill the timesheet with, a preset list, a list that comes only from the Employee defaults or a list that comes from Employee defaults when available and Administrator selections when not. Finally, the Administrator chooses which group or filtered group of employees to include in the AutoFill and starts the process. A log identifies exactly what timesheet data was added.
We’re conscious of TimeControl’s auditability so, we have, of course identified the hours that have been entered through AutoFill in both the Timesheet Detail and Posted Lines tables.
If you’d like to see the new function in action, take a look at the TimeControl Timesheet AutoFill webcast.
Project Specific Rate Codes
Rate management is one of TimeControl’s most popular capabilities. Each hour worked on the timesheet can be calculated against a rate value according to the rate table. The end user selects a rate code on the timesheet and as the timesheet is posted, TimeControl calculates the costs.
Each rate code has two values, which are most commonly use for the internal or direct cost of the employee and the external or billable cost. TimeControl supports an unlimited number of codes which allows for many combinations. One of the most common requests is to track project specific costs.
Because there are an unlimited number of charge codes possible for each employee, the amount calculated for each hour of work can be different for each project and for each employee. For a client with a lot of projects, the number of possible rate codes that could be chosen by an employee, could become quite extensive. TimeControl provides a function that minimises the effort required to choose the correct rate code and that increases the accuracy of the entry. This function allows a project- specific rate code to appear when the project is chosen. This rate code will take precedence over any employee defaults that have been specified in the Employee table. To use this configuration, first add the project-specific rate code to the Labour Rate Table as a Global ate code type. This is a requirement for using the project-specific rate function. If you desire an employee-specific project costs, then add a rate with the same rate code value but as an employee specific rate. TimeControl will always select the most specific rate code applicable with that rate code value. So, for example, if the rate table has a rate code called “Std” for Standard rate and that is a Global Rate of $50 and a rate code called “Std” which is an employee specific rate for John, then when John does his timesheet, TimeControl will assume that the “Std” for John is the correct code.
Once the Global rate has been created, then go to the Project Table, and locate the project for which you’d like this rate code to be specified. On the Project Details tab select the project specific rate code.
Note that only global rates can be selected.
Selecting the “required” button will ensure that only this rate can be selected on a timesheet when this project is selected.
When the project is added as a line item to an employee’s timesheet the project specific default rate code will be automatically selected. If a matching employee rate type has been created, the employee rate value will be calculated. The project rate code will take precedence over the default rate code specified in the Employee Table.
In this example, the P_SPEC rate was added automatically to the DA Project line item.
TimeControl and Project 2010
As you may have seen over on my EPM Guidance blog, Microsoft has now shown Project 2010 and Project Server 2010 at its Project Conference in Phoenix last month. HMS was in attendance at both the Project Conference and the Ignite Airlife immediately preceeding the conference. HMS is one of the longest standing partners of Microsoft Project. Our link between TimeControl and MS Project dates back to 1995 and we’ve maintained a continuous relationship with Microsoft since then. With my participation for five years on Microsoft’s EPM Partner Advisory Council, I’d already seen much of what Microsoft had intended in both Project and Project Server and, while nothing we saw in Phoenix was a big surprise for me, it was nice to see the version I’d spent so much time on coming close to fruition.
Using TimeControl by exception
In some organizations there is a great need to track what employees are doing with their day. A timesheet allows each employee to choose from a list of tasks and identify how much time each task took. TimeControl is ideally suited to such a system given it’s ability to track time task by task.
But there is another type of user that is often more plentiful than the project-based personnel. This user may not have a need track their tasks throughout the day. Perhaps the user does the same thing each day or perhaps the user is compensated and measured through other means.
Let’s take an high-tech organization. There may be researchers and IT specialists and marketers who work on projects throughout the week and we know we can be more effective if we can determine where their day is being used. But such an organization might also have salespeople. These people are compensated by commissions perhaps. Should they too need to complete a timesheet every day? (Actually there’s a good argument for doing just that but let’s imagine that in this organization we don’t wish to do this at all.)
TimeControl can also be used as a by-exception system. Some users could be asked to enter their timesheets on a weekly basis and the TimeControl validation rules can be set for those users to ensure that the timesheet represents a complete week of 40 (or some other number) of hours for example.
For other users however, TimeControl could be configured so that the users only enter a timesheet when they have taken time off. This “exception” time could be for vacation, sick leave, jury duty or just PTO – Personal Time Off. The possible entries for these users would only be for exception time and these users would not be listed in missing timesheet reports as timesheets would not be expected every week.
There are two ways this can be configured in TimeControl for the non project personnel. Option 1 would see the exception timesheets only containing the exception hours. Option 2 requires a few more hours work during configuration and adds a process which fills in additional hours to any exception timesheet or any blank timesheet to result in a complete list of hours for the week. Either option works well though reporting with Option 2 can be blended much more easily with the timesheet data of project personnel.
The benefit of mixing project and non-project users in a single TimeControl instance would ensure that 100% of staff were represented in the system. TimeControl’s reporting can be segregated with filtering to ensure that project and non-project timesheet data isn’t mixed or the data can be blended together as desired.
TimeControl’s flexibility makes it one of the few systems on the market that can accommodate both project and non project personnel from within the same system.
TimeControl charges restricted by assignment
By default, TimeControl allows users to see every possible project and every possible charge code in the system. There are, however, a number of features within TimeControl to restrict what projects and what charges each employee should be allowed to choose from.
In the TimeControl Employee Table, the administrator can declare a pre-defined filter to apply to the project selection and charge selection that will be applicable to each employee as they enter their timesheet. Popular filters include “only projects which are open” and “only charges which are open” or “only charges with a start date within 2 weeks of today”. These kinds of filters are relatively easy to create.
There is another request that we hear from time to time from those with experience in popular project management systems. These systems often constrain the timesheet to only accept charges from the employee’s assignments. This makes more sense when project resource scheduling is being done at the individual level which may not be the case for many environments. But, where individual assignments are identified, these project systems will present or show only those records for which the employee has a valid assignment.
Can TimeControl provide the same kind of functionality?
It can.
First, when TimeControl is linked to a project management system, we provide the option to bring in all the resource assignments. It’s not a requirement but when the option is selected, a table is loaded which is attached to the Resource Table. This data is called the “Preloading list” and shows all resources attached to a task back in the project system. Within TimeControl we can add or remove from this list manually. The list can be used for pre-loading but we can also take advantage of the list to make a filter that can constrain both the projects and charge codes that can be seen by each employee.
Project Filter
First, let’s make the filter for the Project List. Add a new filter, give it a name like “Project Assignments only” and select the Project table. The filter we want to make can’t be created from the standard field menu so clear the “Always generate the SQL when saving” option and click on the SQL tab. Now copy and paste in the follow SQL command:
SELECT TCPROJ.PRJ_KEY FROM TCPROJ WHERE ((PRJ_NAME = ‘ADMIN’) OR (PRJ_KEY IN (SELECT DISTINCT CHR_PRJ FROM CHARGE WHERE CHR_KEY IN (SELECT DISTINCT CRS_CHR FROM CHRRES WHERE CRS_RES = (SELECT EMP_RES FROM EMPLOYEE WHERE EMP_KEY=%TSH_EMP%)))) AND TCPROJ.PRJ_STATUS <> ‘Closed’)
Save the filter, go to the Employee table and select this filter in the Project Filter field.
Charge Restrictions
Ok, now here’s the Charge filter. Add a new filter, give it a name like “Charge Assignments only” and select the Charge table. Once again the filter we want to make can’t be created from the standard field menu so clear the “Always generate the SQL when saving” option and click on the SQL tab. Now copy and paste in the follow SQL command:
SELECT TCPROJ.PRJ_KEY FROM TCPROJ WHERE ((PRJ_NAME = ‘ADMIN’) OR (PRJ_KEY IN (SELECT DISTINCT CHR_PRJ FROM CHARGE WHERE CHR_KEY IN (SELECT DISTINCT CRS_CHR FROM CHRRES WHERE CRS_RES = (SELECT EMP_RES FROM EMPLOYEE WHERE EMP_KEY=%TSH_EMP%)))) AND TCPROJ.PRJ_STATUS <> ‘Closed’)
Save the filter, go to the Employee table and select this filter in the Charge Filter field.
Before you scramble off to make this the default for all your users, you’ll want to consider a few questions:
How often do people do work on activities to which they were not originally assigned? How good was the original plan? If people typically work on activities to which they weren’t assigned, you’ll need to do a lot more updating of the Preloaded list or linking to an updated project schedule with assignments in order for users to be able to complete their timesheet.
Is there an administrator available that can update the preloaded list as required? They’ll need to be available for sure near the end of the work week to quickly update possible entries.
Does the work and procedures that are necessary to keep this list maintained, add more or less work than the alternatives? It’s important to think of the ROI. Clients often ask for this option with the thought that it will reduce inaccurate data. If, however, there is so much effort maintaining the assignment list accurately, it may outweigh the benefits.
Frustration of users may be high if they can’t find their charge codes, resulting in bad data. If a user can’t find the right charge and can’t reach the administrator to make sure it’s in their assignments, then they might choose any charge in order to complete their timesheet. If that happens, Administrators may spend more time reassigning charged time through Debit/Credits to fix bad data.
On the other hand, if assignments are generally quite stable then limiting choices in this way may reduce user confusion in choosing the right charges.
Remember too that if the data is in the pre-loading table either through manual input or automatically by linking to a project management system and transferring the assignments, then the timesheet can be pre-loaded with the correct assignments when it’s added. That may be enough to encourage correct data without having to restrict it to absolutely these charges.
Think about the pro’s and con’s and test out the new filters with a small number of users before deciding to adopt it wholesale.