Skip to main content

Timesheet solutions in Project Server 2010 - #2 - the rest

In a previous post I talked about assumptions and the reality of data access and security when configuring a simple "hands off" timesheet solution in 2010, and some concerns around functionality that is made available to users by default.

The other areas of concern for me were:

3 - Limitations of creating projects from templates via PWA 
4 - curious behaviour of the auto-publish function when calculating Actual Cost  

So here's some more little tidbits of information that I hope may help...

Limitations of creating projects from templates via PWA(Project.CreateProjectFromTemplate method)

As part of my solution I wanted to allow a two phase project to be created, with Phase 2 tasks disabled when the project is produced to avoid these tasks being available via the Timesheet function without the need to work via MS Project.  Then I wanted the new phase tasks to be activated at a given point in the schedule ideally via PWA.

To do this I...
- Created a MSP template and saved it to the server with the apppropriate task structures, codes and with the deactivated tasks.
- Created an EPT with the new template as the default MSP template
- Created a Project Schedule view in PWA that included the Active and Publish fields for data management

At this point I created the plan in PWA via the EPT and guess what.  All the tasks were active.


After a little digging I found that this was by-design operations as the PSI call for createProjectfromTemplate did not include any reference to the Active field.

Although not a disaster, the next finding kinda nailed me.  When I opened the plan for editing in PWA I could not edit either the Active or Publish fields, so at this point there was no mechanism to allow me to either deactivate or unpublish (sic) the tasks I want hidden from the timesheets.

My target process for htis was
- Project created in PWA
- Fill in fields via PWA PDP
- Publish
- users add tasks to timesheet

The process at this point became:

- Create project in PWA
- Complete fields via PWA PDPs
- Save and close
- open for edit in Pro

- Deactivate the phase 2 tasks
- users add tasks to timesheet

This process means that twice as many people as initially expected require MS Project and those users have to interface with two elements of the solution rather than one.

>>>> Fast forward one month >>>>>

Announcing the hotfix KB2596498 October 2011 CU for Project Server
QFE - 30887 - Creating a new project from a template ignores the Active task flag

This QFE would appear to be addressing the exact issue I have come across.  However I dont believe it is (yet) addressing the lack of edit on the Publish or Active fields via PWA, but I shall be testing shortly.

At this point I think my creation process can use PWA Only, and when moving to Phase 2 the user will need to use MSP to close down Phase 1 and activate Phase 2.... more to follow (again)

Curious behaviour of the auto-publish function when calculating Actual Cost   

Truth be told, I can't actually remember what this point related to.  However there are a few findings to chew over that are fresh in my mind having seen them yesterday.

Auto-approval "skipped for optimization"
the Rules Engine for approvals that allows autopublish only works when the plan is not locked for editing.  At this point if your rule runs to autopublish the task assignment to the plan, this will process to 20% in the queue and get the status "Skipped for optimisation".  to me the correct behaviour would be to enqueue this until the plan is available for editing, or cancel it if a subsequent record change came through to be saved.

I am still risk-assessing this, as I believe that if the task assignment is NOT resubmitted with more updates at a point when the plan is checked in, those actual hours on the specific update that was skipped for optimisation are lost/never processed to the plan, unless you open and publish via MSP (again, tbc).

Get >= August CU to use this function
So far I have seen multiple examples of this rule processing failing to auto-publish, except where august CU or greater is installed.

Things to consider when looking at a streamlined, minimum intervention Timesheet system:

- There is no circumventing the Build Team option to allow resources to see plans, but at least you can do this via PWA
- You MUST implement affective closedown processes for tasks and projects to streamline the Add Task menus
- You will probably need to do some ribbon customisation to lockdown some functions on the Timesheet and Task ribbons.
- If you want to work with deactivated tasks in your project template, get October 2011 CU for Project Server (to be tested)
- if you want auto-approval and auto-publish rule engine functions to work get SP1+August 2011 CU for Project Server at a minimum
- Dont expect to work with task level Publish and Active fields via PWA as these are read-only

good luck!


Popular posts from this blog

#projectserver2013 VIEW FAILURE: The view failed to load. Press OK to reload this view with the default settings. Press cancel to select another view.

** UPDATE ** includes notes relating to secondary bug where Timesheet is created without Administrative tasks.

Does this ring any bells?

This has been bugging me for months, but finally I have a repro for this:

Issue Summary:  When a task is deleted from a plan that is approved into a previous or current timesheet - even when there are no actuals on the task - you can no longer view the timesheet

The following repro has been proven:
- Setup system with Single Entry Mode, with enforced Status Approval before Timesheet Approval
- Create resource as own timesheet manager
- Create new project
- Create two tasks in the same week, starting monday with 5 days duration:  1) Task to assign actuals, 2) Task to delete post submission
- Assign Resource to tasks
- publish project
- as Timesheet User, go to the appropriate timesheet period for the tasks created
- Assign actual work to one task (task 1), leaving task 2 with no actual work
- Submit timesheet
- as Project Status Manager, approve the time on task 1 …

What to do when your application server goes bang

What happens when someone kills your Application Server?
So imagine the scenario:
Three Server Solution - SQL - SharePoint 2010 and Project Server 2010 Application Server (Central Admin Host) - Wfe/ReportServer
We wake one bleary Monday morning to find that some numpty has killed the application server and the users are baying for blood.
Well surprisingly SharePoint handles this disaster recovery scenario particularly well.  Well.  Better than I thought it would to be honest.
Rough steps:
- quick SQL backup to be safe - Rebuild your application server - reinstall pre-reqs - reinstall SP, PS, SPFSP1, SPS+PSSP1, Cumulative Update and other stuff you usually put on there. - Run your configuration wizard to reattach to the Farm, and select Host CA Site
The last step was what I was VERY wary of.  Would the server simply reattach to the Farm, even when there is no CA server available?  
Bingo your back.... almost.... you are going to get errors a-gogo in your event log as things just aren't quite back…

Reporting from Project Server 2016 - multiple sites and userviews

Just a quickie...
I've been interested in how MS have handled the "multiple PWA sites in a Content DB" thing since I read that this was their new approach.  Most of my reporting is via SSRS so i am reliant (still... in 2016) on DB queries rather than OData feeds (tsk) and this "querying a PWA DB with more than one PWA site in it is unsupported" quote was worrying me.

So it looks like what is happening is this.

When you create the first PWA site in a Content DB it hard-codes the SiteID into the _Userview view design elements.  This means that your first PWA Site is the default.  All the data for subsequent sites are still held in the tables against separate SiteID's but you cannot utilise the OOTB _Userview components (see below)

SELECT        ProjectFields....
FROM            pjrep.MSP_TVF_EpmProject('FF19B767-CA6D-4C4C-B123-C0B5AE5354D6') AS MSP_EpmProject