Descrição do pacote de correcção do Project Server 2010 (ficheiro Pjsrvwfe-x-none. msp): 9 de Março de 2012

Microsoft informações de suporte interno

BUGS #: 164609 (Manutenção do conteúdo)

Sumário

Este artigo descreve o problema foi corrigido no pacote de correcções do Project Server 2010, datada de 9 de Março de 2012, Microsoft Project Server 2010.

INTRODUÇÃO

Problema corrigidos neste pacote de correcção

Quando tenta aceder à página do Centro de projectos de aplicações de Web de projecto (PWA), a página não é carregada e recebe uma mensagem de erro "Erro desconhecido". Além disso, quando edita as informações do projecto numa página de detalhes do projecto (PDP), é apresentado mais do que um valor para o campo Personalizado do projecto de empresa .

Microsoft informações de suporte interno

BUGS #: 32642 (OfficeQFE)

Resolução

A correcção seguinte está disponível na Microsoft. Esta secção descreve os passos necessários para detectar e limpar os registos duplicados que provocam este problema. Depois de aplicar esta correcção, tem de executar os seguintes scripts de limpeza. Só é necessário executar os scripts de limpeza de uma vez.

Os scripts de efectuar as seguintes acções:

  • Script 1 detecta se encontrar este problema e apresenta os projectos afectados e campos personalizados.

  • Script 2 cópias a tabela afectada.

  • Script 3 remove os registos duplicados.

  • Script 4 anula a eliminação, restaurando os registos da tabela ' ' cópia de segurança.

  • Script 5 remove da tabela de cópia de segurança.

Recomendamos vivamente que teste os scripts de limpeza num ambiente de desenvolvimento, de modo a que possa validar os resultados antes de implementar os scripts num ambiente de produção. Além disso, só deve executar esta operação quando não existe nenhuma actividade do utilizador na rede.

Script 1

A seguinte consulta SQL verifica que este problema existe na base de dados. Se não são devolvidas filas, não está a ocorrer este problema. Substitua o nome de base de dados publicada do Project Server no valor do marcador de posição na primeira linha da consulta.

USE <ProjectServer_Published>
SELECT CFV.PROJ_UID, MP.PROJ_NAME, CFV.MD_PROP_UID, CFPV.MD_PROP_NAME, COUNT (*) TOTALCOUNT FROM MSP_PROJ_CUSTOM_FIELD_VALUES AS CFV
INNER JOIN MSP_PROJECTS AS MP ON CFV.PROJ_UID=MP.PROJ_UID
INNER JOIN MSP_CUSTOM_FIELDS_PUBLISHED_VIEW AS CFPV
ON CFV.MD_PROP_UID=CFPV.MD_PROP_UID
where CFPV.MD_PROP_MAX_VALUES=1
GROUP BY CFV.PROJ_UID,MP.PROJ_NAME, CFV.MD_PROP_UID, CFPV.MD_PROP_NAME HAVING COUNT (*) >1
ORDER BY TOTALCOUNT DESC


Script 2

Script 2 cria uma tabela que tem o nome MSP_PROJ_CUSTOM_FIELD_VALUES_Backup e cópias de segurança os registos na tabela MSP_PROJ_CUSTOM_FIELD_VALUES. Certifique-se de que executa este script uma vez antes de executar o Script 3. Se pretender anular a operação de limpeza é executada por script 3, pode voltar a executar o script 2.

USE <ProjectServer_Published>
SELECT * INTO MSP_PROJ_CUSTOM_FIELD_VALUES_BACKUP FROM MSP_PROJ_CUSTOM_FIELD_VALUES



Script 3

Script 3 detecta primeiro se tem este problema. Se não notar este problema, é efectuada nenhuma acção. Se estiver a ter este problema, o script remove os registos duplicados.

USE <ProjectServer_Published>
DECLARE @ITERATIONS AS INT
SET @ITERATIONS=
(SELECT TOP 1 COUNT (*) TOTALCOUNT FROM MSP_PROJ_CUSTOM_FIELD_VALUES AS CFV
INNER JOIN MSP_PROJECTS AS MP ON CFV.PROJ_UID=MP.PROJ_UID
INNER JOIN MSP_CUSTOM_FIELDS_PUBLISHED_VIEW AS CFPV ON CFV.MD_PROP_UID=CFPV.MD_PROP_UID
INNER JOIN MSP_CUSTOM_FIELDS AS CF ON CFV.MD_PROP_UID = CF.MD_PROP_UID
WHERE CF.MD_PROP_MAX_VALUES=1
GROUP BY CFV.PROJ_UID,MP.PROJ_NAME, CFV.MD_PROP_UID, CFPV.MD_PROP_NAME
HAVING COUNT (*) >1
ORDER BY TOTALCOUNT DESC )-1

IF @ITERATIONS IS NULL
BEGIN
PRINT 'DID NOT FIND ANY DUPLICATES TO PROCESS'

END
ELSE
BEGIN

PRINT 'TOTAL ITERATIONS TO PROCESS: '
PRINT @ITERATIONS

WHILE @ITERATIONS <>0
BEGIN
PRINT 'ITERATION COUNT: '
PRINT @ITERATIONS

DECLARE @PROJ_UID AS UNIQUEIDENTIFIER
DECLARE @MD_PROP_UID AS UNIQUEIDENTIFIER
DECLARE @MOD_DATE AS DATETIME
DECLARE ACDELETEDUPLICATERECORDS CURSOR FOR

SELECT PROJ_UID, MD_PROP_UID, MIN(MOD_DATE) AS MOD_DATE FROM MSP_PROJ_CUSTOM_FIELD_VALUES WHERE PROJ_UID IN
(
SELECT CFV.PROJ_UID FROM MSP_PROJ_CUSTOM_FIELD_VALUES AS CFV
INNER JOIN MSP_PROJECTS AS MP ON CFV.PROJ_UID=MP.PROJ_UID
INNER JOIN MSP_CUSTOM_FIELDS_PUBLISHED_VIEW AS CFPV
ON CFV.MD_PROP_UID=CFPV.MD_PROP_UID
INNER JOIN MSP_CUSTOM_FIELDS AS CF
ON CFV.MD_PROP_UID = CF.MD_PROP_UID
WHERE CF.MD_PROP_MAX_VALUES=1
GROUP BY CFV.PROJ_UID,MP.PROJ_NAME, CFV.MD_PROP_UID, CFPV.MD_PROP_NAME HAVING COUNT (*) >1
)
AND MD_PROP_UID IN
(
SELECT CFV.MD_PROP_UID FROM MSP_PROJ_CUSTOM_FIELD_VALUES AS CFV
INNER JOIN MSP_PROJECTS AS MP ON CFV.PROJ_UID=MP.PROJ_UID
INNER JOIN MSP_CUSTOM_FIELDS_PUBLISHED_VIEW AS CFPV
ON CFV.MD_PROP_UID=CFPV.MD_PROP_UID
INNER JOIN MSP_CUSTOM_FIELDS AS CF
ON CFV.MD_PROP_UID = CF.MD_PROP_UID
WHERE CF.MD_PROP_MAX_VALUES=1
GROUP BY CFV.PROJ_UID,MP.PROJ_NAME, CFV.MD_PROP_UID, CFPV.MD_PROP_NAME HAVING COUNT (*) >1
)

GROUP BY PROJ_UID, MD_PROP_UID
HAVING COUNT (*) >1
ORDER BY PROJ_UID

OPEN ACDELETEDUPLICATERECORDS
FETCH NEXT FROM ACDELETEDUPLICATERECORDS
INTO @PROJ_UID, @MD_PROP_UID, @MOD_DATE
WHILE @@FETCH_STATUS =0

BEGIN

DELETE FROM MSP_PROJ_CUSTOM_FIELD_VALUES
WHERE PROJ_UID=@PROJ_UID
AND MD_PROP_UID=@MD_PROP_UID
AND MOD_DATE=@MOD_DATE

FETCH NEXT FROM ACDELETEDUPLICATERECORDS
INTO @PROJ_UID, @MD_PROP_UID, @MOD_DATE

END

CLOSE ACDELETEDUPLICATERECORDS
DEALLOCATE ACDELETEDUPLICATERECORDS

SET @ITERATIONS = @ITERATIONS-1
END
END


Script 4

Execute script 4 apenas se pretender anular a operação de limpeza foi efectuada pelo script 3. Na maioria dos casos, não tem de utilizar este script. No entanto, o script é fornecido caso seja necessário. Script 4 funciona restaurando os registos que script 2 efectuada cópia de segurança.

Nota Não execute o script 4 depois do sistema é colocado novamente na produção. A cópia de segurança é um instantâneo no tempo e, se restaurar esta cópia de segurança após serem efectuadas novas edições, estas alterações serão perdidas.

USE <ProjectServer_Published>
DELETE FROM MSP_PROJ_CUSTOM_FIELD_VALUES
INSERT INTO MSP_PROJ_CUSTOM_FIELD_VALUES
SELECT * FROM MSP_PROJ_CUSTOM_FIELD_VALUES_BACKUP


Script 5

Para remover a tabela de cópia de segurança, execute o seguinte script.

USE <ProjectServer_Published>
DROP TABLE MSP_PROJ_CUSTOM_FIELD_VALUES_BACKUP




Informações sobre correção

Existe uma correção suportada pela Microsoft. No entanto, esta correcção destina-se apenas a corrigir os problemas descritos neste artigo. Aplique esta correcção apenas em sistemas que tenham os problemas descritos neste artigo. Esta correcção poderá ser submetida a testes adicionais. Por conseguinte, se não estiver a ser gravemente afetado por este problema, recomendamos que aguarde pela próxima atualização de software que contenha esta correção.

Se a correcção estiver disponível para transferência, existirá uma secção de "Transferência de correcção disponível" na parte superior deste artigo da Base de dados de conhecimento. Se esta secção não for apresentada, contacte o Suporte ao Cliente da Microsoft para obter a correção.

Nota Caso ocorram problemas adicionais ou se for necessária a resolução de problemas, poderá ter de criar um pedido de assistência separado. Os custos de normais do suporte serão aplicados a questões de suporte adicional e problemas incluídos nesta correção específica. Para uma lista completa dos números de telefone de suporte e serviço de cliente da Microsoft ou para criar um pedido de assistência separado, visite o seguinte site da Microsoft:

Nota O formulário "Transferência de correcção disponível" apresenta os idiomas nos quais a correcção está disponível. Se não visualizar o seu idioma, é porque uma correcção não está disponível para esse idioma.

Pré-requisitos

Para instalar este pacote de correcção, tem de ter o Project Server 2010 ou o Project Server 2010 Service Pack 1 instalado.

Requisito de reinício

Não poderá ter de reiniciar o computador depois de aplicar esta correcção.

Informações sobre substituição da correção

Esta correção não substitui uma correção disponibilizada anteriormente.

Informações de registo

Para utilizar uma das correcções neste pacote, não é necessário efectuar alterações ao registo.

Informações de ficheiro

Esta correcção poderá não conter todos os ficheiros que necessita para actualizar completamente um produto para a compilação mais recente. Esta correcção contém apenas os ficheiros que tem de ter para resolver os problemas listados neste artigo.

A versão global deste pacote de correcção utiliza um pacote do Microsoft Windows Installer para instalar o pacote de correcção. As datas e horas destes ficheiros são listadas na hora Universal Coordenada (UTC) na seguinte tabela. Quando visualiza as informações do ficheiro, a data é convertida para a hora local. Para determinar a diferença entre a UTC e a hora local, utilize o separador Fuso Horário no item Data e Hora no Painel de Controlo.

Informações de transferência

Precisa de mais ajuda?

Aumente os seus conhecimentos
Explore as formações
Seja o primeiro a obter novas funcionalidades
Aderir ao Microsoft insiders

As informações foram úteis?

Obrigado pelos seus comentários!

Obrigado pelo seu feedback! Parece que poderá ser benéfico reencaminhá-lo para um dos nossos agentes de suporte do Office.

×