Correggere i problemi relativi ai dati identificati nello script A1 per la pre-migrazione (Project Server 2010)

Project 2010
 

Si applica a: Project Server 2010

Ultima modifica dell'argomento: 2016-11-30

Dopo aver eseguito lo script di pre-migrazione A1 sui dati di Microsoft Office Project Server 2003, verificare se nell'output generato dallo script sono presenti eventuali problemi. In questo articolo vengono descritti i metodi per risolvere i problemi relativi ai dati identificati nell'output. Sono inclusi:

  • Progetti estratti

  • Progetti che sono stati modificati esternamente

  • Progetti con aggiornamenti di stato in sospeso

  • Risorse dell'organizzazione duplicate

  • Versione del prodotto Project Server 2003 almeno con Service Pack 2a

  • Risorse dell'organizzazione duplicate nei progetti

  • Modello globale dell'organizzazione modificato esternamente

  • Modello globale dell'organizzazione estratto

  • Modello globale dell'organizzazione bloccato

  • Lingua predefinita del database delle tabelle Web e del database delle tabelle di Project non corrispondente

  • Nomi di risorse dell'organizzazione contenenti virgole

  • Campi personalizzati risorse organizzazione obbligatori privi di valori

  • Campi personalizzati risorse organizzazione obbligatori con valori non presenti nella definizione della tabella di ricerca

  • Risorse dell'organizzazione modificate esternamente

  • Campi personalizzati durata risorsa organizzazione con elenchi di valori

  • Campi personalizzati durata risorsa organizzazione con valori non validi

Dopo aver risolto i problemi relativi ai dati come indicato in questa sezione, eseguire di nuovo lo script di pre-migrazione A1 per verificare che tali problemi siano stati risolti.

Non è possibile eseguire la migrazione di un progetto estratto. È buona regola fare in modo che i dati si trovino in uno stato stabile prima della migrazione e l'archiviazione dei progetti assicura che questi si trovino in tale stato. I coordinatori della migrazione potrebbero stabilire una scadenza per i project manager per archiviare i progetti e forzare l'archiviazione di tutti i progetti oltre tale data.

Archiviare tutti i progetti estratti.

Archiviare i progetti estratti in Project Server 2003
  1. In Microsoft Office Project Server 2003 Project Web Access fare clic su Amministrazione.

  2. Fare clic su Gestisci funzionalità dell'organizzazione.

  3. Fare clic su Archiviazione progetti dell'organizzazione per visualizzare i progetti estratti. Coordinare l'archiviazione o eseguire un'operazione di archiviazione forzata da Project Web Access.

NotaNote
È inoltre possibile verificare i progetti estratti eseguendo la query SQL seguente nei database "Project Server 2003 Project tables" e "Project Server 2003 Web Tables".
select PROJ_NAME from dbo.MSP_PROJECTS where PROJ_CHECKEDOUT = 1 and PROJ_TYPE in (0, 1)
Se vengono restituiti risultati, i progetti indicati risultano estratti.

Non è possibile eseguire la migrazione di un progetto se è stato modificato esternamente.

Aprire il progetto modificato esternamente in Project Professional 2003, salvarlo e archiviarlo nuovamente nel server. Questa azione imposta il flag Externally edited su false.

Per impostazione predefinita, se i progetti di Project Server 2003 hanno aggiornamenti in sospeso, non ne viene eseguita la migrazione a Project Server 2007. Prima di eseguire la migrazione, è necessario che gli utenti accettino o rifiutino gli aggiornamenti dello stato per garantire uno stato stabile per i progetti di cui eseguire la migrazione.

Il parametro StopProjectMigrationIfStatusUpdatesPending del file di configurazione della migrazione può essere configurato in modo da consentire la migrazione di progetti con aggiornamenti in sospeso. Per ulteriori informazioni su questo parametro, vedere Configurare lo strumento di migrazione.

Come procedura consigliata da eseguire prima della migrazione, è possibile stabilire una scadenza entro la quale i project manager dovranno accettare o rifiutare gli aggiornamenti dello stato in sospeso. Oltre tale data sarà possibile forzare la migrazione di tutti i progetti, anche se lo stato non è stato aggiornato.

La presenza di più risorse con lo stesso nome nel pool delle risorse dell'organizzazione non è supportata in Project Server 2003 o 2007. Se si verifica questa situazione, potrebbe essere il risultato di modifiche dirette del database. Si noti che i nomi duplicati potrebbero non essere visualizzati in Project Professional quando si modifica il pool di risorse dell'organizzazione. Ciò si verifica perché potrebbe esistere una sola voce nella tabella MSP_WEB_RESOURCES per una risorsa dell'organizzazione con questo nome. Non è semplice risolvere questo problema ed è consigliabile chiedere aiuto al proprio esperto di Project Server. Di seguito sono riportate alcune istruzioni utili per rilevare e correggere problemi che si verificano quando sono presenti risorse dell'organizzazione duplicate.

Lo script di pre-migrazione A1 identifica le risorse dell'organizzazione duplicate se sono contenute nei dati. Se lo script rileva risorse dell'organizzazione duplicate, i dati verranno visualizzati in modo analogo all'esempio seguente di due risorse duplicate.

 

RES_UID RES_NAME RES_EUID

123

Barbara Zighetti

123

124

Barbara Zighetti

123

125

Angela Barbariol

125

126

Angela Barbariol

126

Lo script di pre-migrazione A1 identifica le risorse dell'organizzazione duplicate se sono contenute nei dati. Se lo script rileva risorse dell'organizzazione duplicate, i dati verranno visualizzati in modo analogo all'esempio seguente di due risorse duplicate.

 

RES_NAME RES_EUID

Barbara Zighetti

123

Angela Barbariol

125

Angela Barbariol

126

L'esecuzione della query seguente (query 1) restituisce gli ID di progetto associati alle risorse dell'organizzazione duplicate. È necessario eliminare questo tipo di duplicazione in modo che nei progetti venga utilizzata una sola combinazione di "RES_NAME, RES_EUID". Se esistono duplicati, è necessario designare uno dei duplicati come la risorsa "corretta" e assicurarsi che tutti i progetti utilizzino questa risorsa. (Aggiornare la colonna MSP_RESOURCES.RES_EUID per il progetto in modo che faccia riferimento alla risorsa dell'organizzazione che è stata designata come corretta). Eseguire quindi lo script A1 per ripetere il test di verifica delle risorse dell'organizzazione duplicate utilizzate nei progetti.

Query 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

Si supponga ad esempio che l'esecuzione della query 1 restituisca i risultati seguenti:

 

RES_NAME RES_EUID PROJ_ID

Angela Barbariol

125

12

Angela Barbariol

126

13

Angela Barbariol

125

14

Per correggere la situazione, è possibile scegliere 'Angela Barbariol' con RES_EUID=125 come risorsa dell'organizzazione "corretta" e correggere le righe come segue:

 

RES_NAME RES_EUID PROJ_ID

Angela Barbariol

125

12

Angela Barbariol

125

13

Angela Barbariol

125

14

Nella sezione precedente è stata designata una risorsa corretta tra quelle duplicate e i progetti sono stati corretti in modo da fare riferimento a essa. È ora necessario modificare la tabella MSP_RESOURCES in base alla risorsa corretta. Eseguire la query 4, identica alla query 1, per ottenere un elenco delle risorse dell'organizzazione duplicate. Aggiornare quindi la colonna RES_EUID relativa alla risorsa duplicata in modo che faccia riferimento alla risorsa designata come corretta.

Query 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

Si supponga ad esempio che l'esecuzione della query 4 restituisca i risultati seguenti. La riga 'Barbara Zighetti' è corretta. È necessario correggere 'Angela Barbariol'.

 

RES_UID RES_NAME RES_EUID

123

Barbara Zighetti

123

124

Barbara Zighetti

123

125

Angela Barbariol

125

126

Angela Barbariol

126

Per correggere la situazione, è possibile scegliere 'Angela Barbariol' con RES_UID=125 come risorsa "corretta" e aggiornare l'altra riga in modo che faccia riferimento a tale risorsa. Ad esempio:

 

RES_UID RES_NAME RES_EUID

123

Barbara Zighetti

123

124

Barbara Zighetti

123

125

Angela Barbariol

125

126

Angela Barbariol

125

È possibile rimuovere una risorsa duplicata dal pool di risorse dell'organizzazione facendo riferimento alla risorsa duplicata da un progetto fittizio (PROJ_ID = valore intero massimo). È inoltre necessario pulire i calendari dell'organizzazione correlati. A tale scopo, eseguire la query 5.

Query 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

Dopo aver completato i passaggi precedenti, tentare di eseguire nuovamente lo strumento di migrazione con l'opzione -verify per verificare che il problema delle risorse duplicate sia stato risolto.

Viene supportata la migrazione da Project Server 2003 SP2a o SP3. Se non è installato almeno il Service Pack 2a, sarà necessario applicarne uno (è consigliabile installare il più recente, Service Pack 3).

Applicare Project Server 2003 SP3 all'installazione di Project Server 2003. Per ulteriori informazioni su Project Server 2003 SP3, vedere l'articolo della Knowledge Base Descrizione di Project Server 2003 Service Pack 3 (http://go.microsoft.com/fwlink/?linkid=188720&clcid=0x410).

Il flag ‘Externally Edited’ viene impostato su true quando il modello globale dell'organizzazione viene modificato esternamente rispetto a Project, ad esempio tramite un'applicazione di terze parti. In Project Professional viene controllato questo flag: se è impostato su true, tutti i dati del modello globale dell'organizzazione vengono ricalcolati per garantire la coerenza. Impostare questo flag su false per consentire la migrazione.

Aprire il modello globale dell'organizzazione in Project Professional e risalvarlo sul server.

Il modello globale dell'organizzazione non deve risultare estratto durante la migrazione dei progetti.

Assicurarsi che il modello globale dell'organizzazione sia archiviato.

  1. In Project Server 2003 Project Web Access fare clic su Amministrazione.

  2. Fare clic su Gestisci funzionalità dell'organizzazione.

  3. Fare clic su Archiviazione progetti dell'organizzazione per visualizzare l'utente che ha estratto il modello globale dell'organizzazione. Coordinarne l'archiviazione o eseguire un'operazione di archiviazione forzata da Project Web Access.

Un progetto viene bloccato se il computer viene arrestato in modo anomalo o se Project Professional viene chiuso in modo anomalo. Se il modello globale dell'organizzazione è bloccato, non è possibile eseguire lo strumento di migrazione.

La query SQL seguente consente di sbloccare il modello globale dell'organizzazione. Eseguire la query SQL seguente nel database "Project Server 2003 Project tables".

Update MSP_PROJECTS set PROJ_LOCKED = 1 where PROJ_TYPE = 2

La lingua predefinita del database "Project Server 2003 Web tables" deve corrispondere a quella del database "Project Server 2003 Project tables" prima della migrazione.

Contattare l'amministratore per correggere lo stato non coerente tra i due database.

In Project Server 2007 una risorsa dell'organizzazione di qualsiasi lingua non avere un nome che include una virgola (,). Tale carattere deve essere sostituito con un carattere valido.

Eseguire la query SQL seguente nei database "Project Server 2003 Project tables" e "Project Server 2003 Web tables". Il carattere virgola verrà sostituito con un carattere di sottolineatura. Se si desidera utilizzare un carattere valido diverso, è possibile modificare la query.

-- 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

La migrazione non viene eseguita per tutte le risorse dell'organizzazione che non hanno un valore per un campo personalizzato obbligatorio dell'organizzazione, ad esempio il codice RBS. Verrà inserito un errore nel registro della migrazione durante la migrazione. È consigliabile verificare la presenza di questo scenario prima di avviare la migrazione. Se le risorse dell'organizzazione solo molto vecchie, ovvero sono state create prima che il campo personalizzato fosse impostato come ‘Obbligatorio’, oppure inattive, potrebbero non includere valori per il campo personalizzato obbligatorio.

Aprire il pool delle risorse dell'organizzazione in Project Server 2003 e impostare i valori per i campi personalizzati obbligatori o impostare i campi personalizzati interessati come 'Non necessario'. Potranno essere modificati di nuovo manualmente in Office Project Server 2007 dopo la migrazione.

Tutti i valori di un campo personalizzato di una risorsa devono trovarsi nella definizione della tabella di ricerca.

La query SQL seguente imposta i valori dei campi personalizzati delle risorse non validi su Null. Eseguire la query SQL seguente nel database "Project Server 2003 Project tables".

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

Per eseguire la migrazione delle risorse dell'organizzazione da Project Server 2003 a Project Server 2007, è necessario che tali risorse non siano state modificate esternamente.

Per risolvere il problema, è necessario innanzitutto impostare tutte le risorse dell'organizzazione come modificate esternamente. Questa operazione può essere eseguita tramite una query SQL. È quindi possibile apportare una modifica a ogni risorsa dell'organizzazione in modo che tutti gli aggiornamenti rilevanti vengano eseguiti da Project Professional quando il pool di risorse dell'organizzazione viene salvato. Questa azione consente di rimuovere il flag "externally edited" per ciascuna risorsa dell'organizzazione. Se una risorsa dell'organizzazione non viene modificata, i dati non vengono ricalcolati da Project Professional per tale risorsa. La risorsa specifica dell'organizzazione continua a essere contrassegnata come modificata esternamente e la migrazione del pool di risorse dell'organizzazione non viene eseguita.

NotaNote
Dopo la migrazione del pool di risorse dell'organizzazione, è possibile rimuovere le modifiche apportate a ciascuna risorsa dell'organizzazione.

È possibile utilizzare la soluzione generale seguente per rimuovere tutti i flag di modifica esterna dalle risorse dell'organizzazione.

  1. Impostare tutte le risorse dell'organizzazione come modificate esternamente. A tal scopo, eseguire la query SQL seguente nei database "Project Server 2003 Project tables".

    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. Aggiungere temporaneamente un campo personalizzato di risorsa irrilevante a ciascuna risorsa dell'organizzazione per forzare i ricalcoli da eseguire in Project Professional 2003. I ricalcoli forzati consentiranno di contrassegnare ogni risorsa dell'organizzazione come non modificata esternamente. Ad esempio, in Project Professional 2003 è possibile creare un campo personalizzato 'test' della risorsa che viene aggiunto a ogni risorsa dell'organizzazione. È possibile utilizzare qualsiasi tipo di campo personalizzato. È ad esempio possibile scegliere un campo personalizzato Durata risorsa, utilizzato raramente.

    NotaNote
    Se si utilizza un campo personalizzato Durata risorsa dell'organizzazione, è consigliabile non creare un elenco di valori. Non verrà eseguita la migrazione dei campi personalizzati Durata risorsa organizzazione con elenchi di valori. Quando si crea questo campo personalizzato temporaneo utilizzare un valore numerico.

    È possibile denominare il nuovo campo personalizzato "CP risorsa test". Dopo aver creato il campo personalizzato "CP risorsa test", aprire il pool di risorse dell'organizzazione e aggiungere la colonna "CP risorsa test". Impostare un valore valido per questo campo personalizzato per tutte le risorse. Salvare il pool di risorse dell'organizzazione ed eseguire la migrazione. Al termine della migrazione, rimuovere il campo personalizzato "CP risorsa test" da Microsoft Office Project Professional 2007.

I campi personalizzati Durata risorsa organizzazione con elenchi di valori associati non consentono di eseguire la migrazione.

Per risolvere il problema, è necessario rimuovere manualmente tutti gli elenchi di valori da ogni campo personalizzato Durata risorse organizzazione trovato dalla query SQL. A tal scopo, attenersi alla procedura seguente.

  1. Aprire Project Professional 2003 connesso al server Project Server 2003.

  2. Scegliere Opzioni organizzazione dal menu Strumenti e quindi fare clic su Apri modello globale organizzazione.

  3. Nella pagina Microsoft Project - Modello globale organizzazione estratto scegliere Personalizza dal menu Strumenti e quindi fare clic su Campi organizzazione.

  4. Nella pagina Personalizza campi organizzazione fare clic su Risorsa nella sezione Campi della scheda Campi personalizzati.

  5. Nell'elenco a discesa Tipo fare clic su Durata. Tutti i campi personalizzati Durata risorsa organizzazione verranno visualizzati nell'elenco Campo.

  6. Nell'elenco Campo selezionare il primo campo personalizzato Durata risorsa organizzazione che corrisponde a quelli restituiti dalla query SQL eseguita in precedenza. Nella sezione Attributi personalizzati fare clic sul pulsante Elenco valori. Nell'elenco di valori per il campo personalizzato Durata risorsa organizzazione specifico eliminare tutti i valori nella colonna Valore e quindi fare clic su OK. Nella finestra di dialogo di Microsoft Office Project visualizzata fare clic su OK.

  7. Nella pagina Personalizza campi organizzazione nella sezione Attributi personalizzati verificare che Elenco valori non sia selezionato per il campo personalizzato Durata risorsa organizzazione selezionato nell'elenco Campo . Se Elenco valori è selezionato, selezionare Nessuno.

  8. Nell'elenco Campo selezionare tutti i rimanenti campi Durata risorsa organizzazione personalizzati che corrispondono alla query SQL e ripetere i passaggi 6 e 7.

  9. Fare clic su OK.

In Project Server 2010 non sono consentiti i valori di durata negativi o maggiori di 34689600. Se si tenta di eseguire la migrazione di campi personalizzati Durata risorsa organizzazione di Project Server 2003 contenenti tali valori, la migrazione non verrà eseguita correttamente.

Per risolvere il problema, è necessario modificare manualmente il valore del campo personalizzato Durata risorsa organizzazione per ciascuno dei campi personalizzati identificati. È necessario verificare che i valori del campo siano validi, ovvero siano compresi tra 0 e 34689600.

Se il campo identificato dalla query è un campo personalizzato semplice (non un campo con una formula), è possibile modificare il valore del campo per farlo rientrare nell'intervallo consentito. Se il campo identificato dalla query è un campo con una formula, sarà necessario modificare la formula per assicurarsi che i risultati rientrino nell'intervallo di valori validi.

Mostra: