Despliega Campos Project Server MultiValor

Project Server 2010 SQL Server 2008

Despliega Campos Project Server MultiValor, en un principio pudiera parecer complicado, sin embargo, es relativamente fácil si tienes conocimientos de SQL y además conoces la estructura de las tablas que se crean en Project Server 2010.

Cuando creamos un campo multivalor en Project Server 2010 lo que sucede es lo siguiente:

  1. El campo es removido de la vista MSP_EpmProject_UserView. Ya que esta vista solo soporta campos de único valor.
  2. Se crea una nueva vista de asociación que contiene un registro por cada valor seleccionado. Ejemplo: MSPCFPRJ_NombreCampoMultiValor_AssociationView

Una vez conociendo como se almacenan los datos, les mostraré 2 formas de realizarlo:

Opciones

  • Usando la función COALESCE de SQL.
  • Usando la función STUFF y FOR XML PATH.

Opción 1 – Usando la función COALESCE de SQL

ALTER FUNCTION [dbo].[fnc_GetMultipleRedAmberReason]
(
@EntityUID as Uniqueidentifier
)
RETURNS VARCHAR(MAX)
AS
BEGIN

DECLARE @MultipleRedAmberReason VARCHAR(MAX);

SELECT @MultipleRedAmberReason = COALESCE(@MultipleRedAmberReason + ‘, ‘, ”) + MemberValue
FROM [MSPLT_RedAmberReasonCode_UserView] AS LKP
INNER JOIN [MSPCFPRJ_Red-Amber Reason Code_AssociationView] AS ASV
ON LKP.LookupMemberUID = ASV.LookupMemberUID
WHERE ASV.EntityUID = @EntityUID

RETURN ISNULL(@MultipleRedAmberReason, ”);

END

 

SELECT P.ProjectUID, P.ProjectName, dbo.fnc_GetMultipleRedAmberReason(P.ProjectUID) AS MultipleRedAmberReason
FROM MSP_EpmProject_UserView AS P

 

Opción 2 – Usando la función STUFF y FOR XML PATH de SQL

SELECT P.ProjectUID, P.ProjectName, ML.MultipleRedAmberReason
FROM MSP_EpmProject_UserView AS P
INNER JOIN
(
SELECT IP.ProjectUID, ISNULL(STUFF(
(
SELECT ‘, ‘ + LKP.MemberValue
FROM [MSPLT_RedAmberReasonCode_UserView] AS LKP
INNER JOIN [MSPCFPRJ_Red-Amber Reason Code_AssociationView] AS ASV
ON LKP.LookupMemberUID = ASV.LookupMemberUID
WHERE ASV.EntityUID = IP.ProjectUID
FOR XML PATH(”), TYPE
).value(‘.’, ‘varchar(max)’)
,1,2,”),”) AS MultipleRedAmberReason
FROM MSP_EpmProject_UserView AS IP
GROUP BY IP.ProjectUID
) AS ML
ON P.ProjectUID = ML.ProjectUID

 

Project Server 2010 Assertion Failed

En los últimos días he estado trabajando sobre los Event Handlers de Project Server, he estado siguiendo los ejemplos que mencione en mi Post anterior Por dónde empezar Project Server 2010 Event Handler y todo ha funcionado perfectamente excepto que cuando trato de cancelar un evento en el ProjectCreating pre-event recibo un Project Server 2010 Assertion Failed.

Project Server 2010 Assertion Failed Javier Pérez Blog

Despues aparece el mensaje que configure:

Project Server 2010 Cancel Reason Javier Pérez Blog

El código que use para cancelar el evento es el siguiente:

e.Cancel = true;

e.CancelReason = “Please select another department – … ”;

Este error puede deberse a muchas razones, por lo que es importante revisar los archivos de log, en mi caso tiene que ver con el Microsoft Office Project Server Queue Service.

Project Server 2010 Assertion Failed

Si estas recibiendo el error Project Server 2010 Assertion Failed creo que alguna de las siguiente soluciones te podría ser de utilidad:

  1. Verificar que el Microsoft Office Project Server Queue Service no este fallando por falta de memoria. Por lo que sería conveniente reiniciarlo.
  2. Configurar para que la creación del sitio para un proyecto sea manual.
  3. Verificar que tengas suficiente espacio en disco.

Este error lo estoy recibiendo en mi ambiente desarrollo, probablemente por la configuración del mismo.

Me puedes contactar por medio de correo jhpe@hotmail.com o por LinkedIn y .

Por dónde empezar Project Server 2010 Event Handler

Por dónde empezar si tienes un requerimiento de tu empresa de implementar Project Server 2010 Event Handler… actualmente me encuentro en esta situación, por lo que me he dado a la tarea de investigar las posibles fuentes sobre el tema.

Tengo planeado implementar el Project Server Event Handler en las siguientes semanas por lo que iré documentando mi progreso…

Hasta el momento la información de Microsoft es la más relevante. Sin embargo, espero encontrar más información en Blogs o videos.

Project Server 2010 Event Handler

How to: Create a Project Server Event Handler and Log an Event

Getting Started with Development for Project 2010

Project Server 2010 Delegation Audit Event Handler – Home

Me puedes contactar por medio de correo jhpe@hotmail.com o por LinkedIn y .