Buenas,

En el post de hoy vamos a hablar de un problema que nos ocurrió recientemente, relacionado con la creación de proyectos empresariales personalizados en Project Server 2010.

Si nos vamos a embarcar en personalizaciones de este tipo, es recomendable leer antes el siguiente artículo:

Creación de un tipo de proyecto empresarial personalizado (Project Server 2010.)

En nuestro caso, para mostrar de dónde salía este error, vamos a seguir dichos consejos para generar un nuevo tipo de proyecto empresarial personalizado (Enterprise Project Type.) Luego veremos cómo se genera este error, y así espero nos quede claro qué es lo que no se debe hacer, de tal modo que evitemos este comportamiento no deseado en nuestros entornos.

 

01.- Generamos nuestro nuevo tipo de proyecto empresarial, desde PWA \ Configuración del servidor \ Tipos de proyecto empresarial

20130207-125041-0001

02.- Introducimos los valores correspondientes en cada caso, teniendo especial cuidado en no seleccionar ningún flujo de trabajo en “Asociación de flujo de trabajo del sitio”. En la página de detalle del proyecto disponible seleccionamos “Detalles del proyecto”. Pulsamos sobre el botón “Guardar”.

03.- Cuando creamos un proyecto ahora, usando esta EPT, desde PWA \ Project Center\ Nuevo \ PruebaEPT

20130207-164437-0001

 

Podemos introducir la información pertinente, y guardarlo luego sin mayor problema.

 

El problema ocurre cuando, en la nueva página de proyecto introducimos una página de detalles del proyecto que no tenga el nombre del proyecto, y esta información no esté disponible en otras páginas disponibles, de tal manera que, cuando vayamos a guardar dicho proyecto que estamos tratando de generar, mediante nuestro EPT, nos da un error:

 

An error has occurred when saving your project to the server. Please contact your system administrator for assistance.  [GeneralUnhandledException]

 

En los logs ULS, en modo detallado podemos leer lo siguiente:

 

Exception occurred in method Microsoft.Office.Project.Server.BusinessLayer.Project.QueueCreateProjectAndCheckOut2 System.Data.StrongTypingException: The value for column 'PROJ_NAME' in table 'Project' is DBNull. ---> System.InvalidCastException: Unable to cast object of type 'System.DBNull' to type 'System.String'.     at Microsoft.Office.Project.Server.Schema.ProjectDataSet.ProjectRow.get_PROJ_NAME()     --- End of inner exception stack trace ---     at Microsoft.Office.Project.Server.Schema.ProjectDataSet.ProjectRow.get_PROJ_NAME()     at Microsoft.Office.Project.Server.BusinessLayer.ProjectMain.GetProjectName(ProjectDataSet projectDataSet, Guid projectUid)     at Microsoft.Office.Project.Server.BusinessLayer.Project.HelperCreateProjectAndCheckOut(Guid sessionUid, String sessionDescripti...
...on, ProjectDataSet dataset, Boolean validateOnly, Boolean bypassValidation, Boolean bypassOwnerValidation, Guid& projectUid, String& projectName)     at Microsoft.Office.Project.Server.BusinessLayer.Project.QueueCreateProjectAndCheckOut(Guid jobUid, Guid sessionUid, String sessionDescription, ProjectDataSet dataset, Boolean validateOnly, Boolean publishProject, Boolean bypassOwnerValidation)     at Microsoft.Office.Project.Server.BusinessLayer.Project.QueueCreateProjectAndCheckOut2(Guid jobUid, Guid sessionUid, String sessionDescription, ProjectDataSet dataset, Boolean validateOnly, Boolean validateRequiredFields, Boolean publishProject)     at Microsoft.Office.Project.Server.Wcf.Implementation.PWAImpl.QueueCreateProjectAndCheckOut2(Guid jobUid, Guid sessionUid, String sessionDescription, ...
...ProjectDataSet dataset, Boolean validateOnly, Boolean validateRequiredFields, Boolean publishProject)

 

Watson bucket parameters: Microsoft Project Server 2010, ULSException14, 070f6ea0 "project server", 0e00178d "14.0.6029.0", 45684664 "microsoft.office.project.schema", 0e0017ed "14.0.6125.0", 50077bbd "thu jul 19 04:15:09 2012", 00002155 "00002155", 00000026 "00000026", 97e4a676 "strongtypingexception", 30303030 "0000"

 

Error is: GeneralUnhandledException. Details: Attributes:  System.Data.StrongTypingException: The value for column 'PROJ_NAME' in table 'Project' is DBNull. ---> System.InvalidCastException: Unable to cast object of type 'System.DBNull' to type 'System.String'.     at Microsoft.Office.Project.Server.Schema.ProjectDataSet.ProjectRow.get_PROJ_NAME()     --- End of inner exception stack trace ---     at Microsoft.Office.Project.Server.Schema.ProjectDataSet.ProjectRow.get_PROJ_NAME()     at Microsoft.Office.Project.Server.BusinessLayer.ProjectMain.GetProjectName(ProjectDataSet projectDataSet, Guid projectUid)     at Microsoft.Office.Project.Server.BusinessLayer.Project.HelperCreateProjectAndCheckOut(Guid sessionUid, String sessionDescription, ProjectDataSet dataset, Boolean validateOnly, Boole...
...an bypassValidation, Boolean bypassOwnerValidation, Guid& projectUid, String& projectName)     at Microsoft.Office.Project.Server.BusinessLayer.Project.QueueCreateProjectAndCheckOut(Guid jobUid, Guid sessionUid, String sessionDescription, ProjectDataSet dataset, Boolean validateOnly, Boolean publishProject, Boolean bypassOwnerValidation)     at Microsoft.Office.Project.Server.BusinessLayer.Project.QueueCreateProjectAndCheckOut2(Guid jobUid, Guid sessionUid, String sessionDescription, ProjectDataSet dataset, Boolean validateOnly, Boolean validateRequiredFields, Boolean publishProject)     at Microsoft.Office.Project.Server.Wcf.Implementation.PWAImpl.QueueCreateProjectAndCheckOut2(Guid jobUid, Guid sessionUid, String sessionDescription, ProjectDataSet dataset, Boolean validateOnly, Boolean v...
...alidateRequiredFields, Boolean publishProject)  . Standard Information: PSI Entry Point:   Project User: P14LABS\Administrator  Correlation Id: dc55994b-446a-4ab6-9141-3b150427d315  PWA Site URL: http://p14s12:3459/PWA  SSP Name: Project Server Service Application  PSError: GeneralUnhandledException (42)

 

 

La solución es sencilla; debemos asegurarnos la nueva página de proyecto incluye una página de detalles de proyecto que contenga el nombre del proyecto, de tal modo que podamos guardarlo correctamente, sin encontrarnos este problema.

 

Esperamos os resulte de interés, y os ayude si os ocurre esto en el futuro.

 

Un saludo

 

Jorge Puig