Monthly Archives: August 2011

Project Server Post SP1 – Approval Center Rules Error


If you create rules in the Approval Center PRIOR to Project Server SP1, this is how it looks. Notice there are only three columns “Name”, “Description” and “Apply Automatically”

Figure 1 – Pre SP1 Rules Page

Situation

If your users have created Rules in the Approval Center PRIOR to Project Server SP1, they cannot edit them POST SP1.

Question

Once I apply Project Server Sp1, how do I know if a rule was created PRE SP1?

Answer

If you view the rules, the PRE SP1 rules will have “Automatically Publish” shown as blank (its actually a null) – see image.

Figure 2 – Post SP1 Rules Page with Rules from Pre SP1

They can create new rules POST SP1, but cannot edit prior rules due to a known issue. This error occurs because the Project Server 2010 Service Pack 1 update adds a new column, RULE_AUTOMATIC_PUBLISH, to the MSP_Rules table, and all existing rows are left with a null value.

See below, I created a new rule and appended the “SP1” text to the name. That rule has the “Automatically Publish” field.

Figure 3 – Post SP1 Rules Page with Rules from Post SP1

The ULS error is
System.Data.StrongTypingException: The value for column 'RULE_AUTOMATIC_PUBLISH' in table 'Rules' is DBNull. ---> System.InvalidCastException: Specified cast is not valid.
at Microsoft.Office.Project.Server.Schema.RulesDataSet.RulesRow.get_RULE_AUTOMATIC_PUBLISH()

Resolution

As a workaround for this issue, there are couple of options:

  1. You can delete and then re-create the approval rule (if you know what the rule is – not an option IMHO – are you going to notify your users that “oops – there is a bug – redo your rules again”)
  2. Making an update directly to the MSP_RULES table in the Project Server 2010 Published database that holds the rules definitions (valid option)
    Update MSP_Rules
    Set RULE_AUTOMATIC_PUBLISH=’False’
  3. This error is fixed in the June 2011 Cumulative Update for Project Server 2010 @ http://go.microsoft.com/fwlink/p/?LinkID=209620

This is also documented @ http://technet.microsoft.com/en-us/library/hh272536.aspx

Advertisements

Project Professional & Server – Failed to Publish, View failed to Load, Job cancels at 93% or 94% Failed And Blocking Correlation


Sometimes your Project Professional file will simply get corrupted. I was having these symptoms while attempting to Save, Publish or even View the schedule:

Error while publishing from Project Professional: “Could not publish the project. Error ID 23000”

Error while trying to load the Project Schedule from PWA: “The view failed to load”

Error while job in queue is cancelled: “Usually the job gets cancelled at 93% or 94%”

Failed And Blocking Correlation Microsoft.Office.Project.Server.BusinessLayer.Queue.Message: messagetype=’Microsoft.Office.Project.Server.BusinessLayer.QueueMsg.ConflictResolutionMessage’

Resolution

  1. Open Pro 2010
  2. Open the Project Schedule from the server that is giving errors
  3. Now save it locally “without making changes in File Name” using File > Save & Send > Save Project as File > Save For Sharing
  4. Close Project Pro 2010 – you can keep the project checked out to yourself
  5. Now open Pro 2010 > File > Open > open the project plan from your DESKTOP
  6. File > Save As (dont change the Project Name, it might be even grayed out)
  7. Save and then publish the project plan

Update – It is better to do this process logged in as the Project Manager or Status Manager – If I did this using my “admin” account, the admin account became the Status Manager for all tasks. FYI.

Project Professional – Cannot open project in read write mode


When Project Professional is attempting to open a project from Project Server 2010, it will look at the status of local cache for that project. The local cache will override the server version.

Sometimes the user’s are unable to open the project from Project Server inspite of deleting local cache.

Resolutions are of course:

  1. Delete the local cache using the Project Professional > File > Options > Save > Clean Up Cache
  2. PWA > Server Setting > Force Check-in Enterprise Objects > Check In the appropriate project.
  3. A third & important option – Note the folder location of the cache location in the step above. Usually it will be C:\Users\username\AppData\Roaming\Microsoft\MS Project\14\Cache\ There are subfolders in this “Cache” directory in the form of {xxx-xxx-xxx}.PROD.DomainUsername. You need to delete this {xxx} folder BUT you have to close Project Pro first as it locks the cache folders from being deleted.

Project Server – Remove Orphaned Project Web App Site


Situation

You delete a web application that contains a provisioned Project Web App Site without deleting the PWA Site first.

Result

You end up with an orphaned PWA Site

Resolution

This is a two step resolution.

Step 1 – Remove Orphaned Project Web App Site

(Source) http://social.technet.microsoft.com/Forums/en-US/projserv2010setup/thread/b26dadd1-95a6-451b-ab7f-536418108cec

$serviceapp = get-spserviceapplication | ? {$_.TypeName –like “*Project*”}
$pwainstances = $serviceapp.Sitecollection 
$pwainstances | ft name, id

note the id from the above output and use it in the next command


$toberemoved = $pwainstances | ? {$_.Id –eq “a1a29814-983e-4cad-a730-9a80d40737f7”} 
$toberemoved
$toberemoved.Delete()

 Step 2 – Remove Timer Jobs with errors

(Source) http://social.technet.microsoft.com/Forums/en-US/sharepoint2010setup/thread/9410aa16-d3b8-41b3-ad7d-197a40999837/

You will also find the following errors:

There was an exception loading job definition “Microsoft.Office.Project.Server.Administration.ServerScheduledTimerJob” (id “3ed31585-a654-4453-9bd6-3b07d5ca9b6a”). Object reference not set to an instance of an object.

There was an exception loading job definition “Microsoft.Office.Project.Server.Administration.ServerScheduledTimerJob” (id “537502b2-6ea7-4846-958d-efa954e434d8”). Object reference not set to an instance of an object.

Get the timer jobs that are causing this error

get-sptimerjob | where-object {$_.schedule -like "PWA*"} | format-list name,description, id

PWASSP_c04f25b8-ce9c-41dc-a243-c029d2b38f77_WorkflowCleanupJob_
537502b2-6ea7-4846-958d-efa954e434d8

PWASSP_c04f25b8-ce9c-41dc-a243-c029d2b38f77_ApplyResourceCapacityTimeRangeJob_
3ed31585-a654-4453-9bd6-3b07d5ca9b6a

Note the ID of the jobs and use them in the next step:

$job = Get-SPTimerJob 537502b2-6ea7-4846-958d-efa954e434d8
$job.delete()
$job = Get-SPTimerJob 3ed31585-a654-4453-9bd6-3b07d5ca9b6a
$job.delete()

– Nilesh Kelkar