Installing & Configuring a Timesheet validator web service for Deltek Vision

*Some of the links here used to point to some incorrect source and configuration tool, as of 5/19/15 this has been fixed, sorry for any inconvenience this may have caused.

First you may download the web service and source code from here:

The compiled web service you can just copy and paste in is here:

And the configuration tool is available here:


For this example we’re going to add the web service as a web application on the Vision server. Start by extracting the web service zip to a location on the web server, in this example the files were placed in c:\inetpub\wwwroot\Timesheetwebservice. Next open IIS Manager and right click on the Default Web Server and choose Add Application.

In the window simply give the application a name, and choose the location of files you extracted earlier.

You’ll also need to change the application pool to a pool with .net 4.0. By default there should be a ASP.NET v4.0 pool you can select.

You can create a new pool with the following settings if you’d prefer.

Once that done you should be able to visit the site and view the application by going to http://yourvisionservername/theApplicationNameYouUsed/TimesheetValidator.asmx and you should see something similar to this screen below.

Now you can create some rules for your timesheet validation web service. Open the configuration tool by extracting the files from this download:

And double click on the DoMoreWithVision.ConfigureWCFTimesheet.exe file… ya it’s UUUGGGLLLYYY but it’s free. You will need to have .Net 4.5.1 installed run the application, which you can run from the vision server if you’d like (again as long as you have .Net 4.5.1). You can download .net 4.5.1 from here: If you run it remotely you’ll need access the web.config file from where you installed the Application. Start by clicking Open Web.Config and select the applications web config.

Now by default there should be one rule which you can select from the drop down. That example rule will execute when someone puts less than 8 hours of work and has more than 0 hours of overtime. This rule is actually wrong, and it’s mean to highlight the different types of files you’ll need to consider and follow. The example rule will be triggered anytime someone enters hours on a project.

The correct way to deal with daily entry totals is use the DayRegHrs and DayOverHrs as seen below. So you can correct this and then update the rule. The Error will be the message that’s displayed when the rule criteria is met.

The Rule’s themselves can be created by selecting the fields and choosing Add to add them. Then apply the supported conditions (AND, OR, LESS THAN, GREATER THAN, EQUAL TO, Not Equal True.). Orders of operation are supported by using () so you could use (DayRegHrs < 8 && DayOvtHrs > 0) && (Submitted == true) for a rule that would only be met when the days hours are less than 8 and overtime hours are greater than 0 and the timesheet has been submitted.

Once you’re done you can save the rule. Click add rule to create a new one, or remove or update.

Now that you created some rules you can configure vision to use the checker, so go to Configuration -> Workflow -> Web Services. And click Insert to add the service. Then choose Timesheets as the application, give it a description and then Enter the web service location in the following format (note the ?wsdl at the end:


In our example we used.


Lastly select the Method from the dropdown list, and click save.

Now be sure to test your rule in the Timesheet application.


Lastly a few notes about the configuration. First the httpRunetime needs to have request validation set to 2.0 (see the yellow below). Second you can see the rules are stored in the web.config under the ErrorChecks settings, in the ArrayOfStrings to store each rule in a <STRING> (see the red entries belwo), so one string set per rule. The rules have to be encoded so the text won’t be messed up by special characters.

<httpRuntime targetFramework=”4.5″ requestValidationMode=”2.0″/>


<setting name=”ErrorChecks” serializeAs=”Xml”>


<ArrayOfString xmlns:xsi=”” xmlns:xsd=””>

<string>RegHrs &lt;8 &amp;&amp; OvtHrs &gt; 0&lt;errors&gt;&lt;error&gt;Not enough hours to charge overtime 8 hours of regular time must be charged before charging overtime.&lt;/error&gt;&lt;/errors&gt;</string>




That should do it for now, hope you find the tool useful and again please use a test system first.

2 thoughts on “Installing & Configuring a Timesheet validator web service

  • July 21, 2016 at 12:58 am

    How hard would it be to make it look at the new Absence Request tables and validate against approved Absence?

    • July 29, 2016 at 2:51 pm

      Hi Bob, sorry this slipped through. I haven’t looked at the Absence Request tables, but it should be possible. Next time I get a chance I’ll see if if I can mock it up.


Leave a Reply

Your email address will not be published. Required fields are marked *