Solución de problemas de datos identificados en el script A1 previo a la migración (Project Server 2010)
Se aplica a: Project Server 2010
Última modificación del tema: 2016-11-30
Importante
Este artículo se ha traducido automáticamente; vea el aviso de declinación de responsabilidades. Como referencia, puede encontrar la versión en inglés de este artículo aquí.
Tras ejecutar el script A1 previo a la migración en los datos de Microsoft Office Project Server 2003, consulte el resultado del script para ver si existen problemas. En este artículo se describen los métodos para resolver el problema en los datos identificados en los resultados. Por ejemplo:
Proyectos que están desprotegidos
Proyectos que se han editado externamente
Proyectos con actualizaciones de estado pendientes
Recursos de empresa duplicados
Service Pack 2a es la versión del producto mínima requerida para Project Server 2003
Recursos de empresa duplicados en proyectos
La plantilla de la información global de la empresa se ha editado externamente
La plantilla de la información global de la empresa se ha desprotegido
La plantilla de la información global de la empresa está bloqueada
El idioma predeterminado de la base de datos de tablas web debe coincidir con el de la base de datos de tablas de Project
Los recursos de empresa no deben tener comas en el nombre
Los campos personalizados de recursos de empresa obligatorios no contienen valores
Los campos personalizados de recursos de empresa obligatorios contienen valores que no se encuentran en la definición de la tabla de búsqueda
Los recursos de empresa se han modificado externamente
Los campos personalizados de duración de los recursos de empresa tienen listas de valores
Los campos personalizados de duración de los recursos de empresa contienen valores no válidos
Después de resolver los problemas de datos tal y como se explica en esta sección, vuelva a ejecutar el script A1 previo a la migración para confirmar que se han solucionado.
Proyectos que 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 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
En Project Web Access de Microsoft Office Project Server 2003, haga clic en Administración.
Haga clic en Administrar las funciones de empresa.
Haga clic en Proteger 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.
Proyectos que se han editado externamente.
Un proyecto no se puede migrar si se ha modificado externamente.
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 la marca Datos modificados externamente en falso.
Proyectos con actualizaciones de estado pendientes
De forma predeterminada, si hay proyectos de Project Server 2003 con actualizaciones pendientes, no se migrarán a 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 solucionar el problema
El parámetro StopProjectMigrationIfStatusUpdatesPending del archivo de configuración de la migración se puede configurar 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.
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).
Recursos de empresa duplicados
En Project Server 2003 o en Project Server 2007 no se admite la existencia de varios recursos con el mismo nombre en el grupo 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 grupo de recursos de empresa. Esto sucede porque podría haber una sola entrada en la tabla MSP_WEB_RESOURCES de 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.
Identificación de recursos de empresa duplicados
El script A1 previo a la migración identifica recursos de empresa duplicados en caso de que estén contenidos en los datos. Si el script encuentra recursos de empresa duplicados, los datos se mostrarán de forma similar al 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 |
Identificación de recursos de empresa duplicados usados en los proyectos
El script A1 previo a la migración identifica recursos de empresa duplicados en caso de que estén contenidos en los datos. Si el script encuentra recursos de empresa duplicados, los datos se mostrarán de forma similar al siguiente ejemplo de dos recursos duplicados:
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 1), 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 el script A1 para repetir la prueba que permite comprobar la existencia de recursos de empresa duplicados en los proyectos.
Consulta 1:
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 la ejecución de la consulta 1 devuelve 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 grupo de recursos de empresa
Puede quitar un recurso duplicado del grupo 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 llevar esto a cabo.
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 realizar los pasos anteriores, intente volver a ejecutar la herramienta de migración con la opción -verify para comprobar que el problema de recursos duplicados está resuelto.
La versión del proyecto debe ser al menos "Project Server 2003 SP2a"
Microsoft admite la migración desde Project Server 2003 SP2a o SP3. Si no tiene instalado el Service Pack 2a como mínimo, deberá aplicar uno de ellos (se recomienda el más reciente, Service Pack 3).
Procedimiento para solucionar el problema
Aplique Project Server 2003 SP3 a su instalación de Project Server 2003. Para obtener más información acerca de Project Server 2003 SP3, vea el artículo de Knowledge Base de descripción de Project Server 2003 Service Pack 3 (https://go.microsoft.com/fwlink/?linkid=188720\&clcid=0xC0A).
La plantilla de la información global de la empresa se ha editado externamente
La marca "Datos modificados externamente" se establece en true cuando se edita la plantilla de la información global de la empresa fuera de Project (por ejemplo, mediante una aplicación de terceros). Project Professional buscará esta marca: si está establecida en true, Project Professional vuelve a calcular todos los datos de la plantilla de la información global de la empresa para garantizar la coherencia. Establezca esta marca en false para habilitar la migración.
Procedimiento para solucionar el problema
Abra la plantilla de la información global de la empresa en Project Professional y vuelva a guardarla en el servidor.
La plantilla de la información global de la empresa está desprotegida
La plantilla de la información global de la empresa no se debe desproteger al migrar los proyectos.
Procedimiento para solucionar el problema
Asegúrese de que la plantilla de la información global de la empresa está protegida.
En Project Server 2003 Project Web Access, haga clic en Admin.
Haga clic en Administrar las funciones de empresa.
Haga clic en Proteger proyectos de empresa y vea quién ha desprotegido la plantilla de la información global de la empresa. Coordine la protección o fuércela desde Project Web Access.
Cómo saber si la plantilla de la información global de la empresa está bloqueada
Un proyecto se bloquea si el equipo se apaga de manera anormal o si Project Professional sale del sistema de forma irregular. Si la plantilla de la información global de la empresa está bloqueada, no podrá ejecutar la herramienta de migración.
Procedimiento para solucionar el problema
La siguiente consulta SQL desbloquea la plantilla de la información global de la 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
Cómo saber 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 solucionar el problema
Trabaje en colaboración con el administrador para poner fin a la incoherencia de estado de las dos bases de datos.
Cómo saber si un recurso tiene una coma en el nombre
Project Server 2007 presenta una limitación que consiste en que los recursos de empresa (de cualquier idioma) no pueden tener un carácter de coma (,) en el nombre. El carácter debe reemplazarse por un carácter válido.
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, 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
Los campos personalizados de recursos de la empresa obligatorios no contienen valores
Los recursos de empresa que no tengan un valor especificado 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 esto sucede antes de proceder a 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.
Procedimiento para solucionar el problema
En Project Server 2003, abra el grupo de recursos de empresa y establezca los valores de los campos personalizados obligatorios o establezca los campos personalizados afectados como "No necesario". Posteriormente, puede volver a cambiarlos manualmente en Office Project Server 2007 tras la migración.
El 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 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
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 haberse modificado externamente.
Procedimiento para solucionar el problema
Para solucionar el problema, primero debe definir todos los recursos de empresa como modificados externamente. Esto puede realizarse mediante 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 guarde el grupo de recursos de empresa. Esta acción quita la marca "Datos modificados 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 grupo de recursos de empresa.
Nota
Después de haber migrado el grupo de recursos de empresa, se pueden quitar los cambios realizados en cada recurso de empresa.
Puede usar la siguiente solución general para quitar todas las marcas de modificación externa de los recursos de empresa.
Establezca todos los recursos de empresa de forma 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
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 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 de "prueba" que se agregará a cada recurso de empresa. Puede usar cualquier tipo de campo personalizado. Por ejemplo, puede usar un campo personalizado de duración de recurso, cuyo uso es poco habitual.
Nota
Si usa un campo personalizado de duración de recurso de empresa, 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 grupo 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 grupo 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.
Campos personalizados de duración de recursos de la 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 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.
Abra Project Professional 2003 conectado al servidor Project Server 2003.
En el menú Herramientas, elija Opciones de empresa y, a continuación, haga clic en Abrir información global de la empresa.
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.
En la página Personalizar campos de empresa, en la sección Campos de la ficha Campos personalizados, haga clic en Recurso.
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.
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 aparece, haga clic en Aceptar.
En la página Personalizar campos de empresa, en la sección Atributos personalizados, compruebe que Lista de valores no está seleccionado para el campo personalizado de duración de recurso de empresa seleccionado en la lista Campo. Si Lista de valores está seleccionado, seleccione Ninguno.
En la lista Campo, seleccione el resto de campos personalizados de duración de recurso de empresa que corresponde a la consulta SQL y repita los pasos 6 y 7.
Haga clic en Aceptar.
Los campos personalizados de duración de recurso de empresa contienen valores no válidos
Project Server 2010 no permite valores de duración negativos ni valores de duración mayores que 34689600. Si intenta migrar campos personalizados de duración de recurso de empresa de Project Server 2003 que contengan alguno de estos valores, la migración no se llevará a cabo.
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.
Nota
Aviso de exención de responsabilidad de traducción automática: este artículo se ha traducido con un sistema informático sin intervención humana. Microsoft ofrece estas traducciones automáticas para que los hablantes de otros idiomas distintos del inglés puedan disfrutar del contenido sobre los productos, los servicios y las tecnologías de Microsoft. Puesto que este artículo se ha traducido con traducción automática, es posible que contenga errores de vocabulario, sintaxis o gramática.