2013/09/30

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
Microsoft.Office.Project.Server.BusinessLayer.Admin.AdminReadCheckedOutEnterpriseProjects
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.
PWAImpl.AdminReadCheckedOutEnterpriseProjects()

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)

UPDATE [MSP_PROJECTS]
SET PROJ_CHECKOUTBY=null
WHERE PROJ_NAME='EGlobal'

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


hope that helps

Malek