21 Jan Automatically approve task status updates
<Earl Grey>
Project Server 2010 allows for the option of auto-approving task status updates, and since SP1, this has become even more useful as the option to publish the update has been added (see here).
However, due to the complexity of setting up the rules and lack of documentation regarding them, PMs have either tended to not use them, or to go for one of the easiest options of trusting all the updates from a select few employees (they either sit in the “Trust no-one camp” or “I trust a few people, but not everyone camp”).
I’ve found this slightly limiting, and I’ve recently been setting up a system for a client who wishes to manage these updates by exception only, rather than a blanket approval rule for a discrete set of employees. This client manages their plans by monitoring the completion dates of tasks (as oppose to the amount of work performed on a task).
To set up this scenario we first need to open up PWA and navigate to the Approval Center, and click on the Manage Rules button on the Ribbon
The Manage Rules page appears, and in the Ribbon click on the New icon to create a new rule.
Give your rule an appropriate name and description – note for best practise I will ALWAYS add the rule I’m testing for in the name, and then the full description in the Description section. When you have a lot of rules, it becomes much easier to decide which one to edit when they are named and described such.
Decide then whether to select the check boxes for Automatically Running the rule and Automatically Publish the updates – note for best practise I will turn these OFF (ie not selected) until I have verified that the rule does exactly what I want, and of course you will want to test these rules on a test project or even better, a test system before moving them to production.
Select the request type. For this we need to check Task Updates, and then the radio button “Where updated field matches a field in the published project”
The trick now is to select the updated fields to test against. For our scenario we want to perform the following test.
Assignment Finish <= Assignment Finish – note that we are testing the updated field against the published field.
Once this is completed, it is possible to restrict both the projects and resources that this rule is run for. In our instance it is left for all projects and all resources.
click on Save
The rule now appears within the Manage Rules screen, and it can easily be seen what the rule does due to sensible naming and the description. Note that there is no button on the Ribbon to go back to the Approval Center, so select the Approval Center from the links menu on the Left Hand Side.
Test the rule, by publishing a test project with several tasks and updating tasks via My Tasks. In order to get the Assignment Finish date to change beyond the Published Finish Date, you’ll need to update the work values so that they extend beyond the planned work values. You can either do this be changing the start date to to one after the planned start date, or if you are typing in Timephased values (either by tracking time per day or using Single Entry Mode), you will need to enter less work on the planned start date, or any of the planned work dates. This should cause the scheduling engine to move the Assignment Finish Date out into the future, and hence the rule won’t trigger. You will also want to test for tasks that are on-track (just update the % complete) and tasks that are early, so that the rule will trigger.
Once the updates have been sent to the Status Manager, open up the Approval Center, navigate to the Manage Rules section, and click on the Run All button. The rule should run automatically and can be checked via the History button. When the rule is firing correctly, you can change the rule to Run Automatically.
Rules needs to be set up for each PM individually, and alas, there is no way to combine tests across rules. Ideally I’d like to have some logical operators (AND, OR) in order to approve an update e.g., IF (condition X AND condition Y) OR condition Z) is met then approve the update….
However, it is what it is, and used sensibly can save time for a PM, allowing them to concentrate on the exceptions, which should be fewer in number, though not in complexity.
Enjoy, Ben.