Compartir a través de


Comprobación y limpieza previas a la migración

Actualizado: mayo de 2009

 

Última modificación del tema: 2015-02-27

En este artículo:

  • Ejecución de la herramienta de migración con la opción -verify

  • Realización de pruebas manuales para problemas de migración

En este artículo se explica cómo comprobar si los datos de origen de Microsoft Office Project Server 2003 que planea migrar se encuentran en un estado válido para la migración a Microsoft Office Project Server 2007. En el artículo se describen herramientas útiles para comprobar que los datos que vaya a migrar sean válidos o no estén dañados, entre las que se encuentran la opción -verify de la herramienta de migración y las consultas SQL que se ejecutan en las bases de datos de Project Server 2003. También se describen las comprobaciones generales que debe realizar en el entorno de Project Server 2003 antes de la migración.

ImportantImportante:
Según el tamaño de la base de datos, la migración puede ser un proceso que requiere mucho tiempo. Para obtener más información, vea Datos de rendimiento de la migración para Project Server 2007. Si la migración de datos globales genera un error en mitad del proceso (por ejemplo, debido a la existencia de recursos de empresa duplicados), debe corregir la causa del problema y repetir el proceso de migración de datos globales desde el principio. Si realiza la comprobación y limpieza previa a la migración antes de ejecutar el proceso de migración, puede reducir en gran medida la posibilidad de error en la herramienta de migración.

Ejecución de la herramienta de migración con la opción -verify

La opción -verify de la herramienta de migración analiza los datos de Project Server 2003 y hace las siguientes comprobaciones:

  • Proyectos que estén desprotegidos

  • Proyectos que se hayan modificado externamente

  • Proyectos con actualizaciones de estado pendientes

  • Recursos de empresa duplicados

La herramienta de migración determina si deben realizarse cambios en los datos para que éstos sean compatibles con la migración. Escribe dichos cambios en el archivo de registro de la migración, pero no corrige los datos automáticamente.

Tenga en cuenta que la opción -verify es la única serie de comprobaciones que debe llevar a cabo en relación con los datos. Debe ejecutar los demás procedimientos de comprobación mencionados en este artículo para garantizar que los datos se encuentren en un estado válido para la migración.

Debe leer el archivo de registro generado y realizar los cambios necesarios en los datos de Project Server 2003 para solucionar los problemas que puedan producirse durante la migración de los datos.

[!NOTA] Ejecutar la herramienta de migración con la opción -verify no conlleva la migración de los datos globales o del proyecto, incluso si el archivo de configuración de la migración está configurado para hacerlo.

Determinar si los proyectos están desprotegidos

No se puede migrar un proyecto si está desprotegido. Antes de cualquier migración se recomienda pasar los datos de origen a un estado estable, ya que proteger intencionadamente los proyectos garantiza que un proyecto se encontrará en un estado estable para la migración. Los coordinadores de la migración podrían establecer una fecha límite para que los jefes de proyecto protejan sus proyectos para una fecha determinada, pasada la cual se forzaría la protección de todos los proyectos.

Procedimiento para buscar el problema

Si se desprotege un proyecto que se va a migrar mediante la herramienta de migración con la opción -verify, aparecerá el siguiente mensaje en la consola y en el registro:

Los siguientes proyectos están desprotegidos. La herramienta de migración no migrará estos proyectos (la herramienta de migración no se detendrá: simplemente omitirá estos proyectos). Debe protegerlos.

Resultado de la prueba correcto Resultado de la prueba incorrecto

El mensaje anterior no aparecerá si todos los proyectos están protegidos.

El mensaje anterior aparecerá seguido de los nombres de proyecto. Cada nombre de proyecto se mostrará en una línea distinta.

Procedimiento para solucionar el problema

Proteja todos los proyectos que estén desprotegidos.

Protección de todos los proyectos que están desprotegidos en Project Server 2003

  1. En Project Server 2003 Project Web Access, haga clic en Admin.

  2. Haga clic en Administrar las funciones de empresa.

  3. Haga clic en Proteger los proyectos de empresa y compruebe qué proyectos están desprotegidos. Coordine la protección o fuércela desde Project Web Access.

[!NOTA] También puede comprobar qué proyectos están desprotegidos mediante la ejecución de la siguiente consulta SQL en las bases de datos de tablas de Project de Project Server 2003 y de tablas web de Project Server 2003.
select PROJ_NAME from dbo.MSP_PROJECTS where PROJ_CHECKEDOUT = 1 and PROJ_TYPE in (0, 1)
Si se devuelve algún resultado, significa que los proyectos a los que se hace referencia están desprotegidos.

Determinación de si los proyectos se han modificado externamente

Un proyecto no se puede migrar si se ha modificado externamente.

Procedimiento para buscar el problema

Cuando se ejecuta la herramienta de migración con la opción -verify, si un proyecto que se va a migrar se ha modificado externamente, aparecerá el siguiente mensaje en la consola y en el registro:

Los siguientes proyectos se modificaron externamente. La herramienta de migración no migrará estos proyectos (la herramienta de migración no se detendrá: simplemente omitirá estos proyectos). Ábralos con Project Professional 2003 y vuelva a guardarlos en Project Server 2003.

Resultado de la prueba correcto Resultado de la prueba incorrecto

El mensaje anterior no aparecerá si los proyectos no se han modificado externamente.

El mensaje anterior aparecerá seguido de los nombres de proyecto. Cada nombre de proyecto se mostrará en una línea distinta.

Procedimiento para solucionar el problema

Abra el proyecto modificado externamente en Project Professional 2003, guárdelo y vuelva a protegerlo en el servidor. Esta acción debe establecer el indicador de modificado externamente en FALSO.

[!NOTA] También puede comprobar qué proyectos se han modificado externamente mediante la ejecución de la siguiente consulta SQL en las bases de datos de tablas de Project de Project Server 2003 y de tablas web de Project Server 2003.
select PROJ_NAME from dbo.MSP_PROJECTS where (PROJ_EXT_EDITED = 1 or RESERVED_BINARY_DATA is null) and PROJ_TYPE in (0, 1)

Si se devuelven resultados de filas, significa que los proyectos a los que se hace referencia se han modificado externamente.

Determinación de si los proyectos tienen actualizaciones de estado pendientes

De forma predeterminada, si hay proyectos de Project Server 2003 con actualizaciones pendientes, no se migrarán a Office Project Server 2007. Antes de realizar la migración, se recomienda que los usuarios acepten o rechacen las actualizaciones de estado para asegurarse de que los proyectos se encuentran en un estado estable para la migración.

Procedimiento para buscar el problema

Si un proyecto tiene actualizaciones de estado pendientes cuando se ejecuta la herramienta de migración con la opción -verify, aparecerá el siguiente mensaje en la consola y en el registro:

Los siguientes proyectos tienen actualizaciones de estado pendientes. La herramienta de migración no migrará estos proyectos (la herramienta de migración no se detendrá: simplemente omitirá estos proyectos). Aplique las actualizaciones pendientes.

Resultado de la prueba correcto Resultado de la prueba incorrecto

El mensaje anterior no aparecerá si ninguno de los proyectos tiene actualizaciones de estado pendientes.

El mensaje anterior aparecerá seguido de los nombres de proyecto. Cada nombre de proyecto se mostrará en una línea distinta.

Procedimiento para solucionar el problema

El parámetro StopProjectMigrationIfStatusUpdatesPending del archivo de configuración de la migración puede configurarse para permitir la migración de proyectos con actualizaciones pendientes. Para obtener más información sobre este parámetro, vea Configuración de la herramienta de migración de Project Server.

Antes de la migración, se recomienda establecer una fecha límite para que los jefes de proyecto acepten o rechacen las actualizaciones de estado pendientes para una determinada fecha, pasada la cual se podría forzar la migración de todos los proyectos (incluso si las actualizaciones de estado no están actualizadas).

[!NOTA] También puede comprobar si hay proyectos con actualizaciones de estado pendientes mediante la ejecución de la siguiente consulta SQL en la base de datos de tablas web de Project Server 2003.
select distinct PROJ_NAME from dbo.MSP_WEB_ASSIGNMENTS wa, dbo.MSP_WEB_TRANSACTIONS trans, dbo.MSP_WEB_PROJECTS wp where wa.WPROJ_ID = wp.WPROJ_ID and trans.WASSN_ID = wa.WASSN_ID and trans.WTRANS_STATE in (0, 1, 2)
Si se devuelve algún resultado, significa que los proyectos a los que se hace referencia tienen actualizaciones de estado pendientes.

Determinación de si existen recursos de empresa duplicados

En Project 2003 o en Project 2007 no se admite la existencia de varios recursos con el mismo nombre en el fondo de recursos de empresa. Este tipo de situaciones puede deberse a modificaciones directas de la base de datos. Tenga en cuenta que los nombres duplicados pueden no aparecer en Project Professional cuando se edita el fondo de recursos de empresa. Esto sucede porque podría haber sólo una entrada en la tabla MSP_WEB_RESOURCES para un recurso de empresa que tenga el nombre en cuestión. No hay ninguna forma sencilla de resolver esta situación. Consulte a su experto de Project Server para resolverla. A continuación se ofrecen algunas instrucciones que le ayudarán a comprobar y solucionar los problemas provocados por la existencia de recursos de empresa duplicados.

Procedimiento para buscar el problema

Si existen recursos de empresa duplicados cuando se ejecuta la herramienta de migración con la opción -verify, aparecerá el siguiente mensaje en la consola y en el registro:

El fondo de recursos de empresa contiene entradas duplicadas de los siguientes recursos. Este escenario no es compatible con Project 2003 y podría provocar errores durante la migración de recursos de empresa. Asegúrese de que no haya recursos duplicados antes de intentar la migración.

Resultado de la prueba correcto Resultado de la prueba incorrecto

El mensaje anterior no aparecerá si no hay recursos de empresa duplicados.

El mensaje anterior aparecerá seguido de los nombres de recurso. Cada nombre de recurso se mostrará en una línea distinta.

[!NOTA] También puede comprobar si existen recursos de empresa duplicados mediante la ejecución de la siguiente consulta SQL en las tablas de Project Server 2003. La consulta genera una lista de todos los recursos de empresa duplicados en el fondo de recursos de empresa.
Consulta 1:
select res_uid, res_name, res_euid from msp_resources where res_name in (select distinct r1.RES_NAME from dbo.MSP_RESOURCES r1 inner join dbo.MSP_RESOURCES r2 on (r1.RES_NAME = r2.RES_NAME and r1.PROJ_ID = r2.PROJ_ID) where r1.PROJ_ID = 1 and r1.RES_UID != r2.RES_UID) and proj_id = 1 order by res_name asc
Si el script encuentra recursos de empresa duplicados, los datos se mostrarán de forma parecida a la del siguiente ejemplo de dos recursos duplicados.

RES_UID RES_NAME RES_EUID

123

Diego Arteaga

123

124

Diego Arteaga

123

125

Enrique Gil

125

126

Enrique Gil

126

Búsqueda de recursos de empresa duplicados en los proyectos

La siguiente consulta SQL busca recursos de empresa duplicados usados en los proyectos. Como volveremos a hacer referencia a esta consulta en las secciones siguientes, la llamaremos "consulta 2".

Consulta 2:

select  distinct res_name, res_euid from msp_resources where res_name in (select distinct r1.RES_NAME from dbo.MSP_RESOURCES r1 inner join dbo.MSP_RESOURCES r2 on (r1.RES_NAME = r2.RES_NAME and r1.PROJ_ID = r2.PROJ_ID) where r1.PROJ_ID = 1 and r1.RES_UID != r2.RES_UID) and proj_id <> 1 and res_euid is not null  order by res_name, res_euid asc

Al ejecutar la consulta se obtiene una lista de los recursos de empresa duplicados que se emplean en los proyectos. Si ve sólo una fila por nombre de recurso, ejecute la consulta 4, ubicada en la sección "Corrección de recursos de empresa duplicados para señalar al correcto". Si hay más de una fila por nombre de recurso, ejecute la consulta 3, ubicada en la sección "Corrección de proyectos que emplean recursos de empresa duplicados".

En el ejemplo siguiente, tenga en cuenta que en los proyectos se emplean instancias duplicadas de "Enrique Gil". Esta situación debe corregirse.

RES_NAME RES_EUID

Diego Arteaga

123

Enrique Gil

125

Enrique Gil

126

Corrección de proyectos que emplean recursos de empresa duplicados

Al ejecutar la siguiente consulta (consulta 3) se devuelven los identificadores de proyecto asociados a los recursos de empresa duplicados. Tiene que eliminar este tipo de duplicación de modo que se use una única combinación de "res_name, res_euid" en los proyectos. Si existen duplicados, debe designar uno de los duplicados como recurso "correcto" y asegurarse de que todos los proyectos usen dicho recurso (actualice la columna MSP_RESOURCES.RES_EUID para ese proyecto de modo que señale al recurso de empresa que haya designado como correcto). Después de hacerlo, ejecute la consulta 2 para repetir la prueba que permite comprobar la existencia de recursos de empresa duplicados en los proyectos.

Consulta 3:

select res_name,  res_euid, proj_id from msp_resources where res_name in (select distinct r1.RES_NAME from dbo.MSP_RESOURCES r1 inner join dbo.MSP_RESOURCES r2 on (r1.RES_NAME = r2.RES_NAME and r1.PROJ_ID = r2.PROJ_ID) where r1.PROJ_ID = 1 and r1.RES_UID != r2.RES_UID) and proj_id <> 1 and res_euid is not null order by res_name, res_euid asc

Por ejemplo, supongamos que al ejecutar el script 3 se obtienen los resultados siguientes:

RES_NAME RES_EUID PROJ_ID

Enrique Gil

125

12

Enrique Gil

126

13

Enrique Gil

125

14

Para corregir la situación, podría elegir "Enrique Gil" con RES_EUID=125 como recurso de empresa "correcto" y corregir las filas del siguiente modo:

RES_NAME RES_EUID PROJ_ID

Enrique Gil

125

12

Enrique Gil

125

13

Enrique Gil

125

14

Corrección de recursos de empresa duplicados para señalar al correcto

En la sección anterior se ha designado un recurso correcto entre los duplicados y se han corregido los proyectos para que lo señalen. Ahora, debe cambiar la tabla MSP_RESOURCES de acuerdo con el recurso que haya designado. Ejecute la consulta 4 (que es igual que la consulta 1) para obtener una lista de los recursos de empresa duplicados. A continuación, actualice la columna RES_EUID del recurso duplicado para que señale al recurso que ha designado como correcto.

Consulta 4:

select res_uid, res_name, res_euid from msp_resources where res_name in (select distinct r1.RES_NAME from dbo.MSP_RESOURCES r1 inner join dbo.MSP_RESOURCES r2 on (r1.RES_NAME = r2.RES_NAME and r1.PROJ_ID = r2.PROJ_ID) where r1.PROJ_ID = 1 and r1.RES_UID != r2.RES_UID) and proj_id = 1 order by res_name asc

Por ejemplo, supongamos que la ejecución de la consulta 4 devuelve los resultados siguientes. La fila "Diego Arteaga" es correcta. "Enrique Gil" debe corregirse.

RES_UID RES_NAME RES_EUID

123

Diego Arteaga

123

124

Diego Arteaga

123

125

Enrique Gil

125

126

Enrique Gil

126

Para corregir la situación, podría elegir "Enrique Gil" con RES_UID=125 como recurso "correcto" y actualizar la otra fila para que señale a ese elemento. Por ejemplo:

RES_UID RES_NAME RES_EUID

123

Diego Arteaga

123

124

Diego Arteaga

123

125

Enrique Gil

125

126

Enrique Gil

125

Eliminación del recurso duplicado del fondo de recursos de empresa

Puede quitar un recurso duplicado del fondo de recursos de empresa si hace que dicho recurso duplicado señale a un proyecto falso (PROJ_ID = valor entero máximo). Además, también deben limpiarse los calendarios de empresa relacionados. Ejecute la consulta 5 para hacer esto.

Consulta 5:

update msp_resources set proj_id=2147483647 WHERE res_uid != res_euid and res_euid is not null and res_uid > 0 and proj_id = 1

update msp_calendars set proj_id=2147483647 WHERE res_uid not in (select res_uid from msp_resources where proj_id=1) and proj_id = 1 and cal_uid > 0 and res_uid is not null

Después de llevar a cabo los pasos anteriores, intente ejecutar la herramienta de migración con la opción -verify de nuevo para comprobar que se solucione el problema de recursos duplicados.

Realización de pruebas manuales para problemas de migración

Ejecutar la herramienta de migración con la opción -verify permite comprobar automáticamente los datos de Project Server 2003 para detectar problemas que pueden causar un error en la migración. También puede ejecutar estas comprobaciones (así como otras que no están disponibles mediante la opción verify) manualmente. La primera mitad de este artículo explica las comprobaciones automáticas que pueden realizarse. El resto del artículo describe cómo ejecutar comprobaciones manuales de los datos de Project Server 2003 a fin de prepararlos para la migración.

La versión del proyecto debe ser al menos "Project Server 2003 SP2a"

Microsoft admite la migración desde Project Server 2003 SP2a. Si no tiene este Service Pack instalado, deberá aplicarlo. Para obtener más información acerca del Service Pack, vea el artículo de Knowledge Base Descripción del Service Pack 2a de Project Server 2003 (https://go.microsoft.com/fwlink/?linkid=78242\&clcid=0xC0A).

Procedimiento para buscar el problema

Ejecute la siguiente consulta SQL en la base de datos de tablas web de Project Server 2003. Esta consulta indica la versión específica de Project Server, incluido el número de Service Pack.

select replace(str(WADMIN_VERSION_MAJOR)+'.'+str(WADMIN_VERSION_MINOR),' ','') as 'Project Server Version' from dbo.MSP_WEB_ADMIN

Resultado de la prueba correcto Resultado de la prueba incorrecto

11,2

11,1

Procedimiento para solucionar el problema

Aplique Project Server 2003 SP2a en la instalación de Project Server 2003. Para obtener más información acerca de cómo aplicar Project Server 2003 SP2a, vea Preparación de la migración a Project Server 2007.

La plantilla global de empresa no se debe modificar externamente

El indicador "Modificado externamente" se establece en "VERDADERO" cuando se edita la plantilla de información global de empresa fuera de Project (por ejemplo, mediante una aplicación de terceros). Project Professional buscará este indicador: si está definido como VERDADERO, Project Professional vuelve a calcular todos los datos de la plantilla global de empresa para garantizar la coherencia. Establezca este indicador en ‘"FALSO" para habilitar la migración.

Procedimiento para buscar el problema

Ejecute la siguiente consulta SQL en la base de datos de tablas de Project de Project Server 2003. La siguiente consulta busca proyectos que se hayan modificado externamente en la base de datos de Project Server 2003. Si se devuelven filas, la plantilla global de empresa no se podrá migrar en su estado actual.

select PROJ_NAME from dbo.MSP_PROJECTS where (PROJ_EXT_EDITED = 1 or RESERVED_BINARY_DATA is null) and PROJ_TYPE = 2

Resultado de la prueba correcto Resultado de la prueba incorrecto

No se devuelven filas.

Se devuelve una o varias filas.

Procedimiento para solucionar el problema

Abra la información global de empresa en Project Professional y vuelva a guardarla.

Determinación de si la plantilla de información global de empresa está desprotegida

La plantilla de información global de empresa no se debe desproteger al migrar los proyectos.

Procedimiento para buscar el problema

La siguiente consulta SQL comprueba si la información global de empresa está desprotegida. Ejecute la siguiente consulta SQL en la base de datos de tablas de Project de Project Server 2003.

select count(*) from dbo.MSP_PROJECTS where PROJ_CHECKEDOUT = 1 and PROJ_TYPE = 2

Resultado de la prueba correcto Resultado de la prueba incorrecto

0

Se devuelve un valor mayor que "0".

Procedimiento para solucionar el problema

Asegúrese de que la información global de empresa está protegida.

  1. En Project Server 2003 Project Web Access, haga clic en Admin.

  2. Haga clic en Administrar las funciones de empresa.

  3. Haga clic en Proteger los proyectos de empresa y vea quién ha desprotegido la información global de empresa. Coordine la protección o fuércela desde Project Web Access.

Determinación de si la plantilla de información global de empresa está bloqueada

Un proyecto se bloquea si el equipo se apaga de manera anormal o si Project Professional sale del sistema de forma anormal. Si la plantilla de información global de empresa está bloqueada, no podrá ejecutar la herramienta de migración.

Procedimiento para buscar el problema

La siguiente consulta SQL comprueba si el archivo de plantilla de información global de empresa está bloqueado. Ejecute la siguiente consulta SQL en la base de datos de tablas de Project de Project Server 2003.

select cast(isnull(PROJ_LOCKED, '0') as int) from dbo.MSP_PROJECTS where PROJ_TYPE = 2

Resultado de la prueba correcto Resultado de la prueba incorrecto

0

1

Procedimiento para solucionar el problema

La siguiente consulta SQL desbloquea el archivo de plantilla de información global de empresa. Ejecute la siguiente consulta SQL en la base de datos de tablas de Project de Project Server 2003.

Update MSP_PROJECTS set PROJ_LOCKED = 1 where PROJ_TYPE = 2

Determinación de si el idioma predeterminado de la base de datos de tablas web debe coincidir con el de la base de datos de tablas de Project

El idioma predeterminado de la base de datos de tablas web de Project Server 2003 debe coincidir con el de la base de datos de tablas de Project de Project Server 2003 antes de la migración.

Procedimiento para buscar el problema

Esta consulta determina el idioma predeterminado para cada base de datos. Si los resultados de la consulta no coinciden, se produce un error de migración. Ejecute la siguiente consulta SQL en las bases de datos de tablas de Project de Project Server 2003 y de tablas web de Project Server 2003.

select WADMIN_DEFAULT_LANGUAGE from dbo.MSP_WEB_ADMIN.

Resultado de la prueba correcto Resultado de la prueba incorrecto

Los resultados coinciden cuando se ejecuta en las dos bases de datos.

Los resultados no coinciden cuando se ejecuta en las dos bases de datos.

Procedimiento para solucionar el problema

Trabaje en colaboración con el administrador para corregir la incoherencia de los estados de las dos bases de datos.

Determinación de si un recurso tiene una coma en su nombre

Office Project Server 2007 tiene una limitación que consiste en que los recursos de empresa (de cualquier idioma) no pueden tener un carácter de coma (,) en su nombre. El carácter debe reemplazarse por un carácter válido.

Procedimiento para buscar el problema

Esta consulta comprueba el fondo de recursos de empresa de todos los nombres de recurso que contengan un carácter de coma. Ejecute la siguiente consulta SQL en la base de datos de tablas de Project de Project Server 2003.

select RES_NAME from MSP_RESOURCES where RES_NAME is not null and charindex(',', RES_NAME) > 0

Resultado de la prueba correcto Resultado de la prueba incorrecto

No se devuelven filas.

Se devuelven una o varias filas.

Procedimiento para solucionar el problema

Ejecute la siguiente consulta SQL en las bases de datos de tablas de Project de Project Server 2003 y de tablas web de Project Server 2003. Con ella, se reemplaza el carácter de coma por un carácter de subrayado. Si desea usar un carácter válido diferente, se puede editar la consulta.

-- run this against the project tables db

declare @replacement_char char

declare @char_to_replace char

set @replacement_char = '_'

set @char_to_replace = ','

update dbo.MSP_RESOURCES set RES_NAME = replace(RES_NAME, @char_to_replace, @replacement_char)

where RES_NAME is not null and charindex(@char_to_replace, RES_NAME) > 0

-- run this against the web tables db

declare @replacement_char char

declare @char_to_replace char

set @replacement_char = '_'

set @char_to_replace = ','

update dbo.MSP_WEB_RESOURCES set RES_NAME = replace(RES_NAME, @char_to_replace, @replacement_char)

where RES_NAME is not null and charindex(@char_to_replace, RES_NAME) > 0

Determinación de si hay campos personalizados obligatorios de recursos de empresa sin valores especificados

Los recursos de empresa que no tenga especificado un valor en algún campo personalizado de empresa obligatorio (como EDR), generarán un error de migración. En estos casos se contabilizará un error en el registro de la migración durante la migración. Se recomienda comprobar si se da esta situación antes de la migración. Si los recursos de su empresa son muy antiguos (si se crearon antes de convertir en obligatorio el campo personalizado) o están inactivos, es posible que no tengan valores para el campo personalizado obligatorio.

Una forma de corregir esta situación es asegurarse de que todos los campos personalizados de recursos de Office Project Server 2007 se establezcan en No necesario. Posteriormente, podrá volver a modificarlos manualmente en Office Project Server 2007.

Hay dos métodos de comprobación que se pueden usar para averiguar qué campos personalizados han provocado el problema de migración.

  • El método de comprobación 1 usa una consulta SQL en la base de datos de tablas de Project de Project Server 2003.

  • El método de comprobación 2 usa la interfaz de usuario de Project Professional 2003.

Procedimiento para buscar el problema mediante el método de comprobación 1

Esta consulta SQL devuelve recursos de empresa que tienen campos personalizados de empresa obligatorios sin ningún valor especificado. Ejecute la siguiente consulta SQL en la base de datos de tablas de Project de Project Server 2003.

declare @eglobal_proj_id int

set @eglobal_proj_id = (select PROJ_ID from dbo.MSP_PROJECTS where PROJ_TYPE = 2)

select

   r1.RES_NAME as 'Resource Name',

   ast1.AS_VALUE as 'Custom Field Name'

from

   dbo.MSP_RESOURCES r1

   inner join dbo.MSP_CODE_FIELDS cf1 on (r1.RES_UID = cf1.CODE_REF_UID)

   inner join dbo.MSP_FIELD_ATTRIBUTES fa1 on (cf1.CODE_FIELD_ID = fa1.ATTRIB_FIELD_ID)

   inner join dbo.MSP_ATTRIBUTE_STRINGS ast1 on (fa1.AS_ID = ast1.AS_ID)

   inner join dbo.MSP_OUTLINE_CODES oc3 on (cf1.CODE_UID = oc3.CODE_UID and oc3.PROJ_ID = @eglobal_proj_id)

   left join dbo.MSP_OUTLINE_CODES oc1 on (oc1.CODE_UID = cf1.CODE_UID and cf1.CODE_FIELD_ID = oc1.OC_FIELD_ID and oc1.PROJ_ID = @eglobal_proj_id)

   left join (

      select

         oc.CODE_UID,

         fa.ATTRIB_FIELD_ID as OC_FIELD_ID,

         @eglobal_proj_id as PROJ_ID

      from

         dbo.MSP_OUTLINE_CODES oc

         inner join dbo.MSP_FIELD_ATTRIBUTES fa on (fa.PROJ_ID = oc.PROJ_ID and fa.ATTRIB_VALUE = oc.OC_FIELD_ID and fa.ATTRIB_ID = 212)

      where

         oc.PROJ_ID = @eglobal_proj_id

         and fa.PROJ_ID = @eglobal_proj_id

         and fa.ATTRIB_ID = 212

   ) as oc2 on (oc2.CODE_UID = cf1.CODE_UID and cf1.CODE_FIELD_ID = oc2.OC_FIELD_ID and oc2.PROJ_ID = @eglobal_proj_id)

where

   r1.PROJ_ID = 1

   and cf1.proj_id = 1

   and fa1.PROJ_ID = @eglobal_proj_id

   and fa1.ATTRIB_ID = 206

   and ast1.PROJ_ID = @eglobal_proj_id

   and oc3.PROJ_ID = @eglobal_proj_id

   and oc1.CODE_UID is null

   and oc2.CODE_UID is null

order by

   r1.RES_NAME,

   ast1.AS_VALUE

Resultado de la prueba correcto Resultado de la prueba incorrecto

No se devuelven filas.

Se devuelven una o varias filas.

Procedimiento para solucionar el problema

En Project Server 2003, abra el fondo de recursos de empresa y establezca los valores de los campos personalizados obligatorios o establezca los campos personalizados afectados como "No necesarios".

Procedimiento para buscar el problema mediante el método de comprobación 2

En este método es necesario usar Project Professional 2003 para abrir el fondo de recursos de empresa. Al intentar guardar el fondo de recursos de empresa, deberá comprobar si todos los recursos de empresa seleccionados tienen valores especificados para los campos personalizados obligatorios.

  1. Abra Project Professional 2003 conectado al servidor Project Server 2003.

  2. En el menú Herramientas, haga clic en Opciones de empresa y, a continuación, en Abrir el fondo de recursos de empresa.

  3. En el cuadro de diálogo Abrir recursos de empresa que aparece, active la casilla Incluir recursos inactivos. Compruebe que está activado Lectura y escritura para desproteger . Haga clic en el cuadro Aplicar filtro.

  4. Haga clic en el botón Seleccionar o anular selección para asegurarse de que se seleccionan todos los recursos.

  5. Haga clic en el botón Abrir/Agregar. Una vez abiertos los recursos para su edición, haga clic en Guardar. Project Professional comprobará si cada recurso de empresa (activo o inactivo) tiene especificado un valor para los campos personalizados obligatorios.

    Resultado de la prueba correcto Resultado de la prueba incorrecto

    Después de guardar, no aparece ningún mensaje de error.

    Aparece un mensaje de error que muestra errores correspondientes a los recursos que no tienen valores especificados en los campos personalizados de empresa obligatorios.

Procedimiento para solucionar el problema

En Project Server 2003, establezca valores para los campos personalizados obligatorios o defina los campos personalizados afectados como No necesarios.

Determinación de si un campo personalizado de recurso tiene un valor que no se encuentra en la definición de la tabla de búsqueda

Todos los valores de un campo personalizado de recurso deben estar en la tabla de definición de la búsqueda.

Procedimiento para buscar el problema

Esta consulta SQL busca campos personalizados de recursos no válidos, para lo cual comprueba si el valor del campo personalizado está en la tabla de búsqueda correspondiente.

Ejecute la siguiente consulta SQL en las bases de datos de tablas de Project de Project Server 2003 y de tablas web de Project Server 2003.

declare @eglobal_proj_id int

set @eglobal_proj_id = (select PROJ_ID from dbo.MSP_PROJECTS where PROJ_TYPE = 2)

select

   r1.RES_NAME,

   ast1.AS_VALUE

from

   dbo.MSP_RESOURCES r1

   inner join dbo.MSP_CODE_FIELDS cf1 on (r1.RES_UID = cf1.CODE_REF_UID)

   inner join dbo.MSP_FIELD_ATTRIBUTES fa1 on (cf1.CODE_FIELD_ID = fa1.ATTRIB_FIELD_ID)

   inner join dbo.MSP_ATTRIBUTE_STRINGS ast1 on (fa1.AS_ID = ast1.AS_ID)

   left join dbo.MSP_OUTLINE_CODES oc1 on (oc1.CODE_UID = cf1.CODE_UID and cf1.CODE_FIELD_ID = oc1.OC_FIELD_ID and oc1.PROJ_ID = @eglobal_proj_id)

   left join (

      select

         oc.CODE_UID,

         fa.ATTRIB_FIELD_ID as OC_FIELD_ID,

         @eglobal_proj_id as PROJ_ID

      from

         dbo.MSP_OUTLINE_CODES oc

         inner join dbo.MSP_FIELD_ATTRIBUTES fa on (fa.PROJ_ID = oc.PROJ_ID and fa.ATTRIB_VALUE = oc.OC_FIELD_ID and fa.ATTRIB_ID = 212)

      where

         oc.PROJ_ID = @eglobal_proj_id

         and fa.PROJ_ID = @eglobal_proj_id

         and fa.ATTRIB_ID = 212

   ) as oc2 on (oc2.CODE_UID = cf1.CODE_UID and cf1.CODE_FIELD_ID = oc2.OC_FIELD_ID and oc2.PROJ_ID = @eglobal_proj_id)

where

   r1.PROJ_ID = 1

   and cf1.proj_id = 1

   and cf1.code_uid is not null

   and fa1.PROJ_ID = @eglobal_proj_id

   and fa1.ATTRIB_ID = 206

   and ast1.PROJ_ID = @eglobal_proj_id

   and oc1.CODE_UID is null

   and oc2.CODE_UID is null

union

select

   r1.RES_NAME,

   ast1.AS_VALUE

from

   dbo.MSP_RESOURCES r1

   inner join dbo.MSP_MV_FIELDS cf1 on (r1.RES_UID = cf1.CODE_REF_UID)

   inner join dbo.MSP_FIELD_ATTRIBUTES fa1 on (cf1.CODE_FIELD_ID = fa1.ATTRIB_FIELD_ID)

   inner join dbo.MSP_ATTRIBUTE_STRINGS ast1 on (fa1.AS_ID = ast1.AS_ID)

   left join dbo.MSP_OUTLINE_CODES oc1 on (oc1.CODE_UID = cf1.CODE_UID and (cf1.CODE_FIELD_ID - 76) = oc1.OC_FIELD_ID and oc1.PROJ_ID = @eglobal_proj_id)

   left join (

      select

         oc.CODE_UID,

         fa.ATTRIB_FIELD_ID as OC_FIELD_ID,

         @eglobal_proj_id as PROJ_ID

      from

         dbo.MSP_OUTLINE_CODES oc

         inner join dbo.MSP_FIELD_ATTRIBUTES fa on (fa.PROJ_ID = oc.PROJ_ID and fa.ATTRIB_VALUE = oc.OC_FIELD_ID and fa.ATTRIB_ID = 212)

      where

         oc.PROJ_ID = @eglobal_proj_id

         and fa.PROJ_ID = @eglobal_proj_id

         and fa.ATTRIB_ID = 212

   ) as oc2 on (oc2.CODE_UID = cf1.CODE_UID and (cf1.CODE_FIELD_ID - 76) = oc2.OC_FIELD_ID and oc2.PROJ_ID = @eglobal_proj_id)

where

   r1.PROJ_ID = 1

   and cf1.proj_id = 1

   and cf1.code_uid is not null

   and fa1.PROJ_ID = @eglobal_proj_id

   and fa1.ATTRIB_ID = 206

   and ast1.PROJ_ID = @eglobal_proj_id

   and oc1.CODE_UID is null

   and oc2.CODE_UID is null

order by

   r1.RES_NAME,

   ast1.AS_VALUE

Resultado de la prueba correcto Resultado de la prueba incorrecto

No se devuelven filas.

Se devuelve una o varias filas.

Procedimiento para solucionar el problema

La siguiente consulta SQL establece los valores de campo personalizado de recurso no válidos en null. Ejecute la siguiente consulta SQL en las bases de datos de tablas de Project de Project Server 2003.

declare @eglobal_proj_id int

set @eglobal_proj_id = (select PROJ_ID from dbo.MSP_PROJECTS where PROJ_TYPE = 2)

update dbo.MSP_MV_FIELDS

set

   CODE_UID = NULL

from dbo.MSP_MV_FIELDS cf1

   left join dbo.MSP_OUTLINE_CODES oc1 on (oc1.CODE_UID = cf1.CODE_UID and (cf1.CODE_FIELD_ID - 76) = oc1.OC_FIELD_ID and oc1.PROJ_ID = @eglobal_proj_id)

   left join (

      select

         oc.CODE_UID,

         fa.ATTRIB_FIELD_ID as OC_FIELD_ID,

         @eglobal_proj_id as PROJ_ID

      from

         dbo.MSP_OUTLINE_CODES oc

         inner join dbo.MSP_FIELD_ATTRIBUTES fa on (fa.PROJ_ID = oc.PROJ_ID and fa.ATTRIB_VALUE = oc.OC_FIELD_ID and fa.ATTRIB_ID = 212)

      where

         oc.PROJ_ID = @eglobal_proj_id

         and fa.PROJ_ID = @eglobal_proj_id

         and fa.ATTRIB_ID = 212

   ) as oc2 on (oc2.CODE_UID = cf1.CODE_UID and (cf1.CODE_FIELD_ID - 76) = oc2.OC_FIELD_ID and oc2.PROJ_ID = @eglobal_proj_id)

where

   cf1.proj_id = 1

   and oc1.CODE_UID is null

   and oc2.CODE_UID is null

update dbo.MSP_CODE_FIELDS

set

   CODE_UID = NULL

from dbo.MSP_CODE_FIELDS cf1

   left join dbo.MSP_OUTLINE_CODES oc1 on (oc1.CODE_UID = cf1.CODE_UID and cf1.CODE_FIELD_ID = oc1.OC_FIELD_ID and oc1.PROJ_ID = @eglobal_proj_id)

   left join (

      select

         oc.CODE_UID,

         fa.ATTRIB_FIELD_ID as OC_FIELD_ID,

         @eglobal_proj_id as PROJ_ID

         from

         dbo.MSP_OUTLINE_CODES oc

         inner join dbo.MSP_FIELD_ATTRIBUTES fa on (fa.PROJ_ID = oc.PROJ_ID and fa.ATTRIB_VALUE = oc.OC_FIELD_ID and fa.ATTRIB_ID = 212)

      where

         oc.PROJ_ID = @eglobal_proj_id

         and fa.PROJ_ID = @eglobal_proj_id

         and fa.ATTRIB_ID = 212

   ) as oc2 on (oc2.CODE_UID = cf1.CODE_UID and cf1.CODE_FIELD_ID = oc2.OC_FIELD_ID and oc2.PROJ_ID = @eglobal_proj_id)

where

   cf1.proj_id = 1

   and oc1.CODE_UID is null

   and oc2.CODE_UID is null

update dbo.MSP_PROJECTS set PROJ_EXT_EDITED = 1, PROJ_EXT_EDITED_CODE = 1 where PROJ_ID = 1

Determinación de si los recursos de empresa se han modificado externamente

Para poder migrar los recursos de empresa desde Project Server 2003 a Project Server 2007, no deben estar modificados externamente.

Procedimiento para buscar el problema

La siguiente consulta comprueba si en el fondo de recursos de empresa existen recursos de empresa que se han modificado externamente. Si los resultados de las pruebas son incorrectos, el fondo de recursos de empresa no se podrá migrar en su estado actual. Ejecute la siguiente consulta SQL en las tablas de Project de Project Server 2003.

select count(*) from dbo.MSP_RESOURCES  where PROJ_ID = 1 and  cast(EXT_EDIT_REF_DATA as varchar(1)) = '1'

Resultado de la prueba correcto Resultado de la prueba incorrecto

0

Se devuelve un valor mayor que "0".

Procedimiento para solucionar el problema

Para solucionar el problema, primero debe definir todos los recursos de empresa como modificados externamente. Esto puede realizarse a través de una consulta SQL. A continuación, puede realizar un cambio en cada recurso de empresa de modo que Project Professional realice todas las actualizaciones relevantes cuando se guarde el fondo de recursos de empresa. Esta acción quita el indicador "modificado externamente" de cada recurso de empresa. Si no se cambia un recurso de empresa, Project Professional no realiza nuevos cálculos para dicho recurso. Ese recurso de empresa específico seguirá estando etiquetado como modificado externamente y no se migrará el fondo de recursos de empresa.

[!NOTA] Una vez que se migra el fondo de recursos de empresa, se pueden quitar los cambios realizados en cada recurso de empresa.

Puede usar la siguiente solución general para quitar todos los indicadores modificados externamente de los recursos de empresa.

  1. Configure todos los recursos de empresa para que puedan modificarse externamente. Puede hacerlo mediante la ejecución de la siguiente consulta SQL en las bases de datos de tablas de Project de Project Server 2003.

    Update dbo.MSP_RESOURCES set EXT_EDIT_REF_DATA = 1 where PROJ_ID = 1

    Update dbo.MSP_PROJECTS set PROJ_EXT_EDITED = 1, PROJ_EXT_EDITED_DATE = 1, PROJ_EXT_EDITED_DUR = 1, PROJ_EXT_EDITED_NUM = 1, PROJ_EXT_EDITED_FLAG = 1, PROJ_EXT_EDITED_CODE = 1, PROJ_EXT_EDITED_TEXT = 1 where PROJ_ID = 1

  2. Agregue de forma temporal un campo personalizado de recurso que no tenga trascendencia a cada recurso de empresa para forzar que Project Professional 2003 realice nuevos cálculos. Los nuevos cálculos forzados marcarán a cada recurso de empresa como recurso que ya no está modificado externamente. Por ejemplo, en Project Professional 2003 se puede crear un campo personalizado de recurso "prueba" que se agregará a cada recurso de empresa. Puede usar cualquier tipo de campo personalizado. Por ejemplo, se puede usar un campo personalizado de duración de recurso, cuyo uso es poco habitual.

    [!NOTA] Si usa un campo de duración de recurso de empresa personalizado, no cree una lista de valores para dicho campo. No se migrarán los campos personalizados de duración de recurso de empresa que tengan listas de valores. Al crear este campo personalizado temporal, use un valor numérico.

    Puede nombrar el nuevo campo personalizado "CP de recurso de prueba". Después de crear el campo personalizado "CP de recurso de prueba", abra el fondo de recursos de empresa y agregue la columna "CP de recurso de prueba". Establezca un valor válido para este campo personalizado para todos los recursos. Guarde el fondo de recursos de empresa y realice la migración. Después de la migración, quite el campo personalizado "CP de recurso de prueba" de Microsoft Office Project Professional 2007.

Determinación de si existen campos personalizados de duración de recurso de empresa con listas de valores

Los campos personalizados de duración de recursos de empresa con listas de valores asociadas provocarán un error de migración.

Procedimiento para buscar el problema

Esta consulta SQL busca campos personalizados de duración de recurso de empresa con listas de valores asociadas. Ejecute la siguiente consulta SQL en la base de datos de tablas de Project de Project Server 2003.

declare @proj_id int

set @proj_id = (select proj_id from msp_projects where proj_type = 2)

select ats.as_value as CustomFieldName from msp_attribute_strings ats

inner join msp_field_attributes fa on (fa.proj_id = ats.proj_id and fa.as_id = ats.as_id)

where fa.attrib_id = 206 and fa.proj_id = @proj_id and fa.attrib_field_id >= 205521382 and fa.attrib_field_id <= 205521391

and exists (select * from msp_field_attributes fa2 where fa2.proj_id = fa.proj_id and fa2.attrib_field_id = fa.attrib_field_id and fa2.attrib_id = 210)

Resultado de la prueba correcto Resultado de la prueba incorrecto

No se devuelven filas.

Se devuelve una o varias filas. Estos campos personalizados de duración de recurso de empresa tienen listas de valores asociadas. La lista de valores debe quitarse manualmente para cada uno de dichos campos.

Procedimiento para solucionar el problema

Para solucionar el problema, debe quitar manualmente todas las listas de valores de cada campo personalizado de duración de recurso de empresa que encuentre la consulta SQL. Para ello, realice el procedimiento siguiente.

  1. Abra Project Professional 2003 conectado al servidor Project Server 2003.

  2. En el menú Herramientas, elija Opciones de empresa y, a continuación, haga clic en Abrir la información global de empresa.

  3. En la página de Información global de empresa desprotegida de Microsoft Project, en el menú Herramientas, elija Personalizar y, a continuación, haga clic en Campos de empresa.

  4. En la página Campos personalizados de empresa, en la ficha Campos personalizados, en la sección Campos, haga clic en Recurso.

  5. En la lista desplegable Tipo, haga clic en Duración. Todos los campos personalizados de duración de empresa aparecerán en la lista Campo.

  6. En la lista Campo, seleccione el primer campo personalizado de duración de recurso de empresa que coincida con los campos devueltos por la consulta SQL ejecutada anteriormente. En la sección Atributos personalizados, haga clic en el botón Lista de valores. En la lista de valores del campo personalizado específico de duración de empresa, elimine los valores de la columna Valor y, a continuación, haga clic en Aceptar. En el cuadro de diálogo Microsoft Office Project que aparecerá, haga clic en Aceptar.

  7. En la página Personalizar campos de empresa, en la sección Atributos personalizados, compruebe que Lista de valores no está activado para el campo personalizado de duración de recurso de empresa seleccionado en la lista Campo. Si Lista de valores está activado, seleccione Ninguno.

  8. En la lista Campo, seleccione los demás campos personalizados de duración de recurso de empresa que corresponden a la consulta SQL y repita los pasos 6 y 7.

  9. Haga clic en Aceptar.

Determinación de si los campos personalizados de duración de recurso de empresa contienen valores válidos

Office Project Server 2007 no permite valores de duración negativos ni valores de duración mayores que 34689600. Si se intentan migrar campos personalizados de duración de recursos de empresa de Project Server 2003 que contengan alguno de estos valores, se producirá un error de migración.

Procedimiento para buscar el problema

Para buscar el problema, ejecute la siguiente consulta SQL en la base de datos de tablas de Project de Project Server 2003. Esta consulta devolverá los campos personalizados de duración de recurso de empresa cuyos valores no sean válidos.

select r.res_name, mas.as_value from msp_resources r

inner join msp_duration_fields df on (df.dur_ref_uid = r.res_euid and df.proj_id = r.proj_id)

inner join msp_projects p on (p.proj_type = 2)

inner join msp_field_attributes fa on (fa.proj_id = p.proj_id and fa.attrib_field_id = df.dur_field_id)

inner join msp_attribute_strings mas on (mas.proj_id = p.proj_id and fa.as_id = mas.as_id)

where (dur_value < 0 or dur_value > 34689600) and df.proj_id = 1 and p.proj_type = 2 and fa.attrib_id = 206

Resultado de la prueba correcto Resultado de la prueba incorrecto

No se devuelven filas.

Se devuelve una o varias filas.

Procedimiento para solucionar el problema

Para solucionar el problema, se debe editar manualmente el valor del campo personalizado de duración de recurso de empresa para cada uno de los campos personalizados identificados. Debe asegurarse de que los valores de campo sean válidos (entre 0 y 34689600).

Si el campo identificado por la consulta es un campo personalizado simple (no un campo de fórmula), puede cambiar el valor del campo para que se ajuste al intervalo permitido. Si el campo identificado por la consulta es un campo de fórmula, tendrá que modificar la fórmula para asegurarse de que los resultados se ajusten al intervalo válido.

Determinación de si los nombres de campos personalizados de empresa no contienen espacios iniciales ni finales

Compruebe que los nombres de campos personalizados de Office Project Server 2007 no contengan espacios iniciales ni finales (por ejemplo, __Campo personalizado_, donde el carácter de subrayado representa un carácter de espacio en blanco). Si intenta migrar campos personalizados con caracteres de espacio iniciales o finales, se producirá un error durante la migración.

Determinación de si existe la cuenta de administrador de la migración en Project Server 2003

Si en Project Server 2003 existe la cuenta de administrador de la migración (ya sea el nombre o la cuenta de Windows), no se migrarán esos permisos de usuario, ni asignaciones de categoría ni propiedades de usuario a Office Project Server 2007. En esencia, quien sale beneficiado es el usuario de Office Project Server 2007. Tenga en cuenta que si la cuenta de administrador de la migración se usa en los proyectos, éstos se sustituirán por dicha cuenta de administrador.

Reemplazo de los caracteres de coma en los nombres de recursos empresariales

Si las bases de datos de Project Server 2003 tienen nombres de recursos empresariales que contienen un carácter de coma, se producirá un error en la migración del recurso. Esto podría suponer un problema para algunos clientes con determinadas configuraciones regionales en las que el uso de la coma en los nombres de recursos es una práctica habitual.

Procedimiento para solucionar el problema

Use las siguientes consultas SQL para reemplazar cada carácter de coma por un carácter de subrayado neutro.

Ejecute esta consulta en la base de datos de tablas de Project:

declare @replacement_char char

declare @char_to_replace char

set @replacement_char = '_'

set @char_to_replace = ','

update dbo.MSP_RESOURCES set RES_NAME = replace(RES_NAME, @char_to_replace, @replacement_char)

where RES_NAME is not null and charindex(@char_to_replace, RES_NAME) > 0

Ejecute esta consulta en la base de datos de tablas web:

declare @replacement_char char

declare @char_to_replace char

set @replacement_char = '_'

set @char_to_replace = ','

update dbo.MSP_WEB_RESOURCES set RES_NAME = replace(RES_NAME, @char_to_replace, @replacement_char)

where RES_NAME is not null and charindex(@char_to_replace, RES_NAME) > 0