Quick Tip Project Server 2013 Online PDP

I have been working on this Project Server 2013 environment for the last week , yesterday i have had this problem that almost made me pull my hair out

simply i have a costume field that is linked to a lookup table , the custom field is a RAG so it should display graphical indicator... simply  i created  it and added the custom field to the PDP ... open the project to edit to find this

This Web Part was unable to load.
Information that may be useful in solving this problem was written to the Unified Logging Service (ULS) log 
an error in the web part with a nice GUID that to a ULS entry that i don't have access to ( i have opened a Support request with Microsoft) meanwhile i couldn't just wait around so i started trying to figure out what is the problem , i have noticed that the web-part do show normally when the project is in read only mode the problem only happen when i open the project in edit mode , so it must be a problem when project server try to read the custom field and what all of those custom fields have in common they are new and empty

to fix this i went to the lookup table added a new entry (N/A) and from the custom field i selected the new value as a default , that did solve the issue for me

hope this help
have fun


Force Check-in Enterprise Objects page is not working

Hi Again

last week i got a very strange support request form one of my clients that says (we wanted to force check in a project we went as instructed Server settings under database administration clicked on Force Check-in Enterprise Objects link and we got the error below)

This is a Project Server 2010 installation .

it wasn't a security issue , or SharePoint problem , i started digging in the ULS log and found the entry below

Exception occurred in method
System.IndexOutOfRangeException: Index was outside the bounds of the array. at Microsoft.Office.Project.Server.BusinessLayer.Admin.ReadCheckedOutEnterpriseProjects()
at Microsoft.Office.Project.Server.Wcf.Implementation.

The problem
in my case the EGlobal project was checked out to a user that was deleted form the system causing the method to return an exception, in other cases it might be another project in this case it will be a bit more complicated to discover if that was the case leave me a comment will answer it for you

Solution is two parts
PLEASE PLEASE PLEASE PLEASE Take a back up of all of your databases before you start
1- the quick fix (Not supported by Microsoft)

run the script below against your published database , this will reset the checked out by column (basically
force check-in)


2- the second and most important please install the latest updates by Microsoft

hope that helps



PDP Security

Hi ,

Im a bit in a rush so i will keep this simple and straight forward

A client asked me if they can hide a Project Detail Page (PDP) from certain users, i know that there is no out of the box settings to achieve that so i lunched Google and the first result was a blog for Andrew Lavinsky  (http://azlav.umtblog.com/2011/06/15/applying-security-to-a-pdp-redux/) the idea was to disable security inheritance on the PDP document level and assigning unique permission (Simple enough)  but if you already followed the link you will notice Andrew comment that there is an issue with that approach that it will only work under a very specific case

so i approached it a little bit different instead of setting up and changing permissions on the PDP level i simple created a SharePoint group (group who is allowed to view that PDP) and configured target audience for the Project Server Custom field web-part to target only that group.

and that is it , not the cleanest way the PDP name and link will still appear but it is the only way for the moment , please let me know if you have any better ideas



SQL Parameter Selector


This is something that i came across couple of times while working on a reporting project , and i hope it might help someone else 

We have a data set that we need to select form the database based on list of parameter , the client requirements was to have a selector that identify which filed to filter against with  start and finish date parameters 

table structure

UserID     ActionID    StartDate   FinishDate

the selection criteria was the user can select if they want to filter based on the start date or on the finish date , that means on the report there is only two date parameter

@startDate  and @EndDate

the solution was simple enough

  • I added a parameter called @filterselector of type boolean in the report 
  • in my query i added the following where 
((@filterselector = 1 OR 
 (dbo.I1_Storm_ProcessInstBuisnessArea.StartDate BETWEEN @StartDAte AND @FinishDate))
(@filterselector = 0 OR 
 (dbo.I1_Storm_ProcessInstBuisnessArea.FinishDate BETWEEN @StartDAte AND @FinishDate)))

simple and easy solution , please if you know a better way let me know :)