Quick Launch Menu Expand Items

Quick Launch Menu Expand Items, en Project Server 2013 existe un escenario en la configuración del Quick Launch Menu que podría causar confusión en un principio si se está configurando ligas externas al PWA.
Para reproducir este comportamiento configura el Quick Launch Menu de la siguiente manera:

  1. Crea un ítem principal llamado External Module dejando los valores por default. En este caso no le definimos Custom URL.
  2. Crea un sub-ítem llamado External Module 1 y le definimos un Custom URL.
  3. Crea un sub-item llamado External Module 2 y le definimos un Custom URL.
  4. En la opción Expand Quick Launch Items For selecionamos Current Section Only.

Quick Launch Menu Expand Items

Problema

Si regresas al PWA te darás cuenta que no puedes expandir el menú External Module y esto se debe a que no le definimos un Custom URL.

Solución

Para solucionar este problema lo que se aconseja es definirle un URL igual a la página de default del PWA.

http://xxx.xxx.xxx/PWA/default.aspx

Para mas información visita Project Server 2013 Administrator’s Guide

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

Project Server Permission Mode

Project Server Permission Mode no es la configuración inicial de Project Server 2013 sino SharePoint Permission Mode, y si vienes de utilizar Project Server 2010 esto te podría causar confusión ya que muchas de las opciones de seguridad no aparecen disponibles.

Para cambiar a Project Server Permission Mode se tiene que utilizar el siguiente Windows powershell cmdlet:

Set-SPProjectPermissionMode [-Url] <Uri> [-Mode] <SharePoint | ProjectServer | UninitializedSharePoint | UninitializedProjectServer> [[-AdministratorAccount] <String>] [-AssignmentCollection <SPAssignmentCollection>

 

Ejemplo para cambiar Project Server Permission Mode

Set-SPPRojectPermissionMode –Url http://PS/pwa -AdministratorAccount msci\Javier.Perez -Mode ProjectServer

Para más información revisa el siguiente link: Set-SPPRojectPermissionMode

Una vez que se ejecuta el cmdlet podrás visualizar el Security Group.

Project Server Permission Mode 2013 Security Group

Video

El siguiente video es de mucha utilidad para tener una visión mas general de los permisos: Understanding Project Server security modes

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

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