Descrizione del pacchetto hotfix di Project Server 2010 (Pjsrvwfe-x-None. msp): 9 marzo 2012

Informazioni di supporto interne di Microsoft

BUG #: 164609 (manutenzione del contenuto)

Riepilogo

In questo articolo viene descritto il problema di Microsoft Project Server 2010 che è stato risolto nel pacchetto hotfix di Project Server 2010 datato 9 marzo 2012.

INTRODUZIONE

Problema che questo pacchetto di hotfix risolve

Quando si tenta di accedere alla pagina del Centro progetti in Project Web Apps (PWA), la pagina non viene caricato e viene visualizzato un messaggio di errore "Errore sconosciuto". Inoltre, quando si modificano le informazioni di progetto in una pagina di dettaglio progetto (PDP), viene visualizzato più di un valore per il campo Personalizzato progetto organizzazione .

Informazioni di supporto interne di Microsoft

BUG #: 32642 (OfficeQFE)

Risoluzione

Il seguente aggiornamento rapido è disponibile da Microsoft. In questa sezione vengono descritti i passaggi necessari per rilevare ed eliminare i record duplicati che causano questo problema. Dopo avere applicato questo hotfix, è necessario eseguire il seguente script di pulitura. È sufficiente eseguire gli script di pulitura una sola volta.

Gli script di eseguono le operazioni seguenti:

  • Script 1 rileva se si sta verificando questo problema e vengono visualizzati i progetti interessati e campi personalizzati.

  • Script 2 esegue il backup della tabella interessata.

  • Script 3 rimuove i record duplicati.

  • 4 script Annulla l'eliminazione ripristinando i record dalla tabella di backup.

  • 5 script rimuove la tabella di backup.

Si consiglia di verificare gli script di pulitura in un ambiente di sviluppo in modo che è possibile convalidare i risultati prima di implementare gli script in un ambiente di produzione. Inoltre, si deve solo eseguire questa operazione quando è presente alcuna attività degli utenti della rete.

Script 1

La query SQL seguente consente di verificare che il problema è presente nel database. Se viene restituita alcuna riga, il problema non si verificano. Sostituire il nome del database pubblicato di Project Server il valore di segnaposto nella prima riga della query.

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 crea una tabella denominata MSP_PROJ_CUSTOM_FIELD_VALUES_Backup che esegue il backup del record della tabella MSP_PROJ_CUSTOM_FIELD_VALUES. Assicurarsi che si esegue questo script una volta prima di eseguire Script 3. Se si desidera annullare l'operazione di pulizia viene eseguita tramite script 3, è possibile rieseguire script 2.

USE <ProjectServer_Published>
SELECT * INTO MSP_PROJ_CUSTOM_FIELD_VALUES_BACKUP FROM MSP_PROJ_CUSTOM_FIELD_VALUES



Script 3

Script 3 innanzitutto rilevato se si sta verificando questo problema. Se non si sta verificando questo problema, viene intrapresa alcuna azione. Se si sta verificando questo problema, lo script rimuove i record duplicati.

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

Eseguire script 4 solo se si desidera annullare l'operazione di pulitura eseguite dallo script 3. Nella maggior parte dei casi, non è necessario utilizzare questo script. Tuttavia, lo script viene fornito nel caso in cui sia necessario. Script 4 funziona ripristinando i record di script 2 il backup.

Nota: Non eseguire script 4 dopo il sistema viene reinserito nell'ambiente di produzione. Il backup è un'istantanea nel tempo e se si ripristina il backup dopo aver apportate nuove modifiche, queste modifiche andranno persi.

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

Per rimuovere la tabella di backup, eseguire lo script seguente.

USE <ProjectServer_Published>
DROP TABLE MSP_PROJ_CUSTOM_FIELD_VALUES_BACKUP




Informazioni sull'hotfix

Un hotfix supportato è disponibile da Microsoft. Tuttavia, questo hotfix è destinato a correggere solo i problemi descritti in questo articolo. Applicare questo hotfix solo ai sistemi in cui si verificano i problemi descritti in questo articolo. Questo hotfix potrebbe essere sottoposto ad ulteriori test. Se il problema non causa gravi difficoltà, si consiglia di attendere il successivo aggiornamento software contenente tale hotfix.

Se l'hotfix è disponibile per il download, è presente una sezione "Hotfix disponibile per il download" all'inizio di questo articolo della Knowledge Base. Se questa sezione non viene visualizzata, contattare il servizio clienti Microsoft e supporto tecnico per ottenere l'hotfix.

Nota: Se si verificano ulteriori problemi o se è necessaria attività di risoluzione aggiuntiva, potrebbe essere necessario creare una richiesta di assistenza separata. I costi di supporto normale verranno applicati per eventuali ulteriori domande e problemi che non dovessero rientrare specifico hotfix in questione. Per un elenco completo dei numeri di telefono del servizio clienti Microsoft e supporto tecnico o per creare una richiesta di assistenza separata, visitare il seguente sito Web Microsoft:

Nota: Il modulo "Hotfix disponibile per il download" Visualizza le lingue per cui è disponibile l'hotfix. Se non viene visualizzata la lingua, è perché un aggiornamento rapido non è disponibile per tale lingua.

Prerequisiti

Per installare questo hotfix, è necessario disporre di Project Server 2010 o Project Server 2010 Service Pack 1.

Richiesta di riavvio

Non è necessario riavviare il computer dopo avere applicato questo hotfix.

Informazioni sulla sostituzione dell'aggiornamento rapido

Questo hotfix non sostituisce un aggiornamento rapido precedentemente rilasciato.

Informazioni del Registro di sistema

Per utilizzare uno degli aggiornamenti rapidi in questo pacchetto, non è necessario apportare modifiche al Registro di sistema.

Informazioni sui file

Questo hotfix potrebbe non contenere tutti i file necessari per aggiornare completamente un prodotto all'ultima build. Questo hotfix contiene solo i file che è necessario disporre di risolvere i problemi elencati in questo articolo.

La versione globale di questo hotfix viene utilizzato un pacchetto di Microsoft Windows Installer per installare il pacchetto di hotfix. Le date e ore per questi file sono elencate in base al formato UTC (Coordinated Universal Time Coordinated) nella tabella seguente. Quando si visualizzano le informazioni sul file, la data viene convertita in ora locale. Per calcolare la differenza tra ora UTC e ora locale, utilizzare la scheda fuso orario nell'elemento di data e ora nel Pannello di controllo.

Informazioni sul download

Serve aiuto?

Amplia le tue competenze
Esplora i corsi di formazione
Ottieni in anticipo le nuove caratteristiche
Partecipa a Microsoft Insider

Queste informazioni sono risultate utili?

Grazie per il feedback!

×