Para que sirve activar “Cargar asignaciones de recursos de resumen” al iniciar Project Professional conectado a PWA

Cuando se configura Project Professional para que se conecte a una instancia de PWA ya sea en Project Server o Project Online se nos permite definir si queremos “Cargar asignaciones de recursos de resumen” según se muestra en la grafica:

Imagen1

Si activamos esta funcionalidad, la pregunta siempre es ¿Para que sirve activar “Cargar asignaciones de recursos de resumen”?. Si lo activo o no, no veo ningún cambio en mi Project Professional.

existen 4 características principales que Project Professional nos permite cuando activamos esta funcionalidad:

1. Permite que se identifiquen sobreasignaciones de recursos no solo en el proyecto activo, sino en todos los proyectos:

Imagen2
Funcionalidad activada
Imagen3
Funcionalidad No Activada
  • Como se visualiza en las graficas, cuando la opción “Cargar asignaciones de recursos de resumen” está activada en la sesión, el cronograma nos muestra las sobreasignaciones en algunas tareas donde los recursos tienen asignadas tareas en varios proyectos, no solo en el proyecto actual.

2. En la vista de “Uso de Recursos” nos muestra las fechas y horas de trabajo asignadas en otros proyectos a los recursos y se identifican en rojo las sobreasignaciones:

Imagen4

  • La grafica muestra la agrupación “Otros proyectos y compromisos” con las horas y fechas asignadas en otros proyectos. si se despliega la información vamos a encontrar los nombres de proyectos y los tiempos administrativos (si los hay) de ese recurso.

3. En la vista de “Organizador de Equipo” se visualizan las cajas de tareas relacionadas con “Otros proyectos y compromisos” en modo de solo lectura para que se pueda interpretar cuando el recurso esta asignado en tareas de otros proyectos:

Imagen5.png

  • En esta vista podemos realizar cambios sobre tareas, fechas y asignaciones solo a las tareas del proyecto actual.

4. La vista de “Grafico de recursos” incluye las horas asignadas de otros proyectos:

Imagen6

según estas graficas vemos que activar esta funcionalidad tiene grandes beneficios para nuestros proyectos, pero también tiene una serie de inconvenientes:

  • Si nuestro proyecto usa una gran cantidad de recursos compartidos, el performance de Project Professional se verá comprometido debido a los cálculos y validaciones que requiere realizar por cada recurso.
  • Si la empresa tiene una gran cantidad de proyectos activos al tiempo y con un volumen de tareas de gran tamaño (> mil tareas por proyecto) también afectará al performance del proyecto.
  • Si nuestra conectividad es lenta o limitada, es posible que Project se paralice e incluso se bloquee y se cierre sin avisarnos.

Según estos inconvenientes, cuando sería buena idea activar esta funcionalidad:

Cuando requerimos realizar ajustes de asignaciones de recursos en la planeación o seguimiento SI se recomienda activar esta funcionalidad. 

Por defecto no debemos tener esta funcionalidad activada.

si existe otra característica de Project que se vea afectada por activar esta opción agradezco su colaboración dejando sus comentarios.

 


Publicación Original: https://myprojectserver.wordpress.com/2018/08/20/para-que-sirve-activar-cargar-asignaciones-de-recursos-de-resumen-al-iniciar-project-professional-conectado-a-pwa/

Mejorar el Rendimiento de Project Online

Cuando configuramos Project Online y Project Server (2013 o 2016) se hace necesario tener en cuenta elementos de rendimiento en la configuración.

Microsoft tiene una página oficial (Rendimiento de Project Online) donde nos presenta recomendaciones de rendimiento de los siguientes temas:

  • Modos de los permisos de seguridad
  • Crear un tipo de proyecto empresarial personalizado
    • Configuración del sitio de proyecto
    • Mecanismos de sincronización entre Project Online y SharePoint Online
  • Sincronización de Active Directory de recursos
  • Personalización y apariencia de la interfaz
  • Páginas de detalles del proyecto (PDP) y flujos de trabajo
  • OData y elaboración de informes
  • Cuota de Project Online

En mi Experiencia personal les recomiendo tener especial atención a los siguientes componentes de rendimiento:

  • No configurar la sincronización del cronograma del proyecto con la lista de tareas del sitio del proyecto a menos que este sea pequeño (menos de 500 actividades) y que realmente tenga un uso importante en el sitio.
  • No configurar la sincronización de permisos de usuario si el equipo de trabajo es muy grande (más de 100) o si siempre son los mismos recursos para todos los proyectos. Es mejor en ese caso usar herencia de permisos desde la colección primaria hacia los sub sitios.
  • No crear vistas de centro de proyectos con demasiados campos e indicadores. Es mejor crear varias vistas con los campos necesarios.
  • Considerar la posibilidad de crear varias instancias de PWA cuando la cantidad de proyectos sea muy grande (más de 1.000) y la configuración de campos, indicadores, calendarios, sitios y permisos sean diferentes según el departamento, el proceso, la metodologia, entre otros aspectos.
  • Crear Páginas de Detalle (PDP) con campos especializados que no implique que con cada cambio realizado Project deba recalcular todos los datos del proyecto.

Consulta a detalle cada una de las recomendaciones en Rendimiento de Project Online

Cambiar el método de seguimiento o avance de las tareas en PWA #ProjectOnline #ProjectServer

El método de seguimiento en Project Online o Project Server permite definir como los recursos reportaran el avance de sus actividades. para realizar esta configuración de forma adecuada siga los siguientes pasos:

  • En la configuración del Servidor seleccione la opción Configuración y Presentación de Tarea:

tareasIngresamos a la opción y vemos la siguiente sección de configuración:

tareas1

  1. Porcentaje Completado del Trabajo: El recurso reporta su avance en porcentajes del 0 al 100%.
  2. Trabajo Real realizado y Trabajo Pendiente: El recurso reporta cuantas horas ha ejecutado de la tarea y cuantas horas cree que le hacen falta para terminar.
  3. Horas Trabajadas por Periodo: El recurso reporta día a día (o por semana, según se configure) las horas reales de ejecución y las horas restante de la tarea
  4. Forma Libre: Los recursos reportan el avance de sus tareas con el método que más les guste según el proyecto.

Se recomienda que los proyectos unifiquen la forma como los recursos reportan el avance de sus tareas, ya sea mediante porcentajes u horas.

En algunos casos esta opción esta inhabilitada para edición, todas las opciones aparecen en gris y no se puede modificar el método de seguimiento.

Si ese es tu caso y quieres poder realizar el cambio de método, sigue los siguientes pasos:

  • En la configuración del Servidor seleccione la opción Configuración y Valores Predeterminados del Parte de Horas:

tareas

  • En la página de configuración buscamos la opción de Modo de Entrada Único y la desactivamos (quitamos el Check)

tareas1

  • Aceptamos el cambio y volvemos a la opción de Configuración Y Presentación de Tareas y la sección de Método de Seguimiento ya debe estar habilitada para realizar cambios.

Pero, ¿qué implicaciones tiene desactivar la opción de Modo de Entrada Único?

  • Habilitar esta opción hace que los recursos reportes sus avances de tareas en la opción de Parte de Horas en lugar de la opción de Tareas en el menú lateral de PWA.
  • Si se usa este modo único, se recomienda ocultar del menú lateral la opción de Tareas para evitar confusión por parte de los recursos.
  • En la ventana de Parte de horas aparecerán las tareas pendientes del recurso de forma automática y podrá agregar los tiempos administrativos adicionales.

Si el modo de entrada único no está habilitado, el recurso podrá reportar las tareas y el parte de horas en opciones diferentes.

Si se quiere bloquear el método de seguimiento para impedir su cambio, se puede habilitar el modo de entrada único para bloquear la opción, aún cuando los recursos no reporten parte de horas, es decir, siguen usando la opción de tareas.


Publicación Original: https://myprojectserver.wordpress.com/2018/07/16/cambiar-el-metodo-de-seguimiento-o-avance-de-las-tareas-en-pwa-projectonline-projectserver/ 

Error de ReportingWssSyncListFailed después de cambiar las listas integradas en Project Server

Cuando las listas de riesgos y problemas en Project Server 2013/2016 son personalizadas realizando cambios como eliminación de campos, renombramientos o cambios en los tipos de datos, se genera el siguiente error:

ReportingWssSyncListFailed (24018) – Error al preparar la transferencia de la lista de SP 1100 para el proyecto ‘ProjectUID’. El Nombre_de_campo campo era falta en la lista de SP y se omitió.. Detalles: id = ‘24018’
name=’ReportingWssSyncListFailed’
uid=’uid’
ProjectUID=’ProjectUID’
SPListType=’1101′

Donde el campo de SPListType identifica al 1100 a problemas, 1101 a riesgos y 1104 a entregables.

Para solucionar este error se debe realizar los siguientes pasos:

  • Iniciar sesión en Power Shell de SharePoint Server con usuario administrador

Add-PsSnapin Microsoft.SharePoint.PowerShell

function Repair-ListFields
{
param
(
[Parameter(Mandatory=$true)][String]$ReferenceWebUrl,
[Parameter(Mandatory=$true)][String]$WebUrl,
[Parameter(Mandatory=$true)][String]$ListTitle
)
$currentVerbosePreferenceValue = $VerbosePreference
$VerbosePreference = “SilentlyContinue”
try
{
$SourceWeb = Get-SPWeb $ReferenceWebUrl -ErrorAction Stop
$web = Get-SPWeb $WebUrl -ErrorAction Stop
$SourceList = $SourceWeb.Lists[$ListTitle]
$List = $web.Lists[$listTitle]
if ( $SourceList -eq $null -or $list -eq $null )
{
throw “Source List or TargetList not found”
}
}
catch
{
Write-host $_.exception.Message -ForegroundColor Red
Break
}
$VerbosePreference = $currentVerbosePreferenceValue
function Delete-Field
{
param
(
[Parameter(Mandatory=$true)][Object]$fld
)
try
{
[xml]$schema = $fld.SchemaXml
$schema.Field.SetAttribute(‘AllowDeletion’,’TRUE’)
$schema.Field.SetAttribute(‘CanToggleHidden’,’TRUE’)
$fld.SchemaXml = $schema.OuterXml
$fld.Delete()
return $true
}
catch
{
Write-host “Delete Field: $($fld.Title) failed. Exception $_”
return $false
}
}
#Get all the customFields, leave out OOB fields (From GenericList template)
$SourceFields = $SourceList.Fields | where { $_.SourceID -notmatch “http” }
$schemas = @{}
$DisplayNameDict = @{}
#Build Schema dictionary and dictionary for Title & internalname mismatch
foreach ($sourceField in $SourceFields)
{
[xml]$FieldSchema = $sourceField.schemaxml
$FieldSchema.Field.RemoveAttribute(‘ColName’)
$FieldSchema.Field.RemoveAttribute(‘SourceID’)
$DisplayName = [System.Xml.XmlConvert]::DecodeName($FieldSchema.Field.Name)
if ( $FieldSchema.field.DisplayName -cne $DisplayName )
{
$FieldSchema.field.SetAttribute(‘DisplayName’, $DisplayName)
$DisplayNameDict.Add($sourceField.InternalName, $SourceField.Title)
}
$schemas.Add($sourcefield.InternalName, $FieldSchema.OuterXml)
}
$FieldsToCreate = New-Object system.collections.arraylist
#Identify and delete fields with Wrong id, if Title and internal names are wrong, fix them without deleting the fields
foreach ($SourceField in $SourceFields)
{
try
{
if ( $VerbosePreference.value__ -eq 2 ) { Write-host “Processing Field:–>” $sourceField.Title -ForegroundColor Green }
$field = $null
$field = $list.Fields.GetFieldByInternalName($sourceField.InternalName)
if ( $field.id -ne $sourceField.id )
{
if ( $VerbosePreference.value__ -eq 2 ) { Write-host “Field found by internalName but Id does not match:” $field.title }
$FieldsToCreate.Add($sourceField.InternalName) | Out-Null
if ( $VerbosePreference.value__ -eq 2 ) { Write-host “Deleting Field:” $Field.Title }
$result = delete-Field $Field
if ( $VerbosePreference.value__ -eq 2 ) { Write-host “Deleted:” $result }
}
}
catch
{
if ( $VerbosePreference.value__ -eq 2 ) { Write-host “Field not found by InternalName:” $sourceField.InternalName }
$field = $list.Fields[$SourceField.Id]
if ( $field -eq $null )
{
if ( $VerbosePreference.value__ -eq 2 ) { Write-host “Field not found by id:” $sourceField.Title }
$field = $list.Fields[$SourceField.Title]
if ( $field -ne $null )
{
if ( $VerbosePreference.value__ -eq 2 ) { Write-host “Field found by Title:” $sourceField.Title }
$FieldsToCreate.Add($sourceField.InternalName) | Out-Null
if ( $VerbosePreference.value__ -eq 2 ) { Write-host “Deleting Field:” $Field.Title }
$result = delete-Field $Field
if ( $VerbosePreference.value__ -eq 2 ) { Write-host “Field Deleted:” $true }
}
else
{
if ( $VerbosePreference.value__ -eq 2 ) { Write-host “Field not found by Title:” $SourceField.Title }
$FieldsToCreate.Add($sourceField.InternalName) | Out-Null
}
}
else
{
if ( $VerbosePreference.value__ -eq 2 ) { Write-host “Fixing Field:” $sourceField.Title }
$field.sealed = $false
$field.update()
[xml]$Schema = $field.Schemaxml
$schema.field.SetAttribute(‘Name’,$SourceField.InternalName)
$schema.field.SetAttribute(‘DisplayName’,$SourceField.Title)
$field.schemaXml = $Schema.OuterXml
$field.update()
}
}
}
#create deleted or missing fields
foreach ( $field in $FieldsToCreate )
{
$list.Fields.AddFieldAsXml($schemas[$field]) | Out-Null
$DisplayName = $null
if ( $VerbosePreference.value__ -eq 2 ) { Write-host “Created field:” $field }
if ( $DisplayNameDict.ContainsKey($field))
{
$DisplayName = $DisplayNameDict[$field]
$NewField = $list.Fields.GetFieldByInternalName($field)
$NewField.Title = $DisplayName
$NewField.Update()
if ( $VerbosePreference.value__ -eq 2 ) { Write-host `t “Updated Title of field:” $DisplayName }
}
}
}

  • Ejecutamos el siguiente comando para reparar la lista de riesgos del sitio seleccionado:

Repair-Listfields -ReferenceWebUrl <RefSite_URL> -WebUrl <site_URL> -ListTitle “Risks” -Verbose

  • Ejecutamos el siguiente comando para reparar la lista de problemas del sitio seleccionado:

Repair-Listfields -ReferenceWebUrl <RefSite_URL> -WebUrl <site_URL> -ListTitle “Issues” -Verbose

Los parámetros utilizados corresponden a:

  1. <RefSite_URL> es la URL es la referencia al sitio de proyecto que no tiene problemas.
  2. <site_URL> es la URL al sitio que tiene errores.

Una vez se ejecuta el comando se vuelve a publicar el proyecto y no debería salir nuevamente el error de sincronización.


publicación original en: Error de ReportingWssSyncListFailed después de cambiar las listas integradas en Project Server


 

Que permisos de sitio de proyecto tiene un usuario visor de cartera o jefe de cartera de proyectos en Project Online

Un usuario en Project Online puede pertenecer a más de un grupo de seguridad en Project Online y en ocasiones es difícil determinar que permisos efectivos tiene sobre diferentes proyectos y sitios de proyectos asociados.

Continue reading