2013/10/03

Quick Tip Project Server 2013 Online PDP

Hi
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

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

2013/07/09

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

Cheers
Malek 

2013/01/30

SQL Parameter Selector

Hi

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))
 AND
(@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 :) 


cheers
Malek 

2012/09/27

Project Server 2010 : FOREIGN KEY constraint Error

Hello again ,

Today we are having a n interesting project Server Issue , I dont have a clear idea on the cause of this Issue but Microsoft calims its a bug that will cause some of your GUID to change when you try to use the save and send feature .... anyway when you try to publish you r project you will end up with this error



General
Reporting message processor failed:
ReportingProjectChangeMessageFailed (24006) - The INSERT statement conflicted with the FOREIGN KEY constraint "FK_MSP_EpmTaskBaseline_ProjectUID_TaskUID". The conflict occurred in database "ProjectServer_Reporting", table "dbo.MSP_EpmTask". The statement has been terminated.



so what this error basically say that there is  foreign key want found when it was trying to insert a task with a foreign key UID from another table , in another words less technical there is some data missing from the database ...


so the bad news is you cant really know what is the cause behind this , the good news is there is a solution

actually to make it better the solution is easy
 backup ..backup..backup 


run the following script against your draft database and against your published database
select PROJ_NAME, MTB.PROJ_UID,TASK_UID,TB_BASE_NUM from MSP_TASK_BASELINES MTB


inner join MSP_PROJECTS MP on MTB.proj_uid=MP.proj_uid

where TASK_UID not in (select TASK_UID from MSP_TASKS)

    if and you should get some raws with this command those tasks are the origin of your Issue to resolve it run the following command againest your draft and puplished databes


DELETE FROM MSP_TASK_BASELINES WHERE TASK_UID not in (SELECT TASK_UID FROM MSP_TASKS)


once you run this make sure that you clean the project cashe from the user machine and republish it again

hope this help
regards










2012/09/05

I have did something bad

Hello All , 

I will start with a big disclaimer  : 
 I have did this only for testing and because i needed this database to get attached this is a development environment , and what i did is totally 100% not supported not recommended .

2012/08/07

Project Server 2013 good news and bad news


Hi ,
I was going through project online and looking for any changes and if any of the things that we usually struggle with have changed, I was more than happy to notice allow multiple lines in timesheet administrative tasks as you can notice below



2012/08/01

SSRS Error

Hi All 


I know it should be about project server 2010 but for this im making a small change and i just want to mention a small error that consumed some of my time trying to figure it out in SQL reporting service .


so basically i was creating a custom report for one of our clients , did a small modification on my SQL statement and let the fun begin the error below appeared 


2 hours wasted 


and as you can notice the error message  is not helpful not in any way  but apparently it was an issue with my Query which is running perfectly on SQL and on the query designer retrieving the data with no issues 


my SQL was something like this (just an example) 


SELECT p.TaskDate , p.TaskName , x.TaskDate FROM 


Table1 p JOIN Table2 x on p.TaskDate = x.TaskDate




the query will never have a problem on SQL or with the query designer , 


but the problem is SQL reporting service couldn't handle the same column name generated so you need to use aliases  , just do that and you are good to go 




Cheers hope this will help 
Malek 

2011/01/09

Status Manager

Since this morning i have been straggling with the status manager problem .

the Project summary task status manager was the Server admin and not the owner .

this caused that some of the users trying to submit new assignments but its going to the project owner .

after trying for like 3 hours to change the status manager on the summery task and the simple solution is

the summery task status manager is the last user who published the project :D

hope this will help you