Freigeben über


Überprüfung und Bereinigung vor der Migration

Letzte Aktualisierung: Mai 2009

 

Letztes Änderungsdatum des Themas: 2015-02-27

Inhalt dieses Artikels:

  • Ausführen des Migrationstools mit der Option "-verify"

  • Ausführen von manuellen Tests für Migrationsprobleme

In diesem Artikel wird beschrieben, wie Sie überprüfen, ob sich die für die Migration vorgesehenen Microsoft Office Project Server 2003-Quelldaten in einem gültigen Status für die Migration zu Microsoft Office Project Server 2007 befinden. Im Artikel werden nützliche Tools beschrieben, um zu überprüfen, dass die für die Migration vorgesehenen Daten nicht ungültig oder defekt sind. Hierzu gehören die Option -verify des Migrationstools und die SQL-Abfragen für Ihre Project Server 2003-Datenbanken. Außerdem werden allgemeine Prüfungen beschrieben, die Sie in der Project Server 2003-Umgebung vor der Migration ausführen sollten.

Wichtig

Je nach Größe der Datenbank kann die Migration ein sehr zeitaufwändiger Vorgang sein. (Weitere Informationen finden Sie unter Migrationsleistungsdaten für Project Server 2007.) Falls die globale Datenmigration (beispielsweise aufgrund von doppelten Enterprise-Ressourcen) während der Ausführung fehlschlägt, müssen Sie die Ursache des Problems beheben und die globale Datenmigration neu starten. Wenn Sie vor der Migration eine Überprüfung und Bereinigung ausführen, können Sie die Wahrscheinlichkeit von Migrationsfehlern erheblich reduzieren.

Ausführen des Migrationstools mit der Option "-verify"

Mit der Option -verify des Migrationstools werden die Project Server 2003-Daten auf folgende Elemente überprüft:

  • Ausgecheckte Projekte

  • Projekte, die extern geändert wurden

  • Projekte mit ausstehenden Statusaktualisierungen

  • Doppelte Enterprise-Ressourcen

Das Migrationstool bestimmt, ob Änderungen an den Daten vorgenommen werden müssen, damit sie für die Migration geeignet sind. Diese Änderungen werden in die Migrationsprotokolldatei geschrieben. Die Daten werden durch das Tool nicht korrigiert.

Beachten Sie, dass die Option -verify nicht die einzigen Überprüfungen darstellt, die Sie für die Daten ausführen müssen. Sie müssen auch die anderen in diesem Artikel aufgeführten Überprüfungsvorgänge ausführen, um sicherzustellen, dass sich die Daten in einem gültigen Status für die Migration befinden.

Sie sollten die generierte Protokolldatei lesen und alle nötigen Änderungen an den Project Server 2003-Daten vornehmen, um Probleme zu vermeiden, die bei der Migration der Daten auftreten können.

Tipp

Beim Ausführen des Migrationstools mit der Option -verify werden keine globalen Daten oder Projektdaten migriert, auch wenn die Migrationskonfigurationsdatei entsprechend konfiguriert wurde.

Bestimmen, ob Projekte ausgecheckt sind

Ein Projekt kann nicht migriert werden, wenn es ausgecheckt ist. Vor jeder Migration sollten die Dateien in einen stabilen Status gebracht werden – durch das bewusste Einchecken von Projekten stellen Sie sicher, dass sich ein Projekt in einem stabilen Status für die Migration befindet. Migrationskoordinatoren können einen Stichtag für Projektmanager festlegen, bis zu dem diese ihre Projekte einchecken müssen. Nach diesem Datum kann das Einchecken für alle Projekte erzwungen werden.

Vorgehensweise zum Feststellen des Problems

Wenn ein für die Migration vorgesehenes Projekt ausgecheckt ist, während Sie das Migrationstool mit der Option -verify ausführen, wird in der Konsole und im Protokoll eine Meldung ähnlich der Folgenden angezeigt:

Die folgenden Projekte sind ausgecheckt. Diese Projekte werden nicht mithilfe des Migrationstools migriert (das Migrationstool wird nicht beendet, es überspringt diese Projekte einfach). Checken Sie diese Projekte ein.

Test erfolgreich Test nicht erfolgreich

Die oben beschriebene Meldung wird nicht angezeigt, wenn alle Projekte eingecheckt sind.

Die Meldung wird angezeigt, gefolgt von den Projektnamen. Jeder Projektname wird in einer separaten Zeile angezeigt.

Vorgehensweise zum Beheben des Problems

Checken Sie alle ausgecheckten Projekte ein.

Einchecken aller ausgecheckten Projekte in Project Server 2003

  1. Klicken Sie in Project Server 2003 Project Web Access auf Admin.

  2. Klicken Sie auf Enterprise-Features verwalten.

  3. Klicken Sie auf Enterprise-Projekte einchecken, um zu sehen, welche Projekte ausgecheckt sind. Koordinieren Sie das Einchecken, oder erzwingen Sie das Einchecken mithilfe von Project Web Access.

Tipp

Sie können auch nach ausgecheckten Projekten suchen, indem Sie die folgende SQL-Abfrage in den Datenbanken Project Server 2003Project tables und Project Server 2003Web Tables ausführen.
select PROJ_NAME from dbo.MSP_PROJECTS where PROJ_CHECKEDOUT = 1 and PROJ_TYPE in (0, 1)
Wenn Ergebnisse zurückgegeben werden, sind die angegebenen Projekte noch ausgecheckt.

Bestimmen, ob Projekte extern bearbeitet wurden

Ein Projekt kann nicht migriert werden, wenn es extern bearbeitet wurde.

Vorgehensweise zum Feststellen des Problems

Wenn Sie das Migrationstool mit der Option -verify ausführen und ein zu migrierendes Projekt extern bearbeitet wurde, wird in der Konsole und im Protokoll eine Meldung ähnlich der Folgenden angezeigt:

Die folgenden Projekte wurden extern geändert. Diese Projekte werden nicht mithilfe des Migrationstools migriert (das Migrationstool wird nicht beendet, es überspringt diese Projekte einfach). Öffnen Sie die Projekte in Project Professional 2003, und speichern Sie sie wieder in Project Server 2003.

Test erfolgreich Test nicht erfolgreich

Die oben beschriebene Meldung wird nicht angezeigt, wenn kein Projekt extern bearbeitet wurde.

Die Meldung wird angezeigt, gefolgt von den Projektnamen. Jeder Projektname wird in einer separaten Zeile angezeigt.

Vorgehensweise zum Beheben des Problems

Öffnen Sie das extern bearbeitete Projekt in Project Professional 2003. Speichern Sie es, und checken Sie es wieder auf dem Server ein. Durch diese Aktion sollte das Attribut für externe Bearbeitung auf false festgelegt werden.

Tipp

Sie können auch nach extern bearbeiteten Projekten suchen, indem Sie die folgende SQL-Abfrage in den Datenbanken Project Server 2003 Project tables und Project Server 2003 Web Tables ausführen.
select PROJ_NAME from dbo.MSP_PROJECTS where (PROJ_EXT_EDITED = 1 or RESERVED_BINARY_DATA is null) and PROJ_TYPE in (0, 1)

Wenn Zeilenergebnisse zurückgegeben werden, wurden die angegebenen Projekte extern bearbeitet.

Bestimmen, ob für Projekte Statusaktualisierungen ausstehen

Standardmäßig werden Project Server 2003-Projekte mit ausstehender Statusaktualisierung nicht zu Office Project Server 2007 migriert. Vor der Migration sollten Benutzer Statusaktualisierungen genehmigen oder ablehnen, um sicherzustellen, dass die Projekte sich in einem stabilen Status für die Migration befinden.

Vorgehensweise zum Feststellen des Problems

Wenn für ein Projekt ausstehende Statusaktualisierungen vorhanden sind, während Sie das Migrationstool mit der Option -verify ausführen, wird in der Konsole und im Protokoll eine Meldung ähnlich der Folgenden angezeigt:

Für die folgenden Projekte sind ausstehende Statusaktualisierungen vorhanden. Diese Projekte werden nicht mithilfe des Migrationstools migriert (das Migrationstool wird nicht beendet, es überspringt diese Projekte einfach). Übernehmen Sie die ausstehenden Aktualisierungen.

Test erfolgreich Test nicht erfolgreich

Die oben beschriebene Meldung wird nicht angezeigt, wenn für kein Projekt ausstehende Statusaktualisierungen vorhanden sind.

Die Meldung wird angezeigt, gefolgt von den Projektnamen. Jeder Projektname wird in einer separaten Zeile angezeigt.

Vorgehensweise zum Beheben des Problems

Der StopProjectMigrationIfStatusUpdatesPending-Parameter in der Migrationskonfigurationsdatei kann so konfiguriert werden, dass die Migration von Projekten mit ausstehenden Aktualisierungen zulässig ist. Weitere Informationen zu diesem Parameter finden Sie unter Konfigurieren des Migrationstools für Project Server.

Es hat sich bewährt, im Rahmen der Migrationsvorbereitung einen Stichtag für Projektmanager festzulegen, bis zu dem sie ausstehende Statusaktualisierungen annehmen oder ablehnen müssen. Nach diesem Datum können Sie das Migrieren aller Projekte erzwingen (selbst wenn die Statusaktualisierungen nicht aktuell sind).

Tipp

Sie können auch nach Projekten mit ausstehenden Statusaktualisierungen suchen, indem Sie die folgende SQL-Abfrage in der Datenbank Project Server 2003Web tables ausführen.
select distinct PROJ_NAME from dbo.MSP_WEB_ASSIGNMENTS wa, dbo.MSP_WEB_TRANSACTIONS trans, dbo.MSP_WEB_PROJECTS wp where wa.WPROJ_ID = wp.WPROJ_ID and trans.WASSN_ID = wa.WASSN_ID and trans.WTRANS_STATE in (0, 1, 2)
Wenn Ergebnisse zurückgegeben werden, sind für die angegebenen Projekte noch ausstehende Statusaktualisierungen vorhanden.

Bestimmen, ob doppelte Enterprise-Ressourcen vorhanden sind

Mehrere Ressourcen im Enterprise-Ressourcenpool mit dem gleichen Namen werden in Project 2003 oder Project 2007 nicht unterstützt. Wenn diese Situation auftritt, ist sie möglicherweise das Ergebnis von direkten Datenbankbearbeitungen. Beachten Sie, dass die doppelten Namen möglicherweise in Project Professional nicht angezeigt werden, wenn Sie den Enterprise-Ressourcenpool bearbeiten. Das liegt daran, dass in der MSP_WEB_RESOURCES-Tabelle möglicherweise nur ein Eintrag für eine Enterprise-Ressource mit dem Namen vorhanden ist. Es gibt keine einfache Möglichkeit, das Problem zu lösen. Wenden Sie sich an Ihren Project Server-Experten, um das Problem zu lösen. Nachfolgend finden Sie einige Richtlinien, um Probleme mit doppelten Enterprise-Ressourcen zu suchen und zu beheben.

Vorgehensweise zum Feststellen des Problems

Wenn doppelte Enterprise-Ressourcen vorhanden sind, während Sie das Migrationstool mit der Option -verify ausführen, wird in der Konsole und im Protokoll eine Meldung ähnlich der Folgenden angezeigt:

Der Enterprise-Ressourcenpool enthält doppelte Einträge für die folgenden Ressourcen. Dieses Szenario wird in Project 2003 nicht unterstützt und kann zu Fehlern bei der Migration der Enterprise-Ressourcen führen. Stellen Sie sicher, dass keine doppelten Ressourcen vorhanden sind, bevor Sie mit der Migration beginnen.

Test erfolgreich Test nicht erfolgreich

Die oben beschriebene Meldung wird nicht angezeigt, wenn keine doppelten Enterprise-Ressourcen vorhanden sind.

Die Meldung wird angezeigt, gefolgt von den Ressourcennamen. Jeder Ressourcenname wird in einer separaten Zeile angezeigt.

Tipp

Sie können auch nach doppelten Enterprise-Ressourcen suchen, indem Sie die folgende SQL-Abfrage in der Datenbank Project Server 2003 Project tables ausführen. Mit der Abfrage wird eine Liste aller doppelten Enterprise-Ressourcen im Enterprise-Ressourcenpool generiert.
Abfrage 1:
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
Wenn das Skript doppelte Enterprise-Ressourcen findet, werden die Daten ähnlich wie im folgenden Beispiel mit zwei doppelten Ressourcen angezeigt.

RES_UID RES_NAME RES_EUID

123

Peter Krebbs

123

124

Peter Krebbs

123

125

Brad Sutton

125

126

Brad Sutton

126

Suchen nach doppelten Enterprise-Ressourcen in Projekten

Mit der folgenden SQL-Abfrage suchen Sie doppelte Enterprise-Ressourcen, die in Projekten verwendet werden. Da sich die folgenden Abschnitte auf diese Abfrage beziehen, wird die Abfrage Abfrage 2 genannt.

Abfrage 2:

select  distinct 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 and res_euid is not null  order by res_name, res_euid asc

Durch das Ausführen der Abfrage erhalten Sie eine Liste von doppelten Enterprise-Ressourcen, die in Projekten verwendet werden. Wenn Sie nur eine Zeile pro Ressourcennamen sehen, führen Sie Abfrage 4 im Abschnitt "Korrigieren von doppelten Enterprise-Ressourcen und Verweisen auf die richtige Enterprise-Ressource" aus. Wenn Sie mehrere Zeilen pro Ressourcennamen sehen, führen Sie Abfrage 3 im Abschnitt "Korrigieren von Projekten, die doppelte Enterprise-Ressourcen verwenden" aus.

Im folgenden Beispiel werden zwei Instanzen von "Brad Sutton" in Projekten verwendet. Das muss behoben werden.

RES_NAME RES_EUID

Peter Krebbs

123

Brad Sutton

125

Brad Sutton

126

Korrigieren von Projekten, die doppelte Enterprise-Ressourcen verwenden

Die folgende Abfrage (Abfrage 3) gibt Projekt-IDs der Projekte zurück, denen doppelte Enterprise-Ressourcen zugeordnet sind. Sie müssen diese Art der Duplizierung vermeiden, sodass nur eine es_name, res_euid-Kombination in den Projekten verwendet wird. Wenn Duplikate vorhanden sind, müssen Sie eines der Duplikate als die richtige Ressource festlegen und sicherstellen, dass alle Projekte diese Ressource verwenden. (Aktualisieren Sie die MSP_RESOURCES.RES_EUID-Spalte für das Projekt, um auf die Enterprise-Ressource zu verweisen, die Sie als die richtige bestimmt haben.) Führen Sie danach Abfrage 2 aus, um den Überprüfungstest für doppelte Enterprise-Ressourcen in Projekten zu wiederholen.

Abfrage 3:

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

Angenommen, Skript 3 gibt die folgenden Ergebnisse zurück:

RES_NAME RES_EUID PROJ_ID

Brad Sutton

125

12

Brad Sutton

126

13

Brad Sutton

125

14

Sie können das Problem beheben, indem Sie "Brad Sutton" mit RES_EUID=125 als richtige Enterprise-Ressource auswählen und die Zeilen wie folgt korrigieren:

RES_NAME RES_EUID PROJ_ID

Brad Sutton

125

12

Brad Sutton

125

13

Brad Sutton

125

14

Korrigieren von doppelten Enterprise-Ressourcen und Verweisen auf die richtige Enterprise-Ressource

Im vorherigen Abschnitt haben Sie unter den Duplikaten die richtige Ressource bestimmt und die Projekte korrigiert, damit sie auf die richtige Enterprise-Ressource verweisen. Jetzt müssen Sie in der MSP_RESOURCES-Tabelle die Ressource entsprechend ändern. Führen Sie Abfrage 4 aus (identisch mit Abfrage 1), um eine Liste der doppelten Enterprise-Ressourcen zu erhalten. Aktualisieren Sie dann die RES_EUID-Spalte für die doppelte Ressource, und verweisen Sie auf die Ressource, die Sie als richtige bestimmt haben.

Abfrage 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

Angenommen, Abfrage 4 gibt die folgenden Ergebnisse zurück. Die Zeile "Peter Krebbs" ist richtig. "Brad Sutton" muss berichtigt werden.

RES_UID RES_NAME RES_EUID

123

Peter Krebbs

123

124

Peter Krebbs

123

125

Brad Sutton

125

126

Brad Sutton

126

Sie können das Problem beheben, indem Sie "Brad Sutton" mit RES_UID=125 als richtige Ressource auswählen und die andere Zeile, die darauf verweist, aktualisieren. Zum Beispiel:

RES_UID RES_NAME RES_EUID

123

Peter Krebbs

123

124

Peter Krebbs

123

125

Brad Sutton

125

126

Brad Sutton

125

Entfernen der doppelten Ressource aus dem Enterprise-Ressourcenpool

Sie können eine doppelte Ressource aus dem Enterprise-Ressourcenpool entfernen, indem Sie die doppelte Ressource auf ein Scheinprojekt verweisen (PROJ_ID = maximaler Ganzzahlwert). Zusätzlich müssen auch die zugehörigen Enterprise-Kalender bereinigt werden. Führen Sie hierzu Abfrage 5 aus.

Abfrage 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

Nach Abschluss der vorherigen Schritte führen Sie das Migrationstool mit der Option -verify erneut aus, um zu überprüfen, ob das Problem der doppelten Ressourcen gelöst ist.

Ausführen von manuellen Tests für Migrationsprobleme

Mithilfe des Migrationstool mit der Option -verify können Sie die Project Server 2003-Daten automatisch auf Probleme überprüfen, die zu Migrationsfehlern führen können. Sie können diese Überprüfungen auch manuell ausführen (ebenso wie andere Tests, die nicht über die Option -verify verfügbar sind). In der ersten Hälfte des Artikels werden die automatischen Überprüfungen beschrieben, die Sie ausführen können. Der Rest des Artikels beschreibt die Vorgehensweise zum Ausführen von manuellen Überprüfungen, um die Project Server 2003-Daten für die Migration vorzubereiten.

Mindestens erforderliche Project-Version ist Project Server 2003 SP2a

Microsoft unterstützt die Migration von Project Server 2003 SP2a. Wenn Sie dieses Service Pack nicht installiert haben, müssen Sie es installieren. Weitere Informationen zum Service Pack finden Sie unter Beschreibung von Project Server 2003 Service Pack 2a (https://go.microsoft.com/fwlink/?linkid=78242\&clcid=0x407).

Vorgehensweise zum Feststellen des Problems

Führen Sie die folgende SQL-Abfrage in der Datenbank Project Server 2003 Web table aus. Mit dieser Abfrage können Sie die Version von Project Server feststellen, einschließlich der Nummer des Service Packs.

select replace(str(WADMIN_VERSION_MAJOR)+'.'+str(WADMIN_VERSION_MINOR),' ','') as 'Project Server Version' from dbo.MSP_WEB_ADMIN

Test erfolgreich Test nicht erfolgreich

11.2

11.1

Vorgehensweise zum Beheben des Problems

Wenden Sie Project Server 2003 SP2a auf Ihre Project Server 2003-Installation an. Weitere Informationen zum Anwenden von Project Server 2003 SP2a finden Sie unter Vorbereiten der Migration zu Project Server 2007.

Die Enterprise-Global-Projektvorlage sollte nicht extern bearbeitet werden

Das Attribut für externe Bearbeitung wird auf true festgelegt, wenn die Enterprise-Global-Projektvorlage außerhalb von Project bearbeitet wird (beispielsweise von einer Drittanbieteranwendung). Dieses Attribut wird von Project Professional überprüft: Wenn es auf true festgelegt ist, berechnet Project Professional alle Daten in der Enterprise-Global-Projektvorlage neu, um die Konsistenz sicherzustellen. Legen Sie das Attribut auf false fest, um die Migration zu ermöglichen.

Vorgehensweise zum Feststellen des Problems

Führen Sie die folgende SQL-Abfrage in der Datenbank Project Server 2003 Project tables aus. Die folgende Abfrage prüft die Datenbank Project Server 2003 auf Projekte, die extern bearbeitet wurden. Wenn Zeilen zurückgegeben werden, kann die Enterprise-Global-Projektvorlage im aktuellen Status nicht migriert werden.

select PROJ_NAME from dbo.MSP_PROJECTS where (PROJ_EXT_EDITED = 1 or RESERVED_BINARY_DATA is null) and PROJ_TYPE = 2

Test erfolgreich Test nicht erfolgreich

Es werden keine Zeilen zurückgegeben.

Mindestens eine Zeile wird zurückgegeben.

Vorgehensweise zum Beheben des Problems

Öffnen Sie die Enterprise-Global-Projektvorlage in Project Professional, und speichern Sie sie zurück.

Bestimmen, ob die Enterprise-Global-Projektvorlage ausgecheckt ist

Die Enterprise-Global-Projektvorlage sollte nicht ausgecheckt sein, wenn Sie Projekte migrieren.

Vorgehensweise zum Feststellen des Problems

Mit der folgenden SQL-Abfrage überprüfen Sie, ob die Enterprise-Global-Projektvorlage ausgecheckt ist. Führen Sie die folgende SQL-Abfrage in der Datenbank Project Server 2003 Project tables aus.

select count(*) from dbo.MSP_PROJECTS where PROJ_CHECKEDOUT = 1 and PROJ_TYPE = 2

Test erfolgreich Test nicht erfolgreich

0

Ein Wert größer als 0 wird zurückgegeben.

Vorgehensweise zum Beheben des Problems

Stellen Sie sicher, dass die Enterprise-Global-Projektvorlage eingecheckt ist.

  1. Klicken Sie in Project Server 2003 Project Web Access auf Admin.

  2. Klicken Sie auf Enterprise-Features verwalten.

  3. Klicken Sie auf Enterprise-Projekte einchecken, um anzuzeigen, wer die Enterprise-Global-Projektvorlage ausgecheckt hat. Koordinieren Sie das Einchecken, oder erzwingen Sie das Einchecken mithilfe von Project Web Access.

Bestimmen, ob die Enterprise-Global-Projektvorlage gesperrt ist

Ein Projekt wird gesperrt, wenn der Computer nicht normal heruntergefahren oder Project Professional außerplanmäßig beendet wird. Wenn die Enterprise-Global-Projektvorlage gesperrt ist, kann das Migrationstool nicht ausgeführt werden.

Vorgehensweise zum Feststellen des Problems

Mit der folgenden SQL-Abfrage überprüfen Sie, ob die Enterprise-Global-Projektvorlage gesperrt ist. Führen Sie die folgende SQL-Abfrage in der Datenbank Project Server 2003 Project tables aus.

select cast(isnull(PROJ_LOCKED, '0') as int) from dbo.MSP_PROJECTS where PROJ_TYPE = 2

Test erfolgreich Test nicht erfolgreich

0

1

Vorgehensweise zum Beheben des Problems

Mit der folgenden SQL-Abfrage heben Sie die Sperrung auf. Führen Sie die folgende SQL-Abfrage in der Datenbank Project Server 2003 Project tables aus.

Update MSP_PROJECTS set PROJ_LOCKED = 1 where PROJ_TYPE = 2

Bestimmen, ob die Standardsprache in den Datenbanken "Web tables" und "Project tables" übereinstimmt

Die Standardsprache in den Datenbanken Project Server 2003Web tables und Project Server 2003Project tables muss vor der Migration übereinstimmen.

Vorgehensweise zum Feststellen des Problems

Mit dieser Abfrage bestimmen Sie die Standardsprache für jede Datenbank. Wenn die Abfrageergebnisse nicht übereinstimmen, wird die Migration mit einem Fehler abgebrochen. Führen Sie die folgende SQL-Abfrage in den Datenbanken Project Server 2003 Project tables und Project Server 2003-Web tables aus.

select WADMIN_DEFAULT_LANGUAGE from dbo.MSP_WEB_ADMIN.

Test erfolgreich Test nicht erfolgreich

Ergebnisse stimmen für beide Datenbanken überein.

Ergebnisse für beide Datenbanken stimmen nicht überein.

Vorgehensweise zum Beheben des Problems

Korrigieren Sie gemeinsam mit dem Administrator den inkonsistenten Status der beiden Datenbanken.

Bestimmen, ob eine Ressource ein Komma im Namen enthält

In Office Project Server 2007 gilt die Einschränkung, dass eine Enterprise-Ressource (in jeder Sprache) kein Komma (,) im Namen haben darf. Dieses Zeichen muss durch ein gültiges Zeichen ersetzt werden.

Vorgehensweise zum Feststellen des Problems

Mit dieser Abfrage überprüfen Sie den Enterprise-Ressourcenpool auf Ressourcennamen, die ein Komma enthalten. Führen Sie die folgende SQL-Abfrage in der Datenbank Project Server 2003 Project tables aus.

select RES_NAME from MSP_RESOURCES where RES_NAME is not null and charindex(',', RES_NAME) > 0

Test erfolgreich Test nicht erfolgreich

Es werden keine Zeilen zurückgegeben.

Mindestens eine Zeile wird zurückgegeben.

Vorgehensweise zum Beheben des Problems

Führen Sie die folgende SQL-Abfrage in den Datenbanken Project Server 2003 Project tables und Project Server 2003-Web tables aus. Mit der Abfrage ersetzen Sie das Komma durch ein Unterstrichzeichen. Wenn Sie ein anderes gültiges Zeichen verwenden möchten, können Sie die Abfrage bearbeiten.

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

Bestimmen, ob erforderliche benutzerdefinierte Enterprise-Ressourcenfelder keine Werte enthalten

Enterprise-Ressourcen, die keinen Wert für ein erforderliches benutzerdefiniertes Enterprise-Feld (wie den RSP) aufweisen, werden nicht migriert. Während der Migration wird ein Fehler in das Migrationsprotokoll geschrieben. Es wird empfohlen, dass Sie dieses Szenario vor der Migration überprüfen. Wenn Ihre Enterprise-Ressourcen sehr alt (erstellt, bevor das benutzerdefinierte Feld auf Erforderlich festgelegt wurde) oder inaktiv sind, haben sie möglicherweise keine Werte für das erforderliche benutzerdefinierte Feld.

Eine Möglichkeit, das Problem zu beheben, besteht darin, sicherzustellen, dass alle benutzerdefinierten Ressourcenfelder in Office Project Server 2007 auf Nicht erforderlich festgelegt werden. Sie können sie dann in Office Project Server 2007 manuell zurücksetzen.

Es gibt zwei Überprüfungsmethoden, mit denen Sie herausfinden können, welche benutzerdefinierten Felder die Migrationsprobleme verursachen.

  • Die Überprüfungsmethode 1 verwendet eine SQL-Abfrage in der Datenbank Project Server 2003 Project tables.

  • Die Überprüfungsmethode 2 verwendet die Project Professional 2003-Benutzeroberfläche.

Vorgehensweise zum Feststellen des Problems mithilfe der Überprüfungsmethode 1

Mit dieser SQL-Abfrage geben Sie Enterprise-Ressourcen zurück, die erforderliche benutzerdefinierte Enterprise-Felder ohne Wert aufweisen. Führen Sie die folgende SQL-Abfrage in der Datenbank Project Server 2003 Project tables aus.

declare @eglobal_proj_id int

set @eglobal_proj_id = (select PROJ_ID from dbo.MSP_PROJECTS where PROJ_TYPE = 2)

select

   r1.RES_NAME as 'Resource Name',

   ast1.AS_VALUE as 'Custom Field Name'

from

   dbo.MSP_RESOURCES r1

   inner join dbo.MSP_CODE_FIELDS cf1 on (r1.RES_UID = cf1.CODE_REF_UID)

   inner join dbo.MSP_FIELD_ATTRIBUTES fa1 on (cf1.CODE_FIELD_ID = fa1.ATTRIB_FIELD_ID)

   inner join dbo.MSP_ATTRIBUTE_STRINGS ast1 on (fa1.AS_ID = ast1.AS_ID)

   inner join dbo.MSP_OUTLINE_CODES oc3 on (cf1.CODE_UID = oc3.CODE_UID and oc3.PROJ_ID = @eglobal_proj_id)

   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

   r1.PROJ_ID = 1

   and cf1.proj_id = 1

   and fa1.PROJ_ID = @eglobal_proj_id

   and fa1.ATTRIB_ID = 206

   and ast1.PROJ_ID = @eglobal_proj_id

   and oc3.PROJ_ID = @eglobal_proj_id

   and oc1.CODE_UID is null

   and oc2.CODE_UID is null

order by

   r1.RES_NAME,

   ast1.AS_VALUE

Test erfolgreich Test nicht erfolgreich

Es werden keine Zeilen zurückgegeben.

Mindestens eine Zeile wird zurückgegeben.

Vorgehensweise zum Beheben des Problems

Öffnen Sie in Project Server 2003 den Enterprise-Ressourcenpool. Legen Sie dann Werte für die erforderlichen benutzerdefinierten Felder fest, oder legen Sie die betroffenen Felder auf Nicht erforderlich fest.

Vorgehensweise zum Feststellen des Problems mithilfe der Überprüfungsmethode 2

Diese Methode erfordert die Verwendung von Project Professional 2003 zum Öffnen des Enterprise-Ressourcenpools. Indem Sie versuchen, den Enterprise-Ressourcenpool zu speichern, überprüfen Sie für alle ausgewählten Enterprise-Ressourcen, ob sie Werte für alle erforderlichen benutzerdefinierten Felder haben.

  1. Öffnen Sie Project Professional 2003, und stellen Sie eine Verbindung mit dem Project Server 2003-Server her.

  2. Klicken Sie im Menü Extras auf Enterprise-Optionen und dann auf Enterprise-Ressourcenpool öffnen.

  3. Aktivieren Sie im Dialogfeld Enterprise-Ressourcenpool öffnen das Kontrollkästchen Inaktive Ressourcen einschließen. Überprüfen Sie, ob Lese-/Schreibzugriff zum Auschecken aktiviert ist. Klicken Sie auf die Schaltfläche Filter anwenden.

  4. Klicken Sie auf die Schaltfläche Alles auswählen/Auswahl aufheben, um sicherzustellen, dass alle Ressourcen ausgewählt sind.

  5. Klicken Sie auf die Schaltfläche Öffnen. Nachdem die Ressourcen zum Bearbeiten geöffnet wurden, klicken Sie auf Speichern. In Project Professional wird anschließend überprüft, ob jede Enterprise-Ressource (aktiv oder inaktiv) Werte für die erforderlichen benutzerdefinierten Felder aufweist.

    Test erfolgreich Test nicht erfolgreich

    Nach dem Speichern wird keine Fehlermeldung angezeigt.

    Eine Fehlermeldung wird angezeigt und listet alle Fehler für Ressourcen auf, die keine Werte für erforderliche benutzerdefinierte Enterprise-Felder aufweisen.

Vorgehensweise zum Beheben des Problems

Legen Sie in Project Server 2003 Werte für die erforderlichen benutzerdefinierten Felder fest, oder legen Sie die betroffenen benutzerdefinierten Felder auf Nicht erforderlich fest.

Bestimmen, ob ein benutzerdefiniertes Ressourcenfeld einen Wert hat, der sich nicht in der Definition der Nachschlagetabelle befindet

Die Werte eines benutzerdefinierten Ressourcenfeldes müssen alle in der Definition der Nachschlagetabelle vorhanden sein.

Vorgehensweise zum Feststellen des Problems

Mit dieser SQL-Abfrage suchen Sie nach ungültigen benutzerdefinierten Ressourcenfeldern, indem Sie überprüfen, ob der Wert des benutzerdefinierten Feldes in der entsprechenden Nachschlagetabelle vorhanden ist.

Führen Sie die folgende SQL-Abfrage in den Datenbanken Project Server 2003 Project tables und Project Server 2003-Web tables aus.

declare @eglobal_proj_id int

set @eglobal_proj_id = (select PROJ_ID from dbo.MSP_PROJECTS where PROJ_TYPE = 2)

select

   r1.RES_NAME,

   ast1.AS_VALUE

from

   dbo.MSP_RESOURCES r1

   inner join dbo.MSP_CODE_FIELDS cf1 on (r1.RES_UID = cf1.CODE_REF_UID)

   inner join dbo.MSP_FIELD_ATTRIBUTES fa1 on (cf1.CODE_FIELD_ID = fa1.ATTRIB_FIELD_ID)

   inner join dbo.MSP_ATTRIBUTE_STRINGS ast1 on (fa1.AS_ID = ast1.AS_ID)

   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

   r1.PROJ_ID = 1

   and cf1.proj_id = 1

   and cf1.code_uid is not null

   and fa1.PROJ_ID = @eglobal_proj_id

   and fa1.ATTRIB_ID = 206

   and ast1.PROJ_ID = @eglobal_proj_id

   and oc1.CODE_UID is null

   and oc2.CODE_UID is null

union

select

   r1.RES_NAME,

   ast1.AS_VALUE

from

   dbo.MSP_RESOURCES r1

   inner join dbo.MSP_MV_FIELDS cf1 on (r1.RES_UID = cf1.CODE_REF_UID)

   inner join dbo.MSP_FIELD_ATTRIBUTES fa1 on (cf1.CODE_FIELD_ID = fa1.ATTRIB_FIELD_ID)

   inner join dbo.MSP_ATTRIBUTE_STRINGS ast1 on (fa1.AS_ID = ast1.AS_ID)

   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

   r1.PROJ_ID = 1

   and cf1.proj_id = 1

   and cf1.code_uid is not null

   and fa1.PROJ_ID = @eglobal_proj_id

   and fa1.ATTRIB_ID = 206

   and ast1.PROJ_ID = @eglobal_proj_id

   and oc1.CODE_UID is null

   and oc2.CODE_UID is null

order by

   r1.RES_NAME,

   ast1.AS_VALUE

Test erfolgreich Test nicht erfolgreich

Es werden keine Zeilen zurückgegeben.

Mindestens eine Zeile wird zurückgegeben.

Vorgehensweise zum Beheben des Problems

Mit der folgenden SQL-Abfrage legen Sie ungültige benutzerdefinierte Ressourcenfeldwerte auf NULL fest. Führen Sie die folgende SQL-Abfrage in der Datenbank Project Server 2003 Project tables aus.

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

Bestimmen, ob Enterprise-Ressourcen extern bearbeitet wurden

Damit Enterprise-Ressourcen von Project Server 2003 zu Project Server 2007 migriert werden können, dürfen sie nicht extern bearbeitet werden.

Vorgehensweise zum Feststellen des Problems

Mit der folgenden Abfrage überprüfen Sie den Enterprise-Ressourcenpool auf Enterprise-Ressourcen, die extern bearbeitet wurden. Wenn der Test nicht erfolgreich ist, kann der Enterprise-Ressourcenpool in seinem aktuellen Status nicht migriert werden. Führen Sie die folgende SQL-Abfrage in der Datenbank Project Server 2003 Project tables aus.

select count(*) from dbo.MSP_RESOURCES  where PROJ_ID = 1 and  cast(EXT_EDIT_REF_DATA as varchar(1)) = '1'

Test erfolgreich Test nicht erfolgreich

0

Ein Wert größer als 0 wird zurückgegeben.

Vorgehensweise zum Beheben des Problems

Zum Beheben des Problems müssen Sie erst alle Enterprise-Ressourcen als extern bearbeitet festlegen. Dies kann mithilfe einer SQL-Abfrage geschehen. Sie können dann jede Enterprise-Ressource einzeln ändern, sodass beim Speichern des Enterprise-Ressourcenpools alle relevanten Aktualisierungen von Project Professional durchgeführt werden können. Mit dieser Aktion entfernen Sie das Attribut für externe Bearbeitung für jede Enterprise-Ressource. Wenn eine Enterprise-Ressource nicht geändert wird, werden von Project Professional für diese Ressource keine Neuberechnungen durchgeführt. Diese Enterprise-Ressource wird weiterhin als extern bearbeitet gekennzeichnet, und der Enterprise-Ressourcenpool wird nicht migriert.

Tipp

Nachdem der Enterprise-Ressourcenpool migriert wurde, können die Änderungen an den einzelnen Enterprise-Ressourcen entfernt werden.

Sie können die folgende allgemeine Problemumgehung verwenden, um alle Attribute für externe Bearbeitung von den Enterprise-Ressourcen zu entfernen.

  1. Legen Sie alle Enterprise-Ressourcen als extern bearbeitet fest. Führen Sie dazu die folgende SQL-Abfrage in der Datenbank Project Server 2003 Project tables aus.

    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. Fügen Sie jeder Enterprise-Ressource vorübergehend ein irrelevantes benutzerdefiniertes Ressourcenfeld hinzu, um die Neuberechnung durch Project Professional 2003 zu erzwingen. Durch die erzwungene Neuberechnung wird jede Enterprise-Ressource nicht länger als extern bearbeitet markiert. Beispielsweise können Sie in Project Professional 2003 ein benutzerdefiniertes Testressourcenfeld erstellen, das jeder Enterprise-Ressource hinzugefügt wird. Sie können einen beliebigen benutzerdefinierten Feldtyp verwenden. Beispielsweise können Sie ein benutzerdefiniertes Ressourcendauerfeld verwenden, das selten verwendet wird.

    Tipp

    Wenn Sie ein benutzerdefiniertes Ressourcendauerfeld verwenden, erstellen Sie keine Werteliste für das Feld. Benutzerdefinierte Ressourcendauerfelder mit Wertelisten werden nicht migriert. Verwenden Sie beim Erstellen dieses temporären benutzerdefinierten Felds einen numerischen Wert.

    Sie können das neue benutzerdefinierte Feld Testressource CF nennen. Nach dem Erstellen des benutzerdefinierten Felds Testressource CF öffnen Sie den Enterprise-Ressourcenpool, und fügen Sie die Testressource CF-Spalte hinzu. Legen Sie für alle Ressourcen einen gültigen Wert für dieses benutzerdefinierte Feld fest. Speichern Sie den Enterprise-Ressourcenpool, und führen Sie die Migration aus. Entfernen Sie das benutzerdefinierte Feld Testressource CF nach der Migration in Microsoft Office Project Professional 2007.

Bestimmen, ob benutzerdefinierte Enterprise-Ressourcendauerfelder mit Wertelisten vorhanden sind

Benutzerdefinierte Enterprise-Ressourcendauerfelder mit Wertelisten führen dazu, dass die Migration mit einem Fehler abgebrochen wird.

Vorgehensweise zum Feststellen des Problems

Mit dieser SQL-Abfrage suchen Sie nach benutzerdefinierten Enterprise-Ressourcendauerfeldern mit zugehörigen Wertelisten. Führen Sie die folgende SQL-Abfrage in der Datenbank Project Server 2003 Project tables aus.

declare @proj_id int

set @proj_id = (select proj_id from msp_projects where proj_type = 2)

select ats.as_value as CustomFieldName from msp_attribute_strings ats

inner join msp_field_attributes fa on (fa.proj_id = ats.proj_id and fa.as_id = ats.as_id)

where fa.attrib_id = 206 and fa.proj_id = @proj_id and fa.attrib_field_id >= 205521382 and fa.attrib_field_id <= 205521391

and exists (select * from msp_field_attributes fa2 where fa2.proj_id = fa.proj_id and fa2.attrib_field_id = fa.attrib_field_id and fa2.attrib_id = 210)

Test erfolgreich Test nicht erfolgreich

Es werden keine Zeilen zurückgegeben.

Mindestens eine Zeile wird zurückgegeben. Diesen benutzerdefinierten Enterprise-Ressourcendauerfeldern sind Wertelisten zugewiesen. Die Werteliste muss für jedes Feld manuell entfernt werden.

Vorgehensweise zum Beheben des Problems

Zum Beheben des Problems müssen Sie manuell alle Wertelisten von jedem von der SQL-Abfrage gefundenen benutzerdefinierten Enterprise-Ressourcendauerfeld entfernen. Gehen Sie dazu folgendermaßen vor.

  1. Öffnen Sie Project Professional 2003, und stellen Sie eine Verbindung mit dem Project Server 2003-Server her.

  2. Zeigen Sie im Menü Extras auf Enterprise-Optionen, und klicken Sie dann auf Enterprise-Global öffnen.

  3. Zeigen Sie auf der Microsoft Project-Seite Ausgecheckte Enterprise-Global im Menü Extras auf Anpassen, und klicken Sie dann auf Enterprise-Felder.

  4. Klicken Sie auf der Seite Enterprise-Felder anpassen auf der Registerkarte Benutzerdefinierte Felder im Abschnitt Felder auf Ressource.

  5. Klicken Sie in der Dropdownliste Typ auf Dauer. Alle benutzerdefinierten Enterprise-Dauerfelder werden in der Liste Felder angezeigt.

  6. Wählen Sie in der Liste Feld das erste benutzerdefinierte Enterprise-Ressourcenfeld aus, das mit den Rückgabewerten der vorher ausgeführten SQL-Abfrage übereinstimmt. Klicken Sie im Abschnitt Benutzerdefinierte Attribute auf die Schaltfläche Werteliste. Löschen Sie in der Werteliste für das spezifische benutzerdefinierte Enterprise-Dauerfeld die Werte in der Spalte Wert, und klicken Sie dann auf OK. Klicken Sie im angezeigten Microsoft Office Project-Dialogfeld auf OK.

  7. Überprüfen Sie auf der Seite Enterprise-Felder anpassen im Abschnitt Benutzerdefinierte Attribute, dass Werteliste nicht für das in der Liste Feld ausgewählte benutzerdefinierte Enterprise-Ressourcendauerfeld aktiviert ist. Wenn Werteliste aktiviert ist, wählen Sie Nein aus.

  8. Wählen Sie in der Liste Feld alle verbleibenden benutzerdefinierten Enterprise-Ressourcendauerfelder aus, die der SQL-Abfrage entsprechen, und wiederholen Sie dann Schritt 6 und 7.

  9. Klicken Sie auf OK.

Bestimmen, ob benutzerdefinierte Enterprise-Ressourcendauerfelder gültige Werte enthalten

In Office Project Server 2007 sind keine negativen Dauerwerte oder Dauerwerte größer als 34689600 zulässig. Beim Versuch, benutzerdefinierte Project Server 2003-Enterprise-Ressourcendauerfelder zu migrieren, die solche Werte enthalten, wird die Migration mit einem Fehler abgebrochen.

Vorgehensweise zum Feststellen des Problems

Führen Sie zum Feststellen des Problems die folgende SQL-Abfrage in der Datenbank Project Server 2003 Project tables aus. Diese Abfrage gibt die benutzerdefinierten Enterprise-Ressourcendauerfelder mit ungültigen Werten zurück.

select r.res_name, mas.as_value from msp_resources r

inner join msp_duration_fields df on (df.dur_ref_uid = r.res_euid and df.proj_id = r.proj_id)

inner join msp_projects p on (p.proj_type = 2)

inner join msp_field_attributes fa on (fa.proj_id = p.proj_id and fa.attrib_field_id = df.dur_field_id)

inner join msp_attribute_strings mas on (mas.proj_id = p.proj_id and fa.as_id = mas.as_id)

where (dur_value < 0 or dur_value > 34689600) and df.proj_id = 1 and p.proj_type = 2 and fa.attrib_id = 206

Test erfolgreich Test nicht erfolgreich

Es werden keine Zeilen zurückgegeben.

Mindestens eine Zeile wird zurückgegeben.

Vorgehensweise zum Beheben des Problems

Um das Problem zu beheben, müssen Sie den Wert des benutzerdefinierten Enterprise-Ressourcendauerfelds für jedes der identifizierten benutzerdefinierten Felder manuell bearbeiten. Sie müssen sicherstellen, dass die Werte gültig sind (zwischen 0 und 34689600).

Wenn das von der Abfrage identifizierte Feld ein einfaches benutzerdefiniertes Feld ist (kein Formelfeld), können Sie den Feldwert so ändern, dass er innerhalb des zulässigen Bereichs liegt. Wenn das von der Abfrage identifizierte Feld ein Formelfeld ist, müssen Sie die Formel ändern, damit die Ergebnisse innerhalb des gültigen Bereichs liegen.

Bestimmen, dass benutzerdefinierte Enterprise-Feldnamen keine führenden oder nachstehenden Leerzeichen enthalten

Überprüfen Sie, dass die benutzerdefinierten Office Project Server 2007-Feldnamen keine führenden oder nachstehenden Leerzeichen enthalten (beispielsweise __Benutzerdefiniertes Feld_, wobei der Unterstrich für ein Leerzeichen steht). Beim Versuch, benutzerdefinierte Felder mit führenden oder nachstehenden Leerzeichen zu migrieren, wird die Migration mit einem Fehler abgebrochen.

Bestimmen, ob das Migrationsadministratorkonto in Project Server 2003 vorhanden ist

Wenn das Migrationsadministratorkonto in Project Server 2003 vorhanden ist (entweder als Name oder in Form eines Windows-Kontos), werden diese Benutzerberechtigungen, Kategoriezuordnungen und Benutzereigenschaften nicht zu Office Project Server 2007 migriert. Im Wesentlichen hat der Office Project Server 2007-Benutzer Vorrang. Wenn das Migrationsadministratorkonto in Projekten verwendet wird, werden die betreffenden Ressourcen durch das Migrationsadministratorkonto ersetzt.

Ersetzen von Kommazeichen in den Namen von Enterprise-Ressourcen

Wenn die Namen von Enterprise-Ressourcen in Project Server 2003-Datenbanken ein Kommazeichen enthalten, schlägt die Migration der Ressource fehl. Dies kann ein Problem für Kunden in bestimmten Gebietsschemata darstellen, bei denen das Kommazeichen häufig in Ressourcennamen verwendet wird.

Vorgehensweise zum Beheben des Problems

Ersetzen Sie mithilfe der folgenden SQL-Abfragen alle Kommazeichen durch ein neutrales Unterstrichzeichen.

Führen Sie diese Abfrage für die Datenbank Project tables aus:

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

Führen Sie diese Abfrage für die Datenbank Web tables aus:

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