Hemos considerado interesante traducir el siguiente artículo de nuestro colega Dragos Diamandescu, ya que pensamos nos puede resultar útil en nuestro día a día con Project Server 2007. El artículo original puede ser encontrado en el siguiente enlace:

http://blogs.technet.com/frenchpjblog/archive/2010/01/29/an-unknow-error-has-occured-lors-de-l-enregistrement-d-une-lookup-table-project-server-2007.aspx

Aunque se trate de un error no muy común, nos podemos encontrar con él en determinadas circunstancias, independientemente del nivel de Service Pack y actualización acumulativa en la que nos encontremos.

¿En qué consiste precisamente este error? Pues que nos encontramos con un “error desconocido” al intentar guardar una tabla de consulta en la cual hemos hecho una modificación.

Para comprender lo que está sucediendo, y cuál es la causa de este mensaje de error, debemos examinar detenidamente las tablas de la base de datos Published llamadas MSP_LOOKUP_TABLE_VALUES y MSP_LOOKUP_TABLE_STRUCTURES

El número de filas de cada tabla debe ser el mismo. Si no fuera así, estaremos ante un caso de que en una de las tablas, MSP_LOOKUP_TABLE_STRUCTURES, existen líneas huérfanas, las cuales pueden estar causando el problema que nos encontramos.

Podemos encontrar los registros huérfanos mediante la siguiente consulta:

<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<

SELECT

LTS.CREATED_DATE  as LTS_CREATED_DATE,

LTS.LT_STRUCT_UID as LTS_LT_STRUCT_UID,

LTV.LT_STRUCT_UID as LTV_LT_STRUCT_UID,

LTV.LT_VALUE_TEXT as LTV_LT_VALUE_TEXT,

LTV.LT_VALUE_FULL as LTV_LT_VALUE_FULL

FROM MSP_LOOKUP_TABLE_STRUCTURES as LTS

LEFT OUTER JOIN MSP_LOOKUP_TABLE_VALUES as LTV

ON LTS.LT_STRUCT_UID = LTV.LT_STRUCT_UID

WHERE LTV.LT_STRUCT_UID IS NULL

ORDER BY LTV.LT_VALUE_TEXT

>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

La cual nos dará algún resultado en caso de que exista esta condición. En caso de tener este problema, las líneas de los registros que devuelve ejecutar la consulta anterior, se refieren a la tabla MSP_LOOKUP_TABLE_STRUCTURES, y no tienen equivalente en la tabla MSP_LOOKUP_TABLE_VALUES.

Antes de continuar arreglando esto, es conveniente que realicemos un backup de nuestro entorno, y verifiquemos es funcional.

Mediante la siguiente consulta eliminaremos los registros huérfanos, y podremos resolver el problema que no nos permite guardar la tabla de consulta:

<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<

DELETE FROM dbo.MSP_LOOKUP_TABLE_STRUCTURES

WHERE LT_STRUCT_UID IN

(SELECT

LTS.LT_STRUCT_UID as LTS_LT_STRUCT_UID

FROM MSP_LOOKUP_TABLE_STRUCTURES as LTS

LEFT OUTER JOIN MSP_LOOKUP_TABLE_VALUES as LTV

ON LTS.LT_STRUCT_UID = LTV.LT_STRUCT_UID

WHERE LTV.LT_STRUCT_UID IS NULL)

>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

Esperamos os resulte de ayuda, un saludo

Jorge Puig