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://s2.company.ca for the Default ADS Path (the s2.company.ca 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.

Linking TimeControl with other corporate systems

A question that is asked quite frequently is how to link TimeControl to external corporate systems. Some clients request links to move corporate data into TimeControl, some want to move data from TimeControl to another system.
One type of connection is a transfer of data into the TimeControl tables to create timesheets. Another example would be using a corporate HR system to feed new employee data to TimeControl’s employee table or a work order system to feed tasks and assignments to TimeControl’s charge tables.
It is very common for organizations to wish to transfer time and cost data from TimeControl to a corporate system for Payroll, HR or Financial uses. These links are beyond the connections to project management systems such as MS Project, Deltek or Primavera which are pre-configured in TimeControl.

There are two main methods to set up links to corporate systems. The preferred method depends on the specific requirements:

Batch Transfer:
TimeControl contains an Integration Wizard that allows the client to create a custom import or export batch file in order to link to their corporate systems. The definition of this transfer can include predefined or user-defined fields and data including data that might be required to link to the external application such as employee codes or work order numbers. The resulting file is in a CSV or XML format which allows for connection to a wide variety of applications. The data is exported against a selection filter providing data for a specific period, employee, project, business or other criteria. This is the most common way HMS clients link TimeControl to external systems such as payroll, finance, HR or ERP systems. It is easy to set up and to administer and Finance personnel are usually more comfortable with a transaction file of data that is at arm’s length from the corporate Finance system. This allows the Finance system administrators to use the Finance system’s business rules to check data on its way into their system. TimeControl supports multiple transfer templates to server multiple export requirements. If required, exported data may be batch tracked to avoid inadvertently exporting the same record twice.

This method allows transfer of data to be set up quickly and easily and allows for a final review of the data prior to being imported into the corporate system.

Direct Database Connection:
A more sophisticated connection but less commonly used method is to use direct connections at the data- base level with SQL scripts, stored procedures and triggers. Because the TimeControl data resides on a host client server database, direct data transfers are relatively simple to establish. This type of connection typically provides transparent, real time data synchronization. Setup using this method requires an internal SQL expert or an HMS consultant and the effort may vary from a few days to several weeks, depending on the complexity of the connection that is required.

This method provides a dynamic instant transfer of data which is not always required.

Manipulation of data with SQL Scripts

In some cases TimeControl clients have a requirement to manipulate the raw data that has been captured in TimeControl to support a specific requirement. It is possible to use SQL scripts and stored procedures within the TimeControl data structure to perform calculations, summarizations and other types of data manipulations. The results of this type of calculation are typically written to custom fields or tables within the TimeControl host database. This flexibility allows TimeControl to meet a great variety of client-specific requirements.

An example of this type of data processing would be multi-currency calculations done when there are several currencies in the rate table and where the costs must be reconciled to a single currency for reporting purposes.

Getting started with Validation Rules in TimeControl

TimeControl’s business rules engine, the Validation Rules module is one of the most powerful aspects of the timesheet system. There is almost no limit to the number of rules or the type or rules that can be created to test timesheets automatically.

Some examples of validation rules might include:

No more than 24 hours in a single day

Exactly 8 hours per day of regular time for salaried employees

Use the Acme Rates for the Acme projects

No overtime unless a) you’re eligible for overtime and, b) you did at least 40 hours of regular time this week

Each of these rules can be customized to only apply to a select group of employees or to be applicable to everyone and each rule can deliver a message saying that the rule is an error or only a warning. The result is that timesheet data that makes it into TimeControl is already of extremely high quality before anyone even looks at it for approvals! Also, the most common corrections to the timesheet data are done by the people who know the data best; the people who entered it in the first place.

When organizations first see the capabilities of the TimeControl Validation Rules module, it’s common for staff from the Human Resources or Payroll departments to get very excited. They envisage dozens or even hundreds of rules that will mean never having to look at timesheets manually again.

HMS implementers recommend caution over being too enthusiastic when starting with Validation Rules. Imagine a new system where an eager enthusiastic TimeControl Timesheet Administrator creates hundreds of rules for every possible timesheet error he or she can think of. The system is activated and new users try to enter their timesheets. A user receives one warning, corrects the error, then receives another error message, corrects that then gets another. In short order the user gives up on the system declaring it “too hard to use”.

It’s important to remember that one of the most challenging aspects of deploying an enterprise system like a timesheet is compliance and for that reason, we recommend starting with a tiny number of rules. Think about starting with a half dozen or perhaps 10 rules to get started and, after the system has been accepted by the users, gradually add new rules for the most common of repeated errors. The system will gradually become more managed naturally over time and users won’t notice the volume of rules when they’re added gradually as they’ll have learned in previous weeks to avoid the Validation Rules that have already been made a part of the system.

Validation Rules are one of the most powerful aspects of the TimeControl timesheet system and, like anything powerful, must be treated with care and respect.

Managing Multiple Currencies in TimeControl

We’ve got all kinds of PowerPoint presentations that have been used for technical purposes. Here’s one on how to manage multiple currencies in TimeControl. TimeControl has always allowed the rate codes to be identified by Currency or any other coding. But, what if you wanted to store TimeControl costs in a common currency that was converted at the time the work was done? Check out this presentation on managing multiple currencies in TimeControl.

Managing pay periods which fall in mid-week when using TimeControl

Most organizations expect to have their office staff use a weekly timesheet and indeed, this is why TimeControl is designed with a weekly timesheet structure. Once data is entered into TimeControl and approved, it is saved in a ‘Posted’ format where the structure of the data changes from a 7-day period into a day-by-day format. This allows the data to be used in a much more flexible way for reporting and exporting into various systems.

When the data is posted, it becomes very simple to request a range of dates which exactly match the needs of payroll, billing or Finance for financial reporting. Thiss works well in most cases when the data is accepted into these systems following the close of the business week and the completion of any timesheets which are included in the period.

TimeControl’s “Missing Timesheet Report” and “Missing Timesheet Email Notification” functions are important here to ensure that all timesheets have completed the approval process and are represented in the exported or reported data.

There are, however, occasions when data is so time-critical that the client wishes to report on it right up to the end of the day before even if that occurs in the middle of the week. There are organizations whose payroll requirements oblige them to pay for time up to and including yesterday’s efforts. There are other organizations that have billing that is so time sensitive that it must be sent immediately and include any hours up to and including the day before. For these organizations, TimeControl has created the Posted/Unposted report. It is specifically designed for those situations where data must be pulled from TimeControl in the middle of the week for use in a reporting situation.

The report requests a date range and then provides all the hours within that range of both posted timesheet data and unposted timesheet data from the middle of the current week. The data is listed into a single format so that it can be used in either a report or exported into Excel and then sent to other systems. If, for example a data range were to go from the 1st of September 2008 (a Monday) until the 30th of September 2008 (a Tuesday) and the requirement was to have reports completed for September billing no later than the end of business on October 1st (a Wednesday) then the Posted/Unposted report would take posted data for the weeks of September 1st, 8th, 15th and 22nd. This data would have already been collected, approved and posted. The report would also add the unposted data from Monday September 28th and Tuesday September 29th.

Since the data may be taken from a current timesheet which has not been released and therefore has not been subjected to any business rules created in the TimeControl Validation Rule module, it is important to set up a process to ensure that the data is used properly.

If your organization has one of the situations where you will require immediate mid-week access to timesheet data, there are several considerations to put into your process:

Completeness
Since the Missing Timesheet report looks at completed timesheets, it will not be useful to determine if all timesheets have data which is entered into them by the middle of the week. In our example above, the timesheets of September 28th will all be in progress. A report should be included in your process which is run by the TimeControl Administrator of “unposted data” for that date range (in our example, it would be for September 28-29) which lists all pertinent users and the time against that week. If there are missing timesheets, those users will have to be contact to ensure they enter data for this partial period.

Data Integrity
Since time is being reported at mid-week, many of the usual TimeControl tests for data integrity such as Validation Rules have not been applied to the timesheet data yet. This means that there may be errors in the partial timesheet data that is reported that may be caught by a business rule at the end of the week and will need to be corrected. Since the purpose of taking the data mid-week is to send it to another system or use it for external purposes such as payroll or billing or financial reporting, it is important to check for any adjustments after the fact.

This can be done by keeping a copy of the Posted/Unposted report which is used for the export and comparing it to the same report done following the posting process. When the report is run for the same date range after the end of the week, it will obviously be taking data A simple comparison can be done between the two reports to check for any discrepancies (Typically they would be quite rare).

Posted/Unposted process
The following would be the typical steps in a process where the Posted/Unposted process would be required:

  1. Use unposted report to check what users have not entered data for the unposted period this week
  2. Contact those users who have not entered data for the partial week and ensure they have completed any timesheet entries which must be included in this report
  3. Run the Posted/Unposted report for the complete period required
  4. Send the report to the system required (e.g. Payroll, Billing, Finance). Save a copy for reference
  5. Following the completion of this week’s timesheet approval process, run the Posted/Unposted report again for the same period and compare for any discrepancies between reports
  6. Report any discrepancies to the systems required

The official blogsite of TimeControl