Category Archives: timecontrol

The odd case of the missing timesheet

It’s the toughest thing about timesheet management, finding the missing timesheets on Monday morning (or whatever morning is your start of week). Fortunately TimeControl has functionality that lets you track down these timesheets that are yet to be.

There are two main weapons in the arsenal of TimeControl timesheet administrators to track down missing timesheets. The first is aptly named “The Missing Timesheet report”. This report has a number of options. When you start the report from the Reports Menu area, it asks whether to include:

        1. Only timesheets that have not been started
        2. Timesheets which have been submitted but have not yet arrived in “Posting” or completed status.
        Administrators can then produce a report showing any timesheets which stand between them and 100% compliance.

        As great as that sounds, there’s more. In the User Profiles definition, you can set security to show “Timesheet Data only for me and those who report to me.” This will ensure that the Missing Timesheet report only includes information from those below the person with this profile in the approval hierarchy. It’s an ideal setting to turn on for Department Supervisors who can be made responsible for the collection and approval of timesheets in their area. Since the report is hierarchical it doesn’t matter how many or few levels of approval there are, with this setting on, any timesheet data and only the timesheet data below the user will be visible. Now each department supervisor or timesheet clerk automatically has a Missing Timesheet report that applies to their department.

        The Missing Timesheet Report is a powerful tool and already goes a long way towards ensuring that any incomplete or unsubmitted timesheets are located but it is not the most popular tool among TimeControl Administrators. That privilege rests with the “Email Notification.”

        Email Notification takes the missing timesheet and automatically sends a pre-formatted email to everyone on the timesheet list. When starting this option from the Tools menu, it asks who you want to locate just like the Missing Timesheet report does. Then you’re given an opportunity to enter a message to users who may have a missing timesheet within their control. That means the employee themselves if the timesheet isn’t started or a supervisor if the timesheet has been submitted but is not yet own by the “Posting” process. The function uses the email address in each user’s record in the User table to determine where to send mail to. As good as that is, this function is made much more powerful by allowing TimeControl Administrators to automatically schedule emails to be sent out automatically! This means that an Administrator can schedule a gentle reminder to go out on a Friday (or near whenever the end of the working week is for you) saying “Don’t forget your timesheet”. They can then schedule an email to go out on Monday morning saying “Perhaps you forgot your timesheet?” and an email later in the morning telling the recipients that “No kidding, we’re waiting for your timesheet please!” As the day progresses, hopefully the list of recipients becomes shorter and the message more insistent.

        Both the Missing Timesheet report and Missing Timesheet Email Notification depend on the “Start” and “Finish” dates in the Employee record. You can think of those fields as “When we should start looking for missing timesheets” and “When we should stop looking for missing timesheets”.

        These are two of the most powerful tools but they’re augmented by a few other elements:
        First, the TimeControl dashboard can be set up to show users if they are missing any past timesheets as soon as they log into TimeControl.
        Next, the integration of TimeControl into processes like Project Management, Payroll and HR let the compliance of the timesheet in TimeControl adopt the standards of the compliance of those systems. For example, if the timesheet is key to having payroll done successfully, there’s an enormous incentive for employees to complete it. That helps on the project management side as the data is collected at one time. TimeControl’s ability to be a single source of timesheet data for many different systems is a big benefit in this regard.
        Finally, TimeControl’s functionality for “Alternative Users” who can replace a supervisor to approve timesheets when that supervisor is away for an extended period, “Change Ownership” which allows an Administrator to force an incomplete timesheet up the approval path when an employee has started it but is absent and the ability to automatically send emails for rejected timesheets that had an approval problem all lend themselves to helping make sure the timesheets are located each week and ultiamtely end up in a posted format.

        TimeControl’s ability to track down missing timesheets is one of the reasons it is so popular with such a wide range of sizes of organizations. This functionality scales to tens of users, hundreds of users or thousands of users as a natural part of the weekly timesheet process.

        Cascading User Defined Fields

        Here’s the challenge. On a timesheet you have several user defined fields. Let’s take a simple example. We have consultants who do several things but we want them to identify what city they were in when they were doing the work this week. So, I could populate a drop-down list of 10,000 cities but scrolling through it to find Toronto would be quite tedious.

        TimeControl now accomplishes this with “Cascading User Defined Fields”.

        To activate this feature you’ll need to have access to the TimeControl Server and follow these steps:

        1. First, create your user defined Text Fields in the timesheet itself. You may want to hide them from others in the User Profiles until you’re ready to display them.
        2. Now, under the TC5 directory add a new folder called “CustomWork”
        3. In this folder make a file called “TimesheetUDF.ini”
          Here’s an example of what would be in the file. In this example, timesheet field 2 would depend on the value in timesheet field1, Timesheet field 3 would depend on the value in timesheet field2.


        4. In the fields themselves, we then use periods to distinguish the levels.

          So in TSD_FLD1 we might have:

          TSD_FLD2 might then have:

          TSD_FLD_3 might then include:


        5. You’ll need to restart your TimeControl Transaction Server for the new definitions to take effect.

        When entering a timesheet now, if you choose “Canada” in field 1, then only QC, ON and BC will appear in field 2. If you then choose “ON” in field 2, then TimeControl would only show “TORONTO” or “OTTAWA” in field 3.

        The effect is to reduce what is potentially tens of thousands of choices to a tiny handful and that can make the difference between a complicated timesheet entry and a very simple one

        What’s a Batch Transfer?

        Did you know about Batch Transfers in TimeControl?

        Think about this challenge:

        You’ve got all kinds of timesheet data for the month and you are sending it out to your payroll service in an export file. The timesheet system happily creates the file for you and sends it to the pay people.

        A week later it turns out you need to make a number of adjustments to the timesheet. You add hours to one thing, remove them from another and now you have a bunch of timesheet data from a previous period that you need to export. How are you going to do that? Do you re-export the whole month? Do you keep track of what changes happened manually? Do you try to find the internal update date and number to see when things were updated?

        TimeControl’s Batch Transfers were designed for exactly this challenge. Each time an export is defined that includes timesheet hours, there is an option to declare the transfer a “Batch Transfer”. When this is done, each time the export is executed, all the timesheet lines that were a part of that transfer are given a number. Then when the export is run again, the user is given the option to export new records or to re-export a previous batch. This is a very important element of functionality. It means that you can request a transfer of all data from the beginning of the fiscal year and only the records which have never been exported before will be put into the transfer transaction file.

        This is a function which is critical for transfers to payroll or billing. It prevents double-payments, double paycheques and makes finding and exporting on previous timesheet adjustments much more efficient and much more reliable.

        Check out Batch Transfers in the Export Tables function of TimeControl

        TimeControl supports Primavera “Steps”

        TimeControl 5.1.2 became available yesterday and along with several improvements came long-awaited support for updating Primavera Steps within the TimeControl Timesheet. As you can see by clicking on the screen at right, there is a new tab called Activity Steps which displays the sub-task level steps and the percent complete for each one. The resource which is designated in Primavera as the ‘primary’ resource will be able to edit the Step progress. Other resources will be able to see them only. New Steps cannot be added within TimeControl. They must be done within Primavera itself. You can see a quick video of Primavera Steps working within TimeControl 5.1.2 on the TimeControl 5.1.2 Steps Screencast.

        On demand, scheduled, triggered, which is best?

        TimeControl includes a number of links to project management tools and a number of different methods of connecting to them.

        If using Microsoft Project Standard or Professional, the link is to a desktop tool and that’s always going to be on-demand but what about if you’re linking to Microsoft Project Server, Primavera or Deltek’s Open Plan? Now the link is typically server-to-server and could be scheduled or on-demand. With Project Server, incoming links can also be triggered by the TimeControl “OnPublish” event that is included with the system. Primavera can also be set up to automatically link data to TimeControl when a new project is created. Here’s the best practice that’s most commonly applied:

        First for incoming changes in data, this is a link that is meant to keep the TimeControl charge and activity code information up to date with the changes that may exist in the project files. It’s most typical to create the incoming links as scheduled or automatic events. If the link is with Project Server, then the “OnPublish” event module that is part of the installation is perfect for this. If the link is with Open Plan or Primavera then a regular scheduled link moving information on a server-to-server basis is ideal.
        How often should the links happen? As often as the project is likely to be updated. For most projects a weekly link will probably be fine. If your week-ending day is Friday, then a link on Thursday night might be appropriate. Some projects are highly dynamic and need to be updated multiple times per week or even multiple times per day. Create as many scheduled events to do this. A scheduled link can be daily or weekly and you can pick the day and/or time when you’d want it to occur.
        For project updates that will move timesheet information back to the project management tool, we recommend making most of these links “on-demand” for the project manager. That means that the project manager will pull the data from TimeControl to their project management tool when they are ready for it. You can make the link automatically scheduled of course but we had an image of a project manager working on his project late one night and suddenly “poof” everything changes as the automatic link moves the data in from TimeControl. Most project managers will want to bring in the data when they’re ready to see the project advance.
        There may be exceptions of course. Some projects such as regular maintenance projects aren’t really managed the same way and an automatic link to update those files from TimeControl may make more sense. You have the option to do both.
        With TimeControl, you get the ability to make your links as automatic or as manual as you wish and each situation can be different.

        What about TimeControl in a 64 bit environment?

        With more and more people asking about TimeControl in a 64 bit environment, I thought it might be worthwhile to talk about it.

        When people ask whether TimeControl works in a 64 bit environment, we have to take a moment and ask what part. There are several elements of TimeControl to consider.

        • If we’re talking about the data itself running on a 64 bit database server, the answer is Yes. TimeControl is happy to connect to a 64 bit database server.
        • If we’re talking about the client workstations within Internet Explorer, then the answer is also Yes. The TimeControl ActiveX controls are 32 bit controls but Microsoft loads a 32bit version of Internet Explorer by default in a 64 bit operating system and TimeControl is perfectly happy there.
        • The TimeControl ATS middleware itself does work in a 64 bit environment but the COM Server which provides the menu to the IIS (Internet Information Services) webserver is 32bit only so our instruction to clients is to install the TimeControl Server on a 32bit server operating system.
        • What about a 32bit Virtual Server running in 64 bit hardware? This works just fine for the TimeControl ATS and both VMWare and Virtual PC are very effective in managing TimeControl in this way. If you only have a 64 bit server available, then creating a Virtual Server running Windows 2003 or 2008 on that machine and installing the TimeControl ATS there is a perfectly viable solution.

        In TimeControl 6 we’ve already made allowances to support both 32bit and 64bit servers as we have eliminated the COM Server. This will result in different installations depending on which server you’re installing onto.

        Linking TimeControl to LDAP and Active Directory

        Some users of TimeControl ask about password policies. Can they set the password to be more complex or can they set passwords to expire after a certain number of days. Other users ask if TimeControl’s passwords can be harmonized with the passwords the users already use to login to their network or their PC.

        All of this can be accomplished by switching from TimeControl’s native security to use Lightweight Directory Access Protocol (LDAP) or Microsoft’s Active Directory. This is controlled in TimeControl’s user table so it does not need to be implemented for every user.

        To set up TimeControl to use the Active Directory for authentication, go to the TimeControl ATS Management Console on the TimeControl server.

        1. Expand the TimeControl ATS Server and click on the Parameters folder
        2. Go to the Server Options tab
        3. In the Default Authentication section type LDAP:// for the Default ADS Path (the represents a DNS name)
        4. Click Apply to save the changes
        5. The ATS must be restarted so that the changes may take effect Logged onto TimeControl with Administrator rights
          Note: This can be done by re-importing the user table which would include a column for the ADS User. Please refer to the Importing Data into TimeControl in the TimeControl RefGuide.pdf
        6. Under Tables Users select the user that will use the ADS Authentication
        7. Select the Timesheet Options and in the User Authentication Mode Section Select Active Directory Services from the Method pull down
        8. In the ADS Server Path type: LDAP://ads server name or IP
        9. In the ADS User type: Domainuser name
        10. Click Apply
        11. Repeat steps 6 through 11 for each user

        Note: If the default ADS Path is setup in the TimeControl ATS Management Console then the ADS Server Path is not required, TimeControl will pick the default up from the ATS. If there is no Default ADS PATH set up in the TimeControl ATS Management Console then the User Domain must be filled in.

        Integrate TimeControl with QuickBooks

        When clients call and ask if we can integrate TimeControl to their finance system, we rarely need to look at the finance system to say yes. TimeControl links to corporate systems in one of two major methods: The most popular is through transaction files that we create from TimeControl and are imported by the finance system on a regular basis or that the finance system creates and we import into TimeControl on a regular basis.
        TimeControl can also integrate its data directly with large ERP systems since both TimeControl and these large systems are based on similar database environments.

        For those using tools for the midmarket or smaller markets however, it isn’t always so easy. QuickBooks users might like the reference to the “IIF Overview” article on the QuickBooks site.This tool can take files created by TimeControl and move them into the QuickBooks architecture as transaction files.

        Why not put in the hours for me?

        I get this question all the time. Users who look at the robust TimeControl interface ask why we can’t seek out the planned hours from the project scheduling system and populate them into the timesheet. ‘We must have access to the planned hours from the task assignments in the project system,’ they argue so surely we could make their lives easier by simply putting the hours into TimeControl for them. ‘We could go one step further,’ they say. We could look at the remaining hours not accounted for by the project system and fill them in with ‘Miscellaneous’ to make up a 40 hour work-week and complete the timesheet.

        ‘Wouldn’t that ease of use increase the overall percentage of compliance of the timesheet and therefore be better?’

        It wouldn’t.

        The problem is not technological. These people are quite right. We do have access to the hours planned in the project management system and automatically populating the timesheet with all the hours would be technically easy to do.

        Why not do it then?

        Because of what we already know about human behavior. Imaging a timesheet which is pre-populated for you. You need only click ‘Ok’ to complete the timesheet and send it on its way for approval. It’s the end of a long week and the weekend beckons. Do you click ‘Ok’ or, do you review each line to ensure it’s correct? Most people will just click ‘Ok’.

        Ok, your personnel are diligent people who would never just click Ok. Let’s accept that. Now imagine that it’s the end of the week and the timesheet system indicates that the plan of the week was to spend 35 hours on that design task and 5 hours on that documentation task. Unfortunately you’ve just done the opposite. You’ve spent 35 hours on the documentation task. Won’t there be a tremendous temptation to click ‘Ok’ with a promise to yourself to make it up later? There will.

        Here at HMS we know that the most valuable thing TimeControl can deliver is accurate complete information so that management can make better decisions. If all we do is return data that matches expectations, then there’s little point in tracking it at all.

        So, TimeControl can optionally pre-populate a list of the tasks you were scheduled to work on based on the assignments in a project management system but it won’t put in the estimated hours for each day.

        Years ago I was in a presentation showing TimeControl to a small group of technology professionals. The Chief Financial Officer was in the room and at one point asked why we didn’t automatically complete tasks in the project management system from the TimeControl timesheet. I pointed out that we did, in fact, allow the Estimate to Complete to be entered in TimeControl and that when there was nothing left to complete, the task would be marked as completed in the project management system. The CFO though was insistent. Why didn’t the timesheet just figure that out from the hours worked.

        “What would you expect to happen,” I asked, “in a task with a plan of 40 hours when you’d done 40 hours of work?”

        “I’d expect the task to be automatically marked as complete,” he answered.

        I was stunned. “But what if it’s not complete?” I replied.

        “I don’t understand your answer,” the CFO said. “If you’ve done 40 hours then the task is over.”

        A senior VP had to take the CFO out to explain that life doesn’t always match up to our expectations in a project.

        We’ve remembered that lesson very well at HMS and it’s reflected in the TimeControl design. There are all kinds of links between TimeControl and project management tools that give users a tremendous access to data from both the timesheet and the project management environment but we have resisted the most requested feature in the system for over 15 years now. TimeControl will pre-populate a list of what the end user was supposed to work on, but it won’t load all the expected hours. End users are responsible to declare what they actually did with their time.

        Best Practices for a successful TimeControl deployment

        We have compiled several best practices that we have established with our clients over many years of implementing TimeControl. While these practices are all generic in nature, you may find some of them of use to you.

        NOTE : While TimeControl might only be used by most users for a few minutes a week, it should be considered as a critical process in the enterprise and thus the environment for TimeControl to connect to should be stable in order to ensure service. We recommend that a network administrator be responsible for monitoring resources and service availability and managing environment modifications. This person would be responsible for the connectivity of TimeControl. This may includes managing firewall settings, physical connectivity, security upgrades that come automatically from Microsoft or other internal network or security settings.

        Connectivity must be ensured between:

        • The client stations and the Web Server
        • The client stations and the TimeControl Administration Transaction Server (ATS)
        • The Web Server and the TimeControl Middleware; the TimeControl Administration Transaction Server (ATS)
        • The ATS and the Database Server
        • The Database Server should be established as part of an environment that is guaranteed to remain available. This includes server redundancy, backups and an environment which is not shut down, rebooted or otherwise disabled except in a very controlled fashion. For example, modifications on other databases on that same Database Server should never impact the availability of the server or TimeControl’s database.

        NOTE : all modifications in the environment can have an impact, no matter how small the impact or the modification

        • Database availability must be guaranteed at all times. Database availability without interruption is crucial in providing service availability for TimeControl. If a connection from the ATS to the database is interrupted (for example by rebooting the database server) then the ATS will suspend service.
        • TCP Ports used for database connectivity and Application Server Connectivity should remain open at all times. These ports are usually managed within the firewall.
        • Machine resource availability (processor, memory and hard drive space) should be ensured. Other processes which overload either the database server, the ATS server or the Web Server will cause TimeControl services to be interrupted.

        NOTE: We recommend that a formal process be established for a requested for change in the environment and that such requests be approved and filed by a network administrator who should consider TimeControl availability or the steps to resume availability as soon as the change has been applied.Any modification to the environment, the system, the application or any other piece on the environment should be logged and made available for audit.