Nueva Página HOME para Project Online / Project Online: The new ‘Home’ experience

Hace unos días se anunció por parte de Microsoft una nueva página Home o de inicio de Project Online con nuevas características. la página oficial de esta publicación es la siguiente: Project Online: The new ‘Home’ experience

Imagen1

Adicionalmente, se ha agregado una nueva ruta para acceder de forma más rápida a PWA:

project.microsoft.com

Dentro de las funcionalidades de esta nueva página de inicio quisiera destacar las opciones buenas y malas del nuevo Home:

  • Beneficios:
    • Poder agregar proyectos a favoritos y destacarlos con tiles grandes.
    • Ver los últimos proyectos consultados, incluyendo los abiertos desde Project Professional.
    • Poder limpiar el historial de recientes.
  • Falencias:
    • Desde la página Home solo se abre el cronograma en PWA, no hay opción para Project Professional.
    • Los Tiles/ recuadros de favoritos no muestran información del proyecto tipo indicador, como el % completado, por ejemplo.
    • el recuadro de recientes no muestra más columnas informativas o permite agregar columnas al usuario como el porcentaje, fechas de inicio o fin, entre otros.
    • La vista esta pensada para gerentes de proyectos, no para recursos. no hay funcionalidades como una vista con proyectos donde hay tareas pendientes del recurso o un recuadro con la cantidad de tareas pendientes por reportar avance, entre otras.
    • La nueva URL de acceso nos envía a la instancia de PWA por defecto. si tenemos varias PWA desde esta ruta no llegaremos a ellas. debemos seguir realizando el método anterior.

como bien se indica en la publicación, esta nueva pagina Home esta en diseño y mejoras permanentes, seguramente sufrirá cambios en poco tiempo.

Para resaltar, esta nueva pagina de inicio no es opcional. Todas las instancias actuales o nuevas tendrán esta página de inicio por defecto. Solo hay una excepción y es cuando nuestra página de inicio ha sido personalizada al igual que la página maestra o master page.


Publicación original: https://myprojectserver.wordpress.com/2018/08/23/nueva-pagina-home-para-project-online-project-online-the-new-home-experience/ 

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/

Nuevas funcionalidades de Power BI para Agosto 2018

Como es habitual, cada mes Microsoft actualiza Power BI con nuevas funcionalidades. para este mes, las nuevas opciones de Power BI son:

  • Imprimir el reporte en PDF de forma nativa
    • Permite que desde Power BI Desktop podamos imprimir nuestro reporte, donde cada pestaña es una hoja del documento.
    • A nivel de Power BI Service (Online) no se encuentra esta opción.
    • si la pestaña tiene aplicado un fondo con imagen o un color, no serán aplicados en el PDF. este vendrá con fondo blanco.
  • Crear grupos de marcas (Bookmarks)
    • Podemos ahora agrupar las marcas que creemos en el reporte, para darle mejor orden y entendimiento a dichas marchas.
    • Los bookmarks podemos crearlos por temáticas, tipos de filtros o restricciones aplicadas al reporte.
    • Solo es necesario seleccionar varias marcas y luego con clic derecho marcar la opción Agrupar.
  • Aplicación de temas de forma nativa
    • Ya no será necesario habilitar la opción de temas en las características de Power BI, porque la funcionalidad pasa a ser parte nativa de la herramienta.
  • Formato condicional de columnas en tablas
    • La funcionalidad de formato condicionales se extiende para permitir utilizar valores de columnas como referencias para los colores.
    • Podremos utilizar una columna con el nombre de los colores que queremos aplicar o crear una columna con DAX con los códigos RGB aplicados.
    • Se puede aplicar el formato condicional tanto al fondo de la columna como a la fuente de los textos o valores de la columna.
    • La columna que tiene la definición de colores no necesita estar en la tabla como campo de la misma.
  • Nuevas funciones DAX
    • se agregan funciones a DAX de tipo estadísticas (normalización y distribución)
    • Se agregan funciones de categorías de datos, como URLs.
  • Nuevos gráficos personalizados:
    • 3AG Systems – Column Chart with Variance: grafica de desviación de valores frente a una meta establecida. excelente para gráficos financieros o de seguimiento de proyectos.
    • Scatter Chart by Akvelon: grafico de tipo plano cartesiano que permite resaltar conjuntos de datos según el área sombreada con el mouse y estos a su vez aplicar como filtros a las demás graficas y tablas de la pestaña.
    • Small Multiples Line Chart: graficas de minilineas con datos estadísticos.
    • Add Natural Language Summaries for BI:  recuadro de texto que describe los elementos graficados y filtrados de una visualización en particular. Se pueden crear plantillas de texto y estructura de como debe generarse el texto resumen explicativo de los datos.
    • Pivot Slicer: filtro de datos con graficas de barras incorporadas, agrupación de datos según categorías. Excelente. muy recomendado.

para revisar a detalle cada una de las nuevas funcionalidades los invito a leer el blog oficial en ingles: Power BI Desktop August 2018 Feature Summary


Publicación Original: https://myprojectserver.wordpress.com/2018/08/08/nuevas-funcionalidades-de-power-bi-para-agosto-2018/ 

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/ 

Limites de consultas ODATA para #ProjectOnline #ProjectServer

Realizar consultas a la base de datos de Reporte de Project Server o Project Online mediante OData tienen una serie de limitantes que es necesario tener en cuenta al momento de realizar consultas de cierta complejidad o de un gran volumen de registros esperados.

En la página oficial de referencia ProjectData – Project OData service reference se puede identificar todas las limitaciones, en particular las más representativas a continuación:

  • No es posible utilizar los comandos $links o $expand en una consulta, los cuales permiten traer datos de una segunda tabla relacionada.
  • La consulta por ODATA devuelve diferente número de registros según la tabla de consulta y según la plataforma (Server o Online).
  • Para el caso de Project Online los limites en el número de registros NO puede modificarse.
  • El comando $top no aplicará para valores que sobrepasen los límites de cada tabla, pero no mostrará errores de ejecución.
  • El comando $apply y aggregate no funcionan, aunque no devuelve error la consulta, simplemente los omite. Estos son los comandos por los cuales se milita mucho ODATA en Project.

Los límites de registros cuando se realiza una consulta, según la tabla, son los siguientes

Tabla de Consulta Project Server Project Online
Proyectos 100 300
Tareas 100 300
Riesgos 200 1.000
Problemas 200 1.000
Recursos 100 1.000

Para el caso de Project Server, se pueden cambiar lo límites ejecutando el siguiente comando:

Set-SPProjectOdataConfiguration -EntitySetName Projects -PageSizeOverride 200

Si queremos consultar los límites actuales de la plataforma podemos ejecutar el siguiente comando:

(Get-SPProjectOdataConfiguration).EntitySetsWithMaxPAgeSizeOverride

Conoces alguna otra limitante?


Publicación Original: https://myprojectserver.wordpress.com/2018/06/28/limites-de-consultas-odata-para-projectonline-projectserver/

 

Visualizaciones de Power BI dentro de Microsoft Excel

Microsoft esta mejorando la integración de Power BI con Excel de forma sorprendente. en una próxima actualización de Microsoft Excel podremos utilizar los gráficos que utilizamos en Power BI.

Aún esta en versión de prueba para quienes hacen parte del Office Insiders program. pero calma, pronto estará disponible para todos.

clip_image002

podremos usar más de 150 visualizaciones que hacer parte de Power BI, entre las propias de Microsoft y las diseñadas por sus colaboradores.

la forma como se crean estos gráficos si cambian con respecto a como venimos acostumbrados en Excel, ya que tiene un panel de configuración más cercano a como se personalizan en Power BI:

Si quieres conocer un poco más te invito a consultar la publicación original: Excel announces new data visualization capabilities with Power BI custom visuals

 

Tabla de fechas con DAX para Power BI

Una de las funcionalidades que no puede faltar en un buen reporte de Power BI es una tabla de fechas. A continuación se comparto los pasos y el código que se requiere para que mediante una expresión DAX podamos crearla:

  • En Power BI Desktop, la pestaña modeling damos clic en la opción New Table.
  • Copiamos el siguiente código en la línea de comando visualizada:

Fechas = GENERATE (
CALENDAR( DATE( 2017; 1; 1 ); DATE( 2030; 12; 31 ));
VAR startOfWeek = 1 // Where 1 is Sunday and 7 is Saturday, thus a 3 would be Tuesday
VAR currentDay = [Date]
VAR days = DAY( currentDay )
VAR months = MONTH ( currentDay )
VAR years = YEAR ( currentDay )
VAR nowYear = YEAR( TODAY() )
VAR nowMonth = MONTH( TODAY() )
VAR dayIndex = DATEDIFF( currentDay; TODAY(); DAY) * -1
VAR todayNum = WEEKDAY( TODAY() )
VAR weekIndex = INT( ROUNDDOWN( ( dayIndex + -1 * IF( todayNum + startOfWeek <= 6; todayNum + startOfWeek; todayNum + startOfWeek – 7 )) / 7; 0 ) )
RETURN ROW (
“Año”; years;
“Mes”; months;
“Día”; days;
“Día Index”; dayIndex;
“Semana Index”; weekIndex;
“Semana Día”; WEEKDAY(currentDay;2);
“Semana Nombre”; SWITCH(WEEKDAY(currentDay;2);1;”Lunes”;2;”Martes”;3;”Miercoles”;4;”Jueves”;5;”Viernes”;6;”Sábado”;”Domingo”);
“Quincena”; IF(days<=15;1; 2);
“Quincena Nombre”; IF(days<=15;”1ra Quincena”; “2da Quincena”);
“Mes Index”; INT( (years – nowYear ) * 12 + months – nowMonth );
“Año Index”; INT( years – nowYear );
“Año Mes”; INT(years*100)+months;
“Semestre”;IF(months<=6;1; 2);
“Semestre Nombre”;IF(months<=6;”1er Semestre”; “2do Semestre”);
“Trimestre”; IF(months<=3;1; IF(months<=6;2;if(months<=9;3;4)));
“Trimestre Nombre”; IF(months<=3;”1er Trimestre”; IF(months<=6;”2do Trimestre”;if(months<=9;”3er Trimestre”;”4to Trimestre”)));
“Bimestre”; IF(months<=2;1; IF(months<=4;2;if(months<=6;3;if(months<=8;4;if(months<=10;5;6)))));
“Bimestre Nombre”; IF(months<=2;”ENE-FEB”; IF(months<=4;”MAR-ABR”;if(months<=6;”MAY-JUN”;if(months<=8;”JUL-AGO”;if(months<=10;”SEP-OCT”;”NOV-DIC”)))));
“Cuatrimestre”; IF(months<=4;1; IF(months<=8;2;3));
“Cuatrimestre Nombre”; IF(months<=4;”1er Cuatrimestre”; IF(months<=8;”2do Cuatrimestre”;”3er Cuatrimestre”));
“Mes Ingles”; SWITCH(months;1;”January”;2;”February”;3;”March”;4;”April”;5;”May”;6;”June”;7;”July”;8;”August”;9;”September”;10;”October”;11;”November”;12;”December”;”Invalid Month Number”);
“Mes Español”; SWITCH(months;1;”Enero”;2;”Febrero”;3;”Marzo”;4;”Abril”;5;”Mayo”;6;”Junio”;7;”Julio”;8;”Agosto”;9;”Septiembre”;10;”Octobre”;11;”Noviembre”;12;”Diciembre”;”Mes Invalido”)
)
)

Consideraciones del comando establecido:

  • Rango de fechas desde 2017 hasta 2030.
  • Se incluyen meses en español e ingles.
  • se definen semestres, trimestres, cuatrimestres, bimestres y quincenas en número y nombre.
  • Se definen los días de la semana en número y nombre.

Definiciones adicionales en Power BI Desktop:

  • Se recomienda definir la tabla, como tabla de fechas.
  • Los campos de tipo texto se recomienda que se ordenen por el campo de tipo número correspondiente.
    • Ej. Mes Español ordenarlo por Mes
    • Ej. Cuatrimestre Nombre ordenarlo por Cuatrimestre
  • Crear las jerarquías para que en los gráficos podamos usar drill down como:
    • Año, semestre, mes, quincena, día
    • Año, trimestre, mes
    • Año, bimestre, mes, día
    • Entre otros…

Pregunta de interes:

¿Alguien sabe como agregarle los días festivos a esta tabla de fechas?

En el siguiente archivo encontraran el calendario desde el año 2000 hasta el año actual con festivos de estados unidos automatizados:

  • DAX Date Template
  • La tabla Date tiene automatizados los festivos de estados unidos, Francia, España, Inglaterra, entre otros países.
  • La tabla DateESCO tiene un intento de agregar los festivos de Colombia, pero aún no logro ajustar los festivos cambiantes. Si alguien puede ayudar.
  • de resto funciona igual a la otra formula, solo que los comentarios están en español en todo el código.

Archivo original y sin cambios publicado en DaxDateTemplate 


Publicación Original:https://myprojectserver.wordpress.com/2018/06/20/tabla-de-fechas-con-dax-para-power-bi/

Línea base para Proyectos y Tareas: Formula con Indicador

En Project Professional 2013/2016 tanto para Project Server como para Project Online es posible crear formulas que identifiquen si el proyecto como un todo o las tareas individuales tienen asignada línea base asignada.

  • Línea base de Proyecto

IIf(ProjDateValue(“NOD”) <> [Comienzo previsto]; 1; 0)

El campo es de tipo marca o de tipo número

  • Devuelve 1 si el proyecto tiene línea base 0 asignada
  • En caso de tener Project Professional en otro idioma se deben validar los nombres de los campos
  • El valor “NOD” puede cambiar por “NA” según el idioma del Project Professional.
  • Este campo se crea desde PWA, ya que desde Project Professional no se pueden crear campos de tipo proyecto.

 

  • Línea base de Tarea

IIf([Fin previsto] <> ProjDateValue(“NOD”); 1; 0)

  • El campo es de tipo marca o de tipo número
  • Devuelve 1 si la tarea tiene línea base 0 asignada
  • En caso de tener Project Professional en otro idioma se deben validar los nombres de los campos
  • El valor “NOD” puede cambiar por “NA” según el idioma del Project Professional.
  • Este campo se crea desde desde Project Professional o desde PWA.
  • Se puede crear un indicador grafico para diferenciar los valores devueltos.

2018-06-09

  • Indicador de Pin para indicar línea base asignada.
  • indicador de reloj para indicar que no tiene línea base asignada.

Si se quieren crear formulas para líneas base diferentes se debe tener en cuenta:

El campo comienzo previsto o fin previsto deben ser cambiados por Comienzo de línea base1,2,3…10 o Fin de línea base1,2,3…10

si adicional al indicador de línea base se quiere crear el calculo de porcentaje esperado les recomiendo consultar el siguiente enlace: % Esperado o Avance Planeado a Nivel de Proyecto en PWA #ProjectOnline #ProjectServer


Publicación Original:https://myprojectserver.wordpress.com/2018/06/14/linea-base-para-proyectos-y-tareas-formula-con-indicador/

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