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.